curl --request POST \
--url 'https://api-prod.usefini.com/v2/hc-articles/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/publish/public' \
--header 'Authorization: Bearer fini_your_api_key'
const response = await fetch('https://api-prod.usefini.com/v2/hc-articles/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/publish/public', {
method: 'POST',
headers: {
Authorization: 'Bearer fini_your_api_key'
}
});
const data = await response.json();
import requests
response = requests.post(
"https://api-prod.usefini.com/v2/hc-articles/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/publish/public",
headers={"Authorization": "Bearer fini_your_api_key"},
)
data = response.json()
{
"id": "4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3",
"title": "Refund policy",
"mainKnowledge": "Customers can request a refund within 30 days of purchase.",
"agentInstruction": "Use this article for refund eligibility questions.",
"questions": [
"Can I get a refund?"
],
"keywords": [
"refund",
"billing"
],
"escalation": false,
"parentFolderId": "0f4da4fe-b2ae-4787-8c3b-854f36d9eb1b",
"isDraft": false,
"createdBy": "7d8b62e3-0c36-4f3b-9988-6e6f4f1fbf67",
"updatedBy": "7d8b62e3-0c36-4f3b-9988-6e6f4f1fbf67",
"origin": "API_CREATED",
"createdAt": "2026-07-28T08:55:32.000Z",
"updatedAt": "2026-07-28T09:10:18.000Z"
}
Articles
Publish article draft
Publish a draft article.
POST
/
v2
/
hc-articles
/
{id}
/
publish
/
public
curl --request POST \
--url 'https://api-prod.usefini.com/v2/hc-articles/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/publish/public' \
--header 'Authorization: Bearer fini_your_api_key'
const response = await fetch('https://api-prod.usefini.com/v2/hc-articles/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/publish/public', {
method: 'POST',
headers: {
Authorization: 'Bearer fini_your_api_key'
}
});
const data = await response.json();
import requests
response = requests.post(
"https://api-prod.usefini.com/v2/hc-articles/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/publish/public",
headers={"Authorization": "Bearer fini_your_api_key"},
)
data = response.json()
{
"id": "4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3",
"title": "Refund policy",
"mainKnowledge": "Customers can request a refund within 30 days of purchase.",
"agentInstruction": "Use this article for refund eligibility questions.",
"questions": [
"Can I get a refund?"
],
"keywords": [
"refund",
"billing"
],
"escalation": false,
"parentFolderId": "0f4da4fe-b2ae-4787-8c3b-854f36d9eb1b",
"isDraft": false,
"createdBy": "7d8b62e3-0c36-4f3b-9988-6e6f4f1fbf67",
"updatedBy": "7d8b62e3-0c36-4f3b-9988-6e6f4f1fbf67",
"origin": "API_CREATED",
"createdAt": "2026-07-28T08:55:32.000Z",
"updatedAt": "2026-07-28T09:10:18.000Z"
}
Use this route to publish a draft article into the live knowledge graph.
Headers
string
required
Bearer token containing your Fini workspace API key. Format:
Bearer fini_... The key needs write scope.string
required
application/jsonPath parameters
string
required
Draft article ID to publish.
Body parameters
This route uses the same required content fields as Create article.active and public are accepted here. The published article keeps the draft’s stored origin.
Response
Returns the live article that remains after publish. See Manage knowledge for the shared article fields.curl --request POST \
--url 'https://api-prod.usefini.com/v2/hc-articles/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/publish/public' \
--header 'Authorization: Bearer fini_your_api_key'
const response = await fetch('https://api-prod.usefini.com/v2/hc-articles/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/publish/public', {
method: 'POST',
headers: {
Authorization: 'Bearer fini_your_api_key'
}
});
const data = await response.json();
import requests
response = requests.post(
"https://api-prod.usefini.com/v2/hc-articles/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/publish/public",
headers={"Authorization": "Bearer fini_your_api_key"},
)
data = response.json()
{
"id": "4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3",
"title": "Refund policy",
"mainKnowledge": "Customers can request a refund within 30 days of purchase.",
"agentInstruction": "Use this article for refund eligibility questions.",
"questions": [
"Can I get a refund?"
],
"keywords": [
"refund",
"billing"
],
"escalation": false,
"parentFolderId": "0f4da4fe-b2ae-4787-8c3b-854f36d9eb1b",
"isDraft": false,
"createdBy": "7d8b62e3-0c36-4f3b-9988-6e6f4f1fbf67",
"updatedBy": "7d8b62e3-0c36-4f3b-9988-6e6f4f1fbf67",
"origin": "API_CREATED",
"createdAt": "2026-07-28T08:55:32.000Z",
"updatedAt": "2026-07-28T09:10:18.000Z"
}
If the draft was created from an existing live article, the response is that updated original live article. Otherwise, the response is a newly created live article.
Errors
400 Bad Request
400 Bad Request
The request body is malformed or one of the required arrays is empty.
401 Unauthorized
401 Unauthorized
The API key is missing, malformed, revoked, or invalid.
403 Forbidden
403 Forbidden
The API key does not include the
write scope.404 Not Found
404 Not Found
The draft article does not exist in the workspace.
Was this page helpful?

