Returns one article translation. The response carries article body, metadata, available languages, security visibility, and any configured custom fields.
Use isForDisplay=true only when rendering for end users (resolves snippet, variable, and glossary merge codes). Do not send the resolved content back to update endpoints.
To resolve an article from its KB URL instead of its ID, use GET /v2/articles with the url query parameter.
The API token used for authenticating the request. This must be passed as a header parameter. To generate an API token, go to Settings > Knowledge base portal > API tokens. This token must correspond to a valid workspace and permission level.
The ID of the article. Fetch via GET /v2/projectversions/{projectVersionId}/articles.
Language code of the article translation (for example en, fr, de-DE, pt-BR). Use GET /v2/language/{projectVersionId} to list the codes enabled for a workspace. Defaults to en when omitted.
Set to true when rendering the article for an end-user — the response will resolve snippet, variable, and glossary merge codes. Do not pass true and then send the resolved content to an update endpoint.
When true, returns the latest published version (falls back to the latest draft if no published version exists). When false, returns the latest draft regardless of publish state.
Set to false to skip appending a SAS token to image/file URLs. SAS tokens are required for private/mixed projects.
Operation succeeded. Inspect the response envelope's success flag and the result/data payload.
A typical Markdown article in a public workspace. The content field carries Markdown source; htmlContent carries the rendered HTML.
{
"data": {
"id": "a1096061-e842-41fd-9085-494095e401b9",
"title": "Knowledge bases are much easier to design and edit",
"content": "Have you ever edited a Wikipedia page? You have to break the flow of text to add tags, and when you want to connect two articles together you have to just hope that nobody changes the other article’s name, lest you end up with a rusty red “dead link.”To be fair,Wikipedia has actually made good strides in making their Wiki software easy to use for anybody, but opening up the editor is still a bit of a shock since you don’t see the familiar webpage you just clicked on. With a knowledge base, what you see is what you get.You don’t have to train anybody on how to add or edit pages because the whole thing is extremely intuitive. Anybody can learn to navigate an edit page in seconds flat.",
"html_content": null,
"category_id": "de104b39-db97-4509-8d4c-deeac74d448b",
"project_version_id": "46f48bc7-760f-4b07-b2d2-fce4aa8ba234",
"version_number": 1,
"public_version": 1,
"latest_version": 2,
"enable_rtl": false,
"hidden": false,
"status": 0,
"order": 0,
"created_by": "f11efc6f-e968-4e95-82eb-85ad61559de8",
"authors": [
{
"id": "f11efc6f-e968-4e95-82eb-85ad61559de8",
"first_name": "peter",
"last_name": "jone",
"user_description": null,
"unique_user_name": "peter-jone",
"email_id": "peterjone@mail.com",
"profile_logo_url": "https://www.gravatar.com/avatar/FE29D578CBEC3945FC88BF4F10906A3E?sv=2022-11-02&st=2024-06-18T07%3A12%3A34Z&se=2024-06-18T07%3A32%3A34Z&sr=b&sp=r&sig=LEA2ccLr1hMTZkAE48jsdaTYgRr6jNScPQ4x4E3vTss%3D",
"profile_logo_cdn_url": "https://www.gravatar.com/avatar/FE29D578CBEC3945FC88BF4F10906A3E?sv=2022-11-02&st=2024-06-18T07%3A12%3A34Z&se=2024-06-18T07%3A32%3A34Z&sr=b&sp=r&sig=LEA2ccLr1hMTZkAE48jsdaTYgRr6jNScPQ4x4E3vTss%3D",
"is_enterprise_user": false
}
],
"created_at": "2024-06-13T14:30:00Z",
"modified_at": "2024-06-13T14:30:00Z",
"slug": "Knowledge-bases-are-much-easier-to-design-and edit",
"is_fall_back_content": false,
"description": null,
"stale_status": {
"article_stale_status": 0,
"stale_reason": "",
"expired_at": "2024-06-13T14:30:00Z",
"is_from_document_settings": false,
"expire_days": 0
},
"category_type": 0,
"content_type": null,
"is_shared_article": false,
"translation_option": 0,
"url": "https://example.com/v1/docs/en/getting-started",
"current_workflow_status_id": "56ad8f40-0d6d-4a23-897d-d85a26726791",
"available_languages": [
{
"lang_code": "fr",
"url": "getting-started",
"translation_status": 2
}
],
"security_visibility": 0,
"custom_fields": [
{
"field_id": "field-definition-id-1",
"name": "Country",
"type": 0,
"value": "USA"
},
{
"field_id": "field-definition-id-2",
"name": "Priority",
"type": 6,
"value": 5
},
{
"field_id": "field-definition-id-3",
"name": "Status",
"type": 2,
"value": "option-id-active",
"options": [
{
"id": "option-id-active",
"label": "Active"
},
{
"id": "option-id-inactive",
"label": "Inactive"
},
{
"id": "option-id-pending",
"label": "Pending"
}
]
}
]
},
"extension_data": null,
"success": true,
"errors": [],
"warnings": [],
"information": []
}A Block-editor article inside a private workspace. The content field is null; htmlContent carries the serialised block JSON. Image and file URLs in the rendered HTML carry SAS tokens because the project is private.
{
"data": {
"id": "7c2e9f01-1a2b-4c3d-9e8f-2b3c4d5e6f70",
"title": "Configure single sign-on with Okta",
"content": null,
"html_content": "Prerequisites
You need an Okta admin account…
",
"category_id": "9bd4c220-5a1f-4b2e-8d7c-1e2f3a4b5c6d",
"project_version_id": "46f48bc7-760f-4b07-b2d2-fce4aa8ba234",
"version_number": 4,
"public_version": 3,
"latest_version": 4,
"enable_rtl": false,
"hidden": false,
"status": 3,
"order": 2,
"created_by": "f11efc6f-e968-4e95-82eb-85ad61559de8",
"authors": [
{
"id": "f11efc6f-e968-4e95-82eb-85ad61559de8",
"first_name": "peter",
"last_name": "jone",
"user_description": null,
"unique_user_name": "peter-jone",
"email_id": "peterjone@mail.com",
"profile_logo_url": "https://www.gravatar.com/avatar/FE29D578CBEC3945FC88BF4F10906A3E?sv=2022-11-02&st=2024-06-18T07%3A12%3A34Z&se=2024-06-18T07%3A32%3A34Z&sr=b&sp=r&sig=LEA2ccLr1hMTZkAE48jsdaTYgRr6jNScPQ4x4E3vTss%3D",
"profile_logo_cdn_url": "https://www.gravatar.com/avatar/FE29D578CBEC3945FC88BF4F10906A3E?sv=2022-11-02&st=2024-06-18T07%3A12%3A34Z&se=2024-06-18T07%3A32%3A34Z&sr=b&sp=r&sig=LEA2ccLr1hMTZkAE48jsdaTYgRr6jNScPQ4x4E3vTss%3D",
"is_enterprise_user": false
}
],
"created_at": "2024-06-13T14:30:00Z",
"modified_at": "2024-06-13T14:30:00Z",
"slug": "configure-single-sign-on-with-okta",
"is_fall_back_content": false,
"description": "Step-by-step guide to wiring up Okta SSO.",
"stale_status": {
"article_stale_status": 1,
"stale_reason": "Scheduled review reminder reached",
"expired_at": "2024-06-13T14:30:00Z",
"is_from_document_settings": false,
"expire_days": 0
},
"category_type": 0,
"content_type": 2,
"is_shared_article": false,
"translation_option": 0,
"url": "https://example.com/v1/docs/en/configure-single-sign-on-with-okta",
"current_workflow_status_id": "56ad8f40-0d6d-4a23-897d-d85a26726791",
"available_languages": [
{
"lang_code": "en",
"url": "configure-single-sign-on-with-okta",
"translation_status": 2
},
{
"lang_code": "de-DE",
"url": "configure-single-sign-on-with-okta",
"translation_status": 3
}
],
"security_visibility": 1,
"custom_fields": []
},
"extension_data": null,
"success": true,
"errors": [],
"warnings": [],
"information": []
}Article data
The ID of the article
The title of the article
If the article editor is Markdown, then the article content will be present in this property
If the article editor is WYSIWYG (HTML), then the content will be present in this property. Note: Markdown editor will also have HTML content (read-only).
The ID of the article's parent category
The ID of the project version where the article is located
The currently fetched version number of the article
The currently published version number of the article
The latest version number of the article
True indicates that Right to Left alignment is enabled for the article language
False indicates that the article is visible on the site
The status of the article: 0 - Draft, 3 - Published
The position inside the parent category
The ID of the team account who created the article
The list of contributors in the article
Compact representation of a team account — surfaced as an author/contributor on articles and categories.
The ID of the team account.
First name of the team account.
Last name of the team account.
Free-text description shown on the user's profile.
The unique display name (handle) for the team account.
Email address of the team account.
URL of the user's profile picture (served via blob storage; a SAS token is appended for private/mixed projects).
CDN-fronted URL for the user's profile picture (with SAS token appended for private/mixed projects).
True when the team account was provisioned via an enterprise SSO connection.
The date on which the article was created
The date on which the article was last modified
The slug of the article
True indicates that the article content is a fallback of the default language content
The description of the article
Fresh - Article is up-to-date Stale - Article requires review
The freshness classification of the article (Fresh, Stale, ReviewPending, etc.). Defaults to Fresh.
Free-text explanation captured when the article was marked stale.
UTC date when this stale-status entry expires (article enters review).
True if the stale policy was inherited from project-level documentation settings rather than set on the article directly.
Number of days from publication after which the article should next be reviewed.
0 - Folder, 1 - Page, 2 - Index
0 - Markdown; 1 - WYSIWYG(HTML); 2 - Advanced WYSIWYG
True indicates that the article is shared
The translation status of the document. Valid values: 0 - None, 1 - Need Translation, 2 - Translated, 3 - In Progress
Url of the article
Current Workflow status of the article
Lists the languages in which the article is available, along with their translation status and URL.
Represents information about an available language translation for an article or category.
The language code of the translated document.
The URL of the translated document.
The translation status of the document. Valid values: 0 - None, 1 - Need Translation, 2 - Translated, 3 - In Progress
Indicates the visibility level of the article. 0 - Public, 1 - Private
Custom field values associated with the article
Represents a custom field value with its definition metadata
Unique identifier of the custom field definition
The display name of the custom field
The type of the custom field. 0 = Text, 1 = TextArea, 2 = Dropdown, 3 = MultiSelectDropdown, 4 = Date, 5 = Boolean, 6 = Number
The value of the custom field. Type depends on field type:
- Text/TextArea: string
- Number: int or double
- Boolean: bool
- Date: DateTime
- Dropdown: string (selected option ID)
- MultiSelectDropdown: List
(array of selected option IDs)
Available options for Dropdown and MultiSelectDropdown fields. Omitted for other field types.
Option definition for dropdown fields
The option ID (use this value when updating)
The display label for the option
Extension data for customer API response
Indicates the status of the API response. A value of true signifies that the request was successfully processed, while false indicates a failure or error occurred.
A list of errors encountered during the API request. Each error object provides details about the problem, including an error code and a message explaining the issue. This field is populated when the request fails or encounters issues.
One structured error in a response's Document360.Core.Messages.Core.BaseResponse.errors array.
This is the Extension data object
A technical trace showing where the error occurred within the system. Intended for backend debugging.
A clear message explaining what caused the error. This helps quickly understand what went wrong.
A short, predefined code that identifies the type of error. Useful for logging the error or raising a support request.
Any structured metadata for the error object.
A list of warnings generated during the API request. These are non-critical issues or recommendations that might affect the request but won't stop it from processing. Each warning object provides a message to inform the user of potential problems.
One non-fatal warning attached to an otherwise-successful response.
Extension Data for customer Api warning
A plain message that describes the warning and helps understand what should be reviewed.
A short, predefined code that uniquely identifies the warning type.
Contains additional non-critical information relevant to the request or response. This field provides extra details that might assist in understanding the context of the API response but is not essential for processing.
One informational message in a response's Document360.Core.Messages.Core.BaseResponse.information array. Non-error context the SPA may surface to the user.
Extension data for customer Api response information
A plain message offering helpful context about the response, such as confirmation of fallback logic or skipped operations.
The request body or query parameters failed validation. Inspect errors[].description for the offending fields.
The supplied articleId does not exist in the project, or no translation exists for the requested langCode. Verify both values with GET /v2/projectversions/{projectVersionId}/articles and GET /v2/language/{projectVersionId}.
{
"extension_data": null,
"success": false,
"errors": [
{
"extension_data": null,
"stack_trace": null,
"description": "Article not found",
"error_code": null,
"custom_data": null
}
],
"warnings": [],
"information": []
}The article exists but the requested langCode is not enabled for the workspace. Use GET /v2/language/{projectVersionId} to list enabled languages.
{
"extension_data": null,
"success": false,
"errors": [
{
"extension_data": null,
"stack_trace": null,
"description": "Language 'de-DE' is not enabled for this workspace.",
"error_code": null,
"custom_data": null
}
],
"warnings": [],
"information": []
}The api_token header is missing, malformed, or revoked. Re-issue the token under Settings → Knowledge base portal → API tokens in the Document360 portal.
{
"extension_data": null,
"success": false,
"errors": [
{
"extension_data": null,
"stack_trace": null,
"description": "Invalid or missing API token.",
"error_code": null,
"custom_data": null
}
],
"warnings": [],
"information": []
}Extension data for customer API response
Indicates the status of the API response. A value of true signifies that the request was successfully processed, while false indicates a failure or error occurred.
A list of errors encountered during the API request. Each error object provides details about the problem, including an error code and a message explaining the issue. This field is populated when the request fails or encounters issues.
One structured error in a response's Document360.Core.Messages.Core.BaseResponse.errors array.
This is the Extension data object
A technical trace showing where the error occurred within the system. Intended for backend debugging.
A clear message explaining what caused the error. This helps quickly understand what went wrong.
A short, predefined code that identifies the type of error. Useful for logging the error or raising a support request.
Any structured metadata for the error object.
A list of warnings generated during the API request. These are non-critical issues or recommendations that might affect the request but won't stop it from processing. Each warning object provides a message to inform the user of potential problems.
One non-fatal warning attached to an otherwise-successful response.
Extension Data for customer Api warning
A plain message that describes the warning and helps understand what should be reviewed.
A short, predefined code that uniquely identifies the warning type.
Contains additional non-critical information relevant to the request or response. This field provides extra details that might assist in understanding the context of the API response but is not essential for processing.
One informational message in a response's Document360.Core.Messages.Core.BaseResponse.information array. Non-error context the SPA may surface to the user.
Extension data for customer Api response information
A plain message offering helpful context about the response, such as confirmation of fallback logic or skipped operations.
Authentication failed — the api_token header is missing, malformed, or has been revoked.
Extension data for customer API response
Indicates the status of the API response. A value of true signifies that the request was successfully processed, while false indicates a failure or error occurred.
A list of errors encountered during the API request. Each error object provides details about the problem, including an error code and a message explaining the issue. This field is populated when the request fails or encounters issues.
One structured error in a response's Document360.Core.Messages.Core.BaseResponse.errors array.
This is the Extension data object
A technical trace showing where the error occurred within the system. Intended for backend debugging.
A clear message explaining what caused the error. This helps quickly understand what went wrong.
A short, predefined code that identifies the type of error. Useful for logging the error or raising a support request.
Any structured metadata for the error object.
A list of warnings generated during the API request. These are non-critical issues or recommendations that might affect the request but won't stop it from processing. Each warning object provides a message to inform the user of potential problems.
One non-fatal warning attached to an otherwise-successful response.
Extension Data for customer Api warning
A plain message that describes the warning and helps understand what should be reviewed.
A short, predefined code that uniquely identifies the warning type.
Contains additional non-critical information relevant to the request or response. This field provides extra details that might assist in understanding the context of the API response but is not essential for processing.
One informational message in a response's Document360.Core.Messages.Core.BaseResponse.information array. Non-error context the SPA may surface to the user.
Extension data for customer Api response information
A plain message offering helpful context about the response, such as confirmation of fallback logic or skipped operations.
The requested resource was not found, or the supplied identifier does not exist in the project.
Extension data for customer API response
Indicates the status of the API response. A value of true signifies that the request was successfully processed, while false indicates a failure or error occurred.
A list of errors encountered during the API request. Each error object provides details about the problem, including an error code and a message explaining the issue. This field is populated when the request fails or encounters issues.
One structured error in a response's Document360.Core.Messages.Core.BaseResponse.errors array.
This is the Extension data object
A technical trace showing where the error occurred within the system. Intended for backend debugging.
A clear message explaining what caused the error. This helps quickly understand what went wrong.
A short, predefined code that identifies the type of error. Useful for logging the error or raising a support request.
Any structured metadata for the error object.
A list of warnings generated during the API request. These are non-critical issues or recommendations that might affect the request but won't stop it from processing. Each warning object provides a message to inform the user of potential problems.
One non-fatal warning attached to an otherwise-successful response.
Extension Data for customer Api warning
A plain message that describes the warning and helps understand what should be reviewed.
A short, predefined code that uniquely identifies the warning type.
Contains additional non-critical information relevant to the request or response. This field provides extra details that might assist in understanding the context of the API response but is not essential for processing.
One informational message in a response's Document360.Core.Messages.Core.BaseResponse.information array. Non-error context the SPA may surface to the user.
Extension data for customer Api response information
A plain message offering helpful context about the response, such as confirmation of fallback logic or skipped operations.
Rate limit exceeded for this api_token. Wait for the duration in the Retry-After header before retrying.
Extension data for customer API response
Indicates the status of the API response. A value of true signifies that the request was successfully processed, while false indicates a failure or error occurred.
A list of errors encountered during the API request. Each error object provides details about the problem, including an error code and a message explaining the issue. This field is populated when the request fails or encounters issues.
One structured error in a response's Document360.Core.Messages.Core.BaseResponse.errors array.
This is the Extension data object
A technical trace showing where the error occurred within the system. Intended for backend debugging.
A clear message explaining what caused the error. This helps quickly understand what went wrong.
A short, predefined code that identifies the type of error. Useful for logging the error or raising a support request.
Any structured metadata for the error object.
A list of warnings generated during the API request. These are non-critical issues or recommendations that might affect the request but won't stop it from processing. Each warning object provides a message to inform the user of potential problems.
One non-fatal warning attached to an otherwise-successful response.
Extension Data for customer Api warning
A plain message that describes the warning and helps understand what should be reviewed.
A short, predefined code that uniquely identifies the warning type.
Contains additional non-critical information relevant to the request or response. This field provides extra details that might assist in understanding the context of the API response but is not essential for processing.
One informational message in a response's Document360.Core.Messages.Core.BaseResponse.information array. Non-error context the SPA may surface to the user.
Extension data for customer Api response information
A plain message offering helpful context about the response, such as confirmation of fallback logic or skipped operations.