Get a knowledge article
curl --request GET \
--url https://api.getdecimal.ai/v0/knowledge/articles/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getdecimal.ai/v0/knowledge/articles/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getdecimal.ai/v0/knowledge/articles/{id}', 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://api.getdecimal.ai/v0/knowledge/articles/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getdecimal.ai/v0/knowledge/articles/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getdecimal.ai/v0/knowledge/articles/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getdecimal.ai/v0/knowledge/articles/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": 123,
"title": "<string>",
"content": "<string>",
"url": "<string>",
"public_url": "<string>",
"source": "<string>",
"external_id": "<string>",
"status": "published",
"is_public": true,
"category": "<string>",
"tags": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired API token"
}
}{
"error": {
"code": "forbidden",
"message": "Insufficient permissions"
}
}{
"error": {
"code": "not_found",
"message": "Resource not found"
}
}{
"error": {
"code": "rate_limited",
"message": "Too many requests",
"retryable": true
}
}{
"error": {
"code": "internal_error",
"message": "An internal error occurred",
"retryable": true
}
}Articles
Get a knowledge article
Returns a knowledge article by its ID.
GET
/
v0
/
knowledge
/
articles
/
{id}
Get a knowledge article
curl --request GET \
--url https://api.getdecimal.ai/v0/knowledge/articles/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getdecimal.ai/v0/knowledge/articles/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getdecimal.ai/v0/knowledge/articles/{id}', 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://api.getdecimal.ai/v0/knowledge/articles/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getdecimal.ai/v0/knowledge/articles/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getdecimal.ai/v0/knowledge/articles/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getdecimal.ai/v0/knowledge/articles/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": 123,
"title": "<string>",
"content": "<string>",
"url": "<string>",
"public_url": "<string>",
"source": "<string>",
"external_id": "<string>",
"status": "published",
"is_public": true,
"category": "<string>",
"tags": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired API token"
}
}{
"error": {
"code": "forbidden",
"message": "Insufficient permissions"
}
}{
"error": {
"code": "not_found",
"message": "Resource not found"
}
}{
"error": {
"code": "rate_limited",
"message": "Too many requests",
"retryable": true
}
}{
"error": {
"code": "internal_error",
"message": "An internal error occurred",
"retryable": true
}
}Authorizations
API token with sk-de- prefix.
Created in the Decimal dashboard under Settings → API Tokens.
Path Parameters
Knowledge article ID.
Response
The article.
Decimal article ID.
Article body in Markdown.
Link to the article where it was imported from.
Link to the article on your public help center.
Where the article came from, such as a helpdesk or manual.
Article ID in the source.
Only published articles are used to answer questions.
Available options:
published, in_review Shown on your public help center.