> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usefini.com/llms.txt
> Use this file to discover all available pages before exploring further.
# Overview
> Section hub for reading, creating, updating, drafting, publishing, and deleting articles.
These routes manage articles directly in Fini's live knowledge graph.
<Info>
Use this section when you already know the article content you want to store or update directly. For source-backed generation, start from [Knowledge](/en/api-reference/knowledge) and the generation routes there.
</Info>
## Reference pages
<CardGroup cols={3}>
<Card title="List articles" icon="list" href="/en/api-reference/list-articles">
`GET /v2/hc-articles/public` — list live articles, draft articles, or both.
</Card>
<Card title="Get articles by IDs" icon="eye" href="/en/api-reference/get-articles-by-ids">
`POST /v2/hc-articles/ids/public` — fetch one or more articles by ID.
</Card>
<Card title="Create article" icon="plus" href="/en/api-reference/create-article">
`POST /v2/hc-articles/public` — create a live article or draft article.
</Card>
<Card title="Update article" icon="pen" href="/en/api-reference/update-article">
`PUT /v2/hc-articles/:id/public` — update an existing article.
</Card>
<Card title="Create article draft" icon="file" href="/en/api-reference/create-article-draft">
`POST /v2/hc-articles/:id/draft/public` — create a draft from an existing article.
</Card>
<Card title="Publish article draft" icon="paper-plane" href="/en/api-reference/publish-article-draft">
`POST /v2/hc-articles/:id/publish/public` — publish a draft article.
</Card>
<Card title="Delete article" icon="trash" href="/en/api-reference/delete-article">
`DELETE /v2/hc-articles/:id/public` — delete an article.
</Card>
</CardGroup>
## Endpoint map
| Method | Path | Scope | Purpose |
| - | - | - | - |
| `GET` | `/v2/hc-articles/public` | `read` | List articles. Use `type=live` or `type=draft` to filter. |
| `POST` | `/v2/hc-articles/ids/public` | `read` | Fetch one or more articles by ID. |
| `POST` | `/v2/hc-articles/public` | `write` | Create a live article or draft article. |
| `PUT` | `/v2/hc-articles/:id/public` | `write` | Update an existing article. |
| `POST` | `/v2/hc-articles/:id/draft/public` | `write` | Create a draft from an existing article. |
| `POST` | `/v2/hc-articles/:id/publish/public` | `write` | Publish a draft article. |
| `DELETE` | `/v2/hc-articles/:id/public` | `write` | Delete an article. |
<Note>
There is no workspace-API-key `GET /v2/hc-articles/:id/public` route in the current controller. If you want to fetch by ID, use `POST /v2/hc-articles/ids/public` with one or more `articleIds`.
</Note>
## Article object
<ResponseField name="id" type="string">
Article ID.
</ResponseField>
<ResponseField name="title" type="string">
Article title.
</ResponseField>
<ResponseField name="mainKnowledge" type="string">
Main knowledge body.
</ResponseField>
<ResponseField name="agentInstruction" type="string">
Additional instructions the agent should apply when using this article.
</ResponseField>
<ResponseField name="questions" type="array">
Question prompts associated with the article.
</ResponseField>
<ResponseField name="keywords" type="array">
Keyword list associated with the article.
</ResponseField>
<ResponseField name="escalation" type="boolean">
Whether the article is marked as escalation-related.
</ResponseField>
<ResponseField name="misc" type="object">
Internal metadata stored with the article. Source-backed generation and draft flows may use this to retain linkage data.
</ResponseField>
<ResponseField name="active" type="boolean">
Whether the article is active.
</ResponseField>
<ResponseField name="public" type="boolean">
Whether the article is public in the help center.
</ResponseField>
<ResponseField name="parentFolderId" type="string">
Folder that contains the article.
</ResponseField>
<ResponseField name="companyId" type="string">
Workspace ID that owns the article.
</ResponseField>
<ResponseField name="createdAt" type="string">
ISO 8601 creation timestamp.
</ResponseField>
<ResponseField name="updatedAt" type="string">
ISO 8601 last-update timestamp.
</ResponseField>
<ResponseField name="version" type="integer">
Article version, when versioning metadata is available.
</ResponseField>
<ResponseField name="isDraftPublished" type="boolean">
Whether the draft has already been published, when applicable.
</ResponseField>
<ResponseField name="originalArticleId" type="string">
Original live article ID when this object is a draft of an existing article.
</ResponseField>
<ResponseField name="originalArticleVersion" type="integer">
Version of the original live article when this draft was created.
</ResponseField>
<ResponseField name="createdBy" type="string">
User ID that created the article, when stored.
</ResponseField>
<ResponseField name="updatedBy" type="string">
User ID that last updated the article, when stored.
</ResponseField>
<ResponseField name="origin" type="string">
Stored article origin. Current values are `MANUAL_ARTICLE`, `API_CREATED`, `MAGIC_ARTICLE`, `SOURCE_IMPORT`, `INBOX_SUGGESTION`, `FIX_REVIEW`, `OVERNIGHT_GENERATION`, and `FINI_SCOUT`.
</ResponseField>
<Note>
Use the child pages in this section for the detailed request and response reference for each route.
</Note>
## Related topics
- [Overview](/en/api-reference/tags.md)
This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.
Articles

