You can use the v3 API to create and publish multiple articles in a single request. This helps you automate content creation across categories and workspaces, reducing manual effort.
Before you begin
As with a single article, you need a project_id, and each article needs a workspace_id and a category_id. Retrieve them from GET /v3/projects, GET …/workspaces, and GET …/workspaces/{workspace_id}/categories.
Bulk operations are capped at 100 items per request. Each item is processed independently — some can succeed while others fail — so always inspect the per-item results.
Step 1 — Create multiple articles
POST /v3/projects/{project_id}/articles/bulk
curl --request POST "https://apihub.document360.io/v3/projects/{project_id}/articles/bulk" \
--header "X-API-Key: YOUR_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"articles": [
{
"title": "Getting Started with Single Sign-On",
"content": "# Introduction\nThis guide walks you through configuring SSO.",
"category_id": "f4a5b6c7-d8e9-0a1b-2c3d-4e5f6a7b8c9d",
"workspace_id": "1c2d3e4f-5a6b-7c8d-9e0f-a1b2c3d4e5f6"
},
{
"title": "Configuring SAML Identity Providers",
"content": "# SAML Configuration\nStep-by-step SAML setup.",
"category_id": "f4a5b6c7-d8e9-0a1b-2c3d-4e5f6a7b8c9d",
"workspace_id": "1c2d3e4f-5a6b-7c8d-9e0f-a1b2c3d4e5f6"
}
]
}'
The response returns one result per article, including the input index, the new id, a success flag, and details. The top-level success is true only if every item succeeded.
{
"success": true,
"request_id": "req_abc123def456",
"data": [
{ "index": 0, "id": "9a3b4c5d-6e7f-8a9b-0c1d-2e3f4a5b6c7d", "success": true, "details": "Article created successfully." },
{ "index": 1, "id": "c5d6e7f8-9a0b-1c2d-3e4f-5a6b7c8d9e0f", "success": true, "details": "Article created successfully." }
]
}
Save the id values — you need them to publish.
Step 2 — Publish multiple articles
Publish up to 100 articles by supplying them in items. Each entry takes an id and an optional comment. The language is passed as a query parameter.
POST /v3/projects/{project_id}/articles/bulk/publish?lang_code=en
curl --request POST "https://apihub.document360.io/v3/projects/{project_id}/articles/bulk/publish?lang_code=en" \
--header "X-API-Key: YOUR_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"items": [
{ "id": "9a3b4c5d-6e7f-8a9b-0c1d-2e3f4a5b6c7d" },
{ "id": "c5d6e7f8-9a0b-1c2d-3e4f-5a6b7c8d9e0f", "comment": "Publishing after review" }
]
}'
comment is required for an article when its workflow status has mandatory publish comments enabled; otherwise it is optional.
{
"success": true,
"request_id": "req_abc123def456",
"data": [
{ "index": 0, "id": "9a3b4c5d-6e7f-8a9b-0c1d-2e3f4a5b6c7d", "success": true, "details": "Published." },
{ "index": 1, "id": "c5d6e7f8-9a0b-1c2d-3e4f-5a6b7c8d9e0f", "success": true, "details": "Published." }
]
}
If any item fails, the top-level success is false while other items still succeed. Use the index field to correlate each result with the ID you sent.