curl --request GET \
--url 'https://api-prod.usefini.com/v2/hc-articles/public?type=live&from=2026-06-01T00:00:00.000Z&origin=API_CREATED' \
--header 'Authorization: Bearer fini_your_api_key'
const response = await fetch('https://api-prod.usefini.com/v2/hc-articles/public?type=live&from=2026-06-01T00:00:00.000Z&origin=API_CREATED', {
method: 'GET',
headers: {
Authorization: 'Bearer fini_your_api_key'
}
});
const data = await response.json();
import requests
response = requests.get(
"https://api-prod.usefini.com/v2/hc-articles/public?type=live&from=2026-06-01T00:00:00.000Z&origin=API_CREATED",
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
List articles
List live articles, draft articles, or both.
GET
/
v2
/
hc-articles
/
public
curl --request GET \
--url 'https://api-prod.usefini.com/v2/hc-articles/public?type=live&from=2026-06-01T00:00:00.000Z&origin=API_CREATED' \
--header 'Authorization: Bearer fini_your_api_key'
const response = await fetch('https://api-prod.usefini.com/v2/hc-articles/public?type=live&from=2026-06-01T00:00:00.000Z&origin=API_CREATED', {
method: 'GET',
headers: {
Authorization: 'Bearer fini_your_api_key'
}
});
const data = await response.json();
import requests
response = requests.get(
"https://api-prod.usefini.com/v2/hc-articles/public?type=live&from=2026-06-01T00:00:00.000Z&origin=API_CREATED",
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 read the current articles in the workspace.
Headers
string
required
Bearer token containing your Fini workspace API key. Format:
Bearer fini_... The key needs read scope.Query parameters
string
Optional filter. Allowed values:
live and draft. If omitted, the route returns both live and draft articles.string
Optional lower bound on
updatedAt. In practice this is usually an ISO 8601 timestamp.array
Optional list of user IDs. Returns only articles created by one of those users.
array
Optional list of user IDs. Returns only articles last updated by one of those users.
array
Optional list of article origins. Allowed values:
MANUAL_ARTICLE, API_CREATED, MAGIC_ARTICLE, SOURCE_IMPORT, INBOX_SUGGESTION, FIX_REVIEW, OVERNIGHT_GENERATION, and FINI_SCOUT.curl --request GET \
--url 'https://api-prod.usefini.com/v2/hc-articles/public?type=live&from=2026-06-01T00:00:00.000Z&origin=API_CREATED' \
--header 'Authorization: Bearer fini_your_api_key'
const response = await fetch('https://api-prod.usefini.com/v2/hc-articles/public?type=live&from=2026-06-01T00:00:00.000Z&origin=API_CREATED', {
method: 'GET',
headers: {
Authorization: 'Bearer fini_your_api_key'
}
});
const data = await response.json();
import requests
response = requests.get(
"https://api-prod.usefini.com/v2/hc-articles/public?type=live&from=2026-06-01T00:00:00.000Z&origin=API_CREATED",
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"
}
]
Response
Returns an array of article objects sorted byupdatedAt descending. Each item uses the shared object defined in Manage knowledge, including fields such as id, title, mainKnowledge, parentFolderId, timestamps, and optional draft metadata.
If you omit
type, the array can include both live articles and draft articles.Errors
400 Bad Request
400 Bad Request
The query parameters are malformed or
type is not one of the allowed values.401 Unauthorized
401 Unauthorized
The API key is missing, malformed, revoked, or invalid.
403 Forbidden
403 Forbidden
The API key does not include the
read scope.Was this page helpful?

