Create article
curl --request POST \
--url https://{your-subdomain}.neetokb.com/api/external/v1/articles \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"article": {
"title": "Getting Started",
"slug": "getting-started",
"html_content": "<h1>Welcome</h1><p>Example content</p>",
"state": "draft",
"page_title": "Getting Started",
"meta_description": "A comprehensive guide to help you get started with our platform",
"category": [
"Installation",
"Getting Started"
]
}
}
'import requests
url = "https://{your-subdomain}.neetokb.com/api/external/v1/articles"
payload = { "article": {
"title": "Getting Started",
"slug": "getting-started",
"html_content": "<h1>Welcome</h1><p>Example content</p>",
"state": "draft",
"page_title": "Getting Started",
"meta_description": "A comprehensive guide to help you get started with our platform",
"category": ["Installation", "Getting Started"]
} }
headers = {
"X-Api-Key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
article: {
title: 'Getting Started',
slug: 'getting-started',
html_content: '<h1>Welcome</h1><p>Example content</p>',
state: 'draft',
page_title: 'Getting Started',
meta_description: 'A comprehensive guide to help you get started with our platform',
category: ['Installation', 'Getting Started']
}
})
};
fetch('https://{your-subdomain}.neetokb.com/api/external/v1/articles', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{your-subdomain}.neetokb.com/api/external/v1/articles",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'article' => [
'title' => 'Getting Started',
'slug' => 'getting-started',
'html_content' => '<h1>Welcome</h1><p>Example content</p>',
'state' => 'draft',
'page_title' => 'Getting Started',
'meta_description' => 'A comprehensive guide to help you get started with our platform',
'category' => [
'Installation',
'Getting Started'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{your-subdomain}.neetokb.com/api/external/v1/articles"
payload := strings.NewReader("{\n \"article\": {\n \"title\": \"Getting Started\",\n \"slug\": \"getting-started\",\n \"html_content\": \"<h1>Welcome</h1><p>Example content</p>\",\n \"state\": \"draft\",\n \"page_title\": \"Getting Started\",\n \"meta_description\": \"A comprehensive guide to help you get started with our platform\",\n \"category\": [\n \"Installation\",\n \"Getting Started\"\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<x-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{your-subdomain}.neetokb.com/api/external/v1/articles")
.header("X-Api-Key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"article\": {\n \"title\": \"Getting Started\",\n \"slug\": \"getting-started\",\n \"html_content\": \"<h1>Welcome</h1><p>Example content</p>\",\n \"state\": \"draft\",\n \"page_title\": \"Getting Started\",\n \"meta_description\": \"A comprehensive guide to help you get started with our platform\",\n \"category\": [\n \"Installation\",\n \"Getting Started\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{your-subdomain}.neetokb.com/api/external/v1/articles")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"article\": {\n \"title\": \"Getting Started\",\n \"slug\": \"getting-started\",\n \"html_content\": \"<h1>Welcome</h1><p>Example content</p>\",\n \"state\": \"draft\",\n \"page_title\": \"Getting Started\",\n \"meta_description\": \"A comprehensive guide to help you get started with our platform\",\n \"category\": [\n \"Installation\",\n \"Getting Started\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"permalink": "<string>"
}V1 API (Deprecated)
Create article
This API allows to create a new article.
POST
/
articles
Create article
curl --request POST \
--url https://{your-subdomain}.neetokb.com/api/external/v1/articles \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"article": {
"title": "Getting Started",
"slug": "getting-started",
"html_content": "<h1>Welcome</h1><p>Example content</p>",
"state": "draft",
"page_title": "Getting Started",
"meta_description": "A comprehensive guide to help you get started with our platform",
"category": [
"Installation",
"Getting Started"
]
}
}
'import requests
url = "https://{your-subdomain}.neetokb.com/api/external/v1/articles"
payload = { "article": {
"title": "Getting Started",
"slug": "getting-started",
"html_content": "<h1>Welcome</h1><p>Example content</p>",
"state": "draft",
"page_title": "Getting Started",
"meta_description": "A comprehensive guide to help you get started with our platform",
"category": ["Installation", "Getting Started"]
} }
headers = {
"X-Api-Key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
article: {
title: 'Getting Started',
slug: 'getting-started',
html_content: '<h1>Welcome</h1><p>Example content</p>',
state: 'draft',
page_title: 'Getting Started',
meta_description: 'A comprehensive guide to help you get started with our platform',
category: ['Installation', 'Getting Started']
}
})
};
fetch('https://{your-subdomain}.neetokb.com/api/external/v1/articles', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{your-subdomain}.neetokb.com/api/external/v1/articles",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'article' => [
'title' => 'Getting Started',
'slug' => 'getting-started',
'html_content' => '<h1>Welcome</h1><p>Example content</p>',
'state' => 'draft',
'page_title' => 'Getting Started',
'meta_description' => 'A comprehensive guide to help you get started with our platform',
'category' => [
'Installation',
'Getting Started'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{your-subdomain}.neetokb.com/api/external/v1/articles"
payload := strings.NewReader("{\n \"article\": {\n \"title\": \"Getting Started\",\n \"slug\": \"getting-started\",\n \"html_content\": \"<h1>Welcome</h1><p>Example content</p>\",\n \"state\": \"draft\",\n \"page_title\": \"Getting Started\",\n \"meta_description\": \"A comprehensive guide to help you get started with our platform\",\n \"category\": [\n \"Installation\",\n \"Getting Started\"\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<x-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{your-subdomain}.neetokb.com/api/external/v1/articles")
.header("X-Api-Key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"article\": {\n \"title\": \"Getting Started\",\n \"slug\": \"getting-started\",\n \"html_content\": \"<h1>Welcome</h1><p>Example content</p>\",\n \"state\": \"draft\",\n \"page_title\": \"Getting Started\",\n \"meta_description\": \"A comprehensive guide to help you get started with our platform\",\n \"category\": [\n \"Installation\",\n \"Getting Started\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{your-subdomain}.neetokb.com/api/external/v1/articles")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"article\": {\n \"title\": \"Getting Started\",\n \"slug\": \"getting-started\",\n \"html_content\": \"<h1>Welcome</h1><p>Example content</p>\",\n \"state\": \"draft\",\n \"page_title\": \"Getting Started\",\n \"meta_description\": \"A comprehensive guide to help you get started with our platform\",\n \"category\": [\n \"Installation\",\n \"Getting Started\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"permalink": "<string>"
}Deprecated: This is a v1 endpoint. It will continue to work, but we recommend migrating to
the v2 equivalent for improved REST compliance (correct HTTP status codes,
consistent response envelopes, and hyphenated URLs).
Replace
Learn how to find your subdomain in Workspace subdomain.
{your-subdomain} with your workspace’s subdomain. Learn how to find your subdomain in Workspace subdomain.
Headers
Use the X-Api-Key header to provide your workspace API key. Refer to Authentication for more information.
Body
application/json
Hide child attributes
Hide child attributes
Title of the article.
Example:
"Getting Started"
URL-friendly version of the article's title.
Example:
"getting-started"
Content of the article in HTML format.
Example:
"<h1>Welcome</h1><p>Example content</p>"
Status of the article.
Available options:
draft, published Example:
"draft"
Provide the article's category path as an array of category names (not IDs or slugs). List the categories from the most specific to the top-level category. The article will be placed in the first category, and each subsequent category is treated as its parent.
Example:
["Installation", "Getting Started"]⌘I