> ## Documentation Index > Fetch the complete documentation index at: https://apidocs.document360.com/llms.txt > Use this file to discover all available pages before exploring further. # Starts a new export > **Request Body Parameters:** - `entity` (string) - Specifies the type of entity for which the export will be executed. For example, use "Project" to export content at the project level. - `version_id` (array of string) - List of unique version IDs where the export will be executed. Set to null to include all available workspaces or versions. - `selected_languages` (array of LanguageMeta) - List of languages to include in the export. Each object should define a specific language configuration. - `code` (string) - Language code (e.g., "en", "fr"). ISO language code for the selected language. - `id` (string) - Unique identifier of the language within the workspace. - `version_id` (string) - ID of the version associated with the selected language. - `selected_categories` (array of CategoryMeta) - List of categories to include in the export. Each item should follow the structure of a category and its metadata. - `language_id` (string) - ID of the language to which the category belongs. Set to null to include categories from all languages. - `id` (string) - Unique identifier of the category selected for export. - `exclude_media_files` (boolean) - Set to true to exclude all media files (images, attachments) from the export. Useful for generating lightweight exports. - `filter_by_article_modified_at` (object) - Used to apply a time-based filter on articles. Only articles modified within the date range will be included. - `after` (string/date-time) - Filters articles modified after this date (ISO 8601 format). Example: "2025-06-13T14:30:00Z" - `before` (string/date-time) - Filters articles modified before this date (ISO 8601 format). Example: "2025-06-13T14:30:00Z" - `export_type` (integer) - Specifies the format for the export. - `0` - JSON export (default) - generates .zip with structured JSON metadata and content files - `1` - HTML (offline documentation) - generates static HTML site packaged in .zip **Response (200 Success):** - `id` (string) - The unique ID of the export request. Use this ID to fetch or track export details in subsequent API calls. - `status` (string) - The current status of the export request. Helps determine the progress or result of the export operation. **Notes:** - For `Category` entity: Use `selectedCategories` to specify which categories to export (includes child categories and articles) - `selectedLanguages` filters which language versions to include in the export - Leave `selectedLanguages` and `selectedCategories` as empty arrays to export all available content ## OpenAPI ````json POST /v2/Project/Export { "openapi": "3.0.1", "info": { "title": "Document360 Customer API", "description": "Document360 RESTful APIs let you integrate your documentation with your software — onboard readers, manage articles, automate publishing, and more.\n\nFull reference: [API Documentation](https://apidocs.document360.io/docs).\n\n## Authentication\nEvery request must include your API token in the `api_token` header. Generate tokens in the Document360 portal under **Settings → Knowledge base portal → API tokens**. Tokens are project-scoped and can be revoked at any time. The same token can be passed via the `api_token` query string for situations where headers are not configurable, but the header form is strongly preferred.\n\n## Project context\nMany endpoints implicitly resolve the project from the API token. When an endpoint requires explicit project context, pass the project identifier in the `ProjectId` header.\n\n## Identifiers — how to fetch them\nMost endpoints accept one or more identifiers as path, query, or body parameters. Use the discovery endpoints below to look them up programmatically rather than hard-coding values:\n\n| Identifier | What it is | Where to fetch it |\n| --- | --- | --- |\n| `projectVersionId` (a.k.a. workspaceId) | A workspace/version inside the project — content (articles, categories, languages) lives within one. | `GET /v2/projectversions` — returns all workspaces with their `id`. Required first to discover articles, categories, and languages. |\n| `categoryId` | A category in the category tree. | `GET /v2/projectversions/{projectVersionId}/categories` — returns the full category hierarchy with each category's `id`. |\n| `articleId` | An article inside a category. | `GET /v2/projectversions/{projectVersionId}/articles` — lists all articles in the workspace. Also available inside the categories tree response. |\n| `langCode` | Two-letter / locale code (`en`, `fr`, `de-DE`, `pt-BR`, …) of an article or category translation. | `GET /v2/language/{projectVersionId}` — returns the languages enabled for the workspace, including `code` and `name`. |\n| `versionNumber` | A specific version of an article or category translation. | `GET /v2/articles/{articleId}/{langCode}/versions` for articles, `GET /v2/categories/{categoryId}/{langCode}versions` for categories. |\n| `userId` (team account) | A portal user (team member). | `GET /v2/teams` — lists all team accounts with their `userId`. `GET /v2/teams/{userId}` returns full details for one. |\n| `groupId` (team) | A team account group. | `GET /v2/teams/groups`. |\n| `roleId` | A role assignable to team accounts. | `GET /v2/teams/roles`. |\n| `readerId` | A reader account (used for private docs / reader analytics). | `GET /v2/readers` — supports pagination and `searchEmail` filtering. |\n| `groupId` (reader) | A reader group. | `GET /v2/readers/groups`. |\n\n**Tip:** In the Document360 portal, the article and category IDs are visible in the URL when an item is open in the editor — e.g. `…/docs//edit/`. `projectId` and `projectVersionId` are visible in **Settings → API tokens** and **Documentation → Workspaces** respectively.\n\n## Query parameter casing\nV1/V2 query parameters use **snake_case** on the wire (for example `search_email`, `exclude_readers`, `version_number`). The server transparently maps snake_case query keys to the camelCase parameter names you see in this specification, so either casing is accepted, but snake_case is the documented convention for V1/V2.\n\n## Response envelope\nAll responses are wrapped in a consistent envelope:\n\n- `success` (boolean) — `true` when the operation succeeded, `false` otherwise. Always check this before reading the payload.\n- `errors` (array) — populated when `success` is `false`. Each entry has a human-readable `description`.\n- `warnings` / `information` (arrays) — non-fatal advisories returned alongside a successful response.\n- `result` or `data` — the operation's payload (the property name depends on the endpoint).\n\nHTTP status codes follow standard semantics (`200` success, `400` validation/business error, `401` missing or invalid token, `403` plan/permission restriction, `404` not found, `429` rate-limited, `5xx` server error). For non-`200` responses the envelope still applies — inspect `errors[].description` for details.\n\n## Rate limits\nEndpoints are rate-limited per API token per project. When throttled, the server returns `429 Too Many Requests` along with `Retry-After`, `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` headers. Use exponential backoff with jitter and respect the `Retry-After` header on the response.\n\n## Versioning\nAll routes are prefixed with the API version: `/v1/...` and `/v2/...`. V1 and V2 are stable; V3 is in Beta. New endpoints and fields may be added without notice in V1/V2 — they will never be removed or renamed in a backwards-incompatible way.", "version": "2.0.0" }, "servers": [ { "url": "https://apihub.document360.io", "description": "Document 360 API Hub" }, { "url": "https://apihub.us.document360.io", "description": "Document360 API Hub - US data center" }, { "url": "https://apihub.{private_hosting}.document360.io", "description": "Private hosting - Please provide the subdomain name.", "variables": { "private_hosting": { "default": "domain", "description": "Sub domain for private hosting" } } } ], "tags": [ { "name": "Articles", "description": "Create, read, update, publish, fork, and delete knowledge base articles. Manage article versions, settings, descriptions, workflow status, and bulk operations. Supports both Markdown and WYSIWYG/Block content types." }, { "name": "Categories", "description": "Manage the category hierarchy that organizes articles. Create, update, reorder, and delete categories; manage category content, settings, workflow status, and bulk operations." }, { "name": "Drive", "description": "Upload, organize, and manage media files and folders in Drive (used in articles and documentation)." }, { "name": "Readers", "description": "Manage reader accounts and reader groups for private documentation. Create readers, assign them to groups, and manage access scopes." }, { "name": "Teams", "description": "Manage team accounts (portal users), team groups, and role assignments within a project." }, { "name": "Project", "description": "Project-level operations: export and import project documentation as zip archives." }, { "name": "ProjectVersions", "description": "Manage workspaces (also called project versions) within a project. List, search, fetch settings, and inspect version metadata." }, { "name": "Language", "description": "Retrieve languages configured for a workspace." }, { "name": "Translations", "description": "Query article translation status across the configured languages." }, { "name": "CustomField", "description": "Retrieve custom field definitions configured for the project. Custom field values are written/read via the Article and Category settings endpoints." }, { "name": "APIReferences", "description": "Import OpenAPI/Swagger specifications into API reference documentation and inspect import logs." } ], "x-tagGroups": [ { "name": "Workspace", "tags": [ "Project", "ProjectVersions" ] }, { "name": "Content", "tags": [ "Articles", "Categories" ] }, { "name": "Media", "tags": [ "Drive" ] }, { "name": "Access", "tags": [ "Readers", "Teams" ] }, { "name": "Localization", "tags": [ "Language", "Translations" ] }, { "name": "Custom data", "tags": [ "CustomField" ] } ], "paths": { "/v2/Project/Export": { "post": { "tags": [ "Project" ], "summary": "Starts a new export", "description": "**Request Body Parameters:**\r\n\r\n- `entity` (string) - Specifies the type of entity for which the export will be executed. For example, use \"Project\" to export content at the project level.\r\n\r\n- `version_id` (array of string) - List of unique version IDs where the export will be executed. Set to null to include all available workspaces or versions.\r\n\r\n- `selected_languages` (array of LanguageMeta) - List of languages to include in the export. Each object should define a specific language configuration.\r\n - `code` (string) - Language code (e.g., \"en\", \"fr\"). ISO language code for the selected language.\r\n - `id` (string) - Unique identifier of the language within the workspace.\r\n - `version_id` (string) - ID of the version associated with the selected language.\r\n\r\n- `selected_categories` (array of CategoryMeta) - List of categories to include in the export. Each item should follow the structure of a category and its metadata.\r\n - `language_id` (string) - ID of the language to which the category belongs. Set to null to include categories from all languages.\r\n - `id` (string) - Unique identifier of the category selected for export.\r\n\r\n- `exclude_media_files` (boolean) - Set to true to exclude all media files (images, attachments) from the export. Useful for generating lightweight exports.\r\n\r\n- `filter_by_article_modified_at` (object) - Used to apply a time-based filter on articles. Only articles modified within the date range will be included.\r\n - `after` (string/date-time) - Filters articles modified after this date (ISO 8601 format). Example: \"2025-06-13T14:30:00Z\"\r\n - `before` (string/date-time) - Filters articles modified before this date (ISO 8601 format). Example: \"2025-06-13T14:30:00Z\"\r\n\r\n- `export_type` (integer) - Specifies the format for the export.\r\n - `0` - JSON export (default) - generates .zip with structured JSON metadata and content files\r\n - `1` - HTML (offline documentation) - generates static HTML site packaged in .zip\r\n\r\n**Response (200 Success):**\r\n- `id` (string) - The unique ID of the export request. Use this ID to fetch or track export details in subsequent API calls.\r\n- `status` (string) - The current status of the export request. Helps determine the progress or result of the export operation.\r\n\r\n**Notes:**\r\n- For `Category` entity: Use `selectedCategories` to specify which categories to export (includes child categories and articles)\r\n- `selectedLanguages` filters which language versions to include in the export\r\n- Leave `selectedLanguages` and `selectedCategories` as empty arrays to export all available content", "operationId": "export", "requestBody": { "description": "Filter to export Full/Part of the documentation", "content": { "application/json-patch+json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ExportDocumentationRequest" } ] }, "examples": { "Export - Complete Project": { "summary": "To export the complete project, set Entity as 'Project'. All versions, languages, and categories will be automatically included. VersionId, SelectedLanguages, and SelectedCategories will be populated automatically.", "value": { "entity": "Project", "version_id": [], "selected_languages": null, "selected_categories": null, "exclude_media_files": true, "filter_by_article_modified_at": null, "export_type": 0 } }, "Export - One or more project versions (all languages and categories)": { "summary": "To export one or more project versions with all languages and categories, set Entity as 'Version' and provide VersionId array. All languages and categories for the specified versions will be automatically included. Use /projectversions API to get version IDs.", "value": { "entity": "Version", "version_id": [ "6558-7607-4594-ac82-e9b56aa8ab4", "de558-7607-4594-ac82-e9b5bdfve34" ], "selected_languages": null, "selected_categories": null, "exclude_media_files": true, "filter_by_article_modified_at": null, "export_type": 0 } }, "Export - Specific versions with selected languages": { "summary": "To export specific versions with selected languages, set Entity as 'Version' and provide both VersionId and SelectedLanguages. Categories for the specified versions and languages will be automatically included. If SelectedLanguages is not provided, all languages for the versions will be included.", "value": { "entity": "Version", "version_id": [ "6558-7607-4594-ac82-e9b56aa8ab4", "de558-7607-4594-ac82-e9b5bdfve34" ], "selected_languages": [ { "id": "de558-7607-4594-c2ds-e9b5bdfve34", "code": "en", "version_id": "6558-7607-4594-ac82-e9b56aa8ab4" }, { "id": "8558-7607-4594-rt17-e9b56aa8ab4", "code": "fr", "version_id": "de558-7607-4594-ac82-e9b5bdfve34" } ], "selected_categories": null, "exclude_media_files": true, "filter_by_article_modified_at": { "after": "2024-06-13T14:30:00", "before": "2024-06-13T14:30:00" }, "export_type": 0 } }, "Export - Specific categories": { "summary": "To export specific categories, set Entity as 'Category' and provide SelectedCategories with Id, LanguageId, and VersionId for each category. VersionId array and SelectedLanguages will be automatically derived from the provided categories.", "value": { "entity": "Category", "version_id": null, "selected_languages": null, "selected_categories": [ { "id": "Q58df-7607-4594-ac82-e9b5bdfe1h9", "language_id": "lang-id-1", "version_id": "6558-7607-4594-ac82-e9b56aa8ab4" }, { "id": "Q58df-7607-4594-ac82-e9b5bdfe1h9", "language_id": "lang-id-2", "version_id": "de558-7607-4594-ac82-e9b5bdfve34" } ], "exclude_media_files": true, "filter_by_article_modified_at": { "after": "2024-06-13T14:30:00", "before": "2024-06-13T14:30:00" }, "export_type": 0 } } } }, "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ExportDocumentationRequest" } ] }, "examples": { "Export - Complete Project": { "summary": "To export the complete project, set Entity as 'Project'. All versions, languages, and categories will be automatically included. VersionId, SelectedLanguages, and SelectedCategories will be populated automatically.", "value": { "entity": "Project", "version_id": [], "selected_languages": null, "selected_categories": null, "exclude_media_files": true, "filter_by_article_modified_at": null, "export_type": 0 } }, "Export - One or more project versions (all languages and categories)": { "summary": "To export one or more project versions with all languages and categories, set Entity as 'Version' and provide VersionId array. All languages and categories for the specified versions will be automatically included. Use /projectversions API to get version IDs.", "value": { "entity": "Version", "version_id": [ "6558-7607-4594-ac82-e9b56aa8ab4", "de558-7607-4594-ac82-e9b5bdfve34" ], "selected_languages": null, "selected_categories": null, "exclude_media_files": true, "filter_by_article_modified_at": null, "export_type": 0 } }, "Export - Specific versions with selected languages": { "summary": "To export specific versions with selected languages, set Entity as 'Version' and provide both VersionId and SelectedLanguages. Categories for the specified versions and languages will be automatically included. If SelectedLanguages is not provided, all languages for the versions will be included.", "value": { "entity": "Version", "version_id": [ "6558-7607-4594-ac82-e9b56aa8ab4", "de558-7607-4594-ac82-e9b5bdfve34" ], "selected_languages": [ { "id": "de558-7607-4594-c2ds-e9b5bdfve34", "code": "en", "version_id": "6558-7607-4594-ac82-e9b56aa8ab4" }, { "id": "8558-7607-4594-rt17-e9b56aa8ab4", "code": "fr", "version_id": "de558-7607-4594-ac82-e9b5bdfve34" } ], "selected_categories": null, "exclude_media_files": true, "filter_by_article_modified_at": { "after": "2024-06-13T14:30:00", "before": "2024-06-13T14:30:00" }, "export_type": 0 } }, "Export - Specific categories": { "summary": "To export specific categories, set Entity as 'Category' and provide SelectedCategories with Id, LanguageId, and VersionId for each category. VersionId array and SelectedLanguages will be automatically derived from the provided categories.", "value": { "entity": "Category", "version_id": null, "selected_languages": null, "selected_categories": [ { "id": "Q58df-7607-4594-ac82-e9b5bdfe1h9", "language_id": "lang-id-1", "version_id": "6558-7607-4594-ac82-e9b56aa8ab4" }, { "id": "Q58df-7607-4594-ac82-e9b5bdfe1h9", "language_id": "lang-id-2", "version_id": "de558-7607-4594-ac82-e9b5bdfve34" } ], "exclude_media_files": true, "filter_by_article_modified_at": { "after": "2024-06-13T14:30:00", "before": "2024-06-13T14:30:00" }, "export_type": 0 } } } }, "text/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ExportDocumentationRequest" } ] }, "examples": { "Export - Complete Project": { "summary": "To export the complete project, set Entity as 'Project'. All versions, languages, and categories will be automatically included. VersionId, SelectedLanguages, and SelectedCategories will be populated automatically.", "value": { "entity": "Project", "version_id": [], "selected_languages": null, "selected_categories": null, "exclude_media_files": true, "filter_by_article_modified_at": null, "export_type": 0 } }, "Export - One or more project versions (all languages and categories)": { "summary": "To export one or more project versions with all languages and categories, set Entity as 'Version' and provide VersionId array. All languages and categories for the specified versions will be automatically included. Use /projectversions API to get version IDs.", "value": { "entity": "Version", "version_id": [ "6558-7607-4594-ac82-e9b56aa8ab4", "de558-7607-4594-ac82-e9b5bdfve34" ], "selected_languages": null, "selected_categories": null, "exclude_media_files": true, "filter_by_article_modified_at": null, "export_type": 0 } }, "Export - Specific versions with selected languages": { "summary": "To export specific versions with selected languages, set Entity as 'Version' and provide both VersionId and SelectedLanguages. Categories for the specified versions and languages will be automatically included. If SelectedLanguages is not provided, all languages for the versions will be included.", "value": { "entity": "Version", "version_id": [ "6558-7607-4594-ac82-e9b56aa8ab4", "de558-7607-4594-ac82-e9b5bdfve34" ], "selected_languages": [ { "id": "de558-7607-4594-c2ds-e9b5bdfve34", "code": "en", "version_id": "6558-7607-4594-ac82-e9b56aa8ab4" }, { "id": "8558-7607-4594-rt17-e9b56aa8ab4", "code": "fr", "version_id": "de558-7607-4594-ac82-e9b5bdfve34" } ], "selected_categories": null, "exclude_media_files": true, "filter_by_article_modified_at": { "after": "2024-06-13T14:30:00", "before": "2024-06-13T14:30:00" }, "export_type": 0 } }, "Export - Specific categories": { "summary": "To export specific categories, set Entity as 'Category' and provide SelectedCategories with Id, LanguageId, and VersionId for each category. VersionId array and SelectedLanguages will be automatically derived from the provided categories.", "value": { "entity": "Category", "version_id": null, "selected_languages": null, "selected_categories": [ { "id": "Q58df-7607-4594-ac82-e9b5bdfe1h9", "language_id": "lang-id-1", "version_id": "6558-7607-4594-ac82-e9b56aa8ab4" }, { "id": "Q58df-7607-4594-ac82-e9b5bdfe1h9", "language_id": "lang-id-2", "version_id": "de558-7607-4594-ac82-e9b5bdfve34" } ], "exclude_media_files": true, "filter_by_article_modified_at": { "after": "2024-06-13T14:30:00", "before": "2024-06-13T14:30:00" }, "export_type": 0 } } } }, "application/*+json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ExportDocumentationRequest" } ] }, "examples": { "Export - Complete Project": { "summary": "To export the complete project, set Entity as 'Project'. All versions, languages, and categories will be automatically included. VersionId, SelectedLanguages, and SelectedCategories will be populated automatically.", "value": { "entity": "Project", "version_id": [], "selected_languages": null, "selected_categories": null, "exclude_media_files": true, "filter_by_article_modified_at": null, "export_type": 0 } }, "Export - One or more project versions (all languages and categories)": { "summary": "To export one or more project versions with all languages and categories, set Entity as 'Version' and provide VersionId array. All languages and categories for the specified versions will be automatically included. Use /projectversions API to get version IDs.", "value": { "entity": "Version", "version_id": [ "6558-7607-4594-ac82-e9b56aa8ab4", "de558-7607-4594-ac82-e9b5bdfve34" ], "selected_languages": null, "selected_categories": null, "exclude_media_files": true, "filter_by_article_modified_at": null, "export_type": 0 } }, "Export - Specific versions with selected languages": { "summary": "To export specific versions with selected languages, set Entity as 'Version' and provide both VersionId and SelectedLanguages. Categories for the specified versions and languages will be automatically included. If SelectedLanguages is not provided, all languages for the versions will be included.", "value": { "entity": "Version", "version_id": [ "6558-7607-4594-ac82-e9b56aa8ab4", "de558-7607-4594-ac82-e9b5bdfve34" ], "selected_languages": [ { "id": "de558-7607-4594-c2ds-e9b5bdfve34", "code": "en", "version_id": "6558-7607-4594-ac82-e9b56aa8ab4" }, { "id": "8558-7607-4594-rt17-e9b56aa8ab4", "code": "fr", "version_id": "de558-7607-4594-ac82-e9b5bdfve34" } ], "selected_categories": null, "exclude_media_files": true, "filter_by_article_modified_at": { "after": "2024-06-13T14:30:00", "before": "2024-06-13T14:30:00" }, "export_type": 0 } }, "Export - Specific categories": { "summary": "To export specific categories, set Entity as 'Category' and provide SelectedCategories with Id, LanguageId, and VersionId for each category. VersionId array and SelectedLanguages will be automatically derived from the provided categories.", "value": { "entity": "Category", "version_id": null, "selected_languages": null, "selected_categories": [ { "id": "Q58df-7607-4594-ac82-e9b5bdfe1h9", "language_id": "lang-id-1", "version_id": "6558-7607-4594-ac82-e9b56aa8ab4" }, { "id": "Q58df-7607-4594-ac82-e9b5bdfe1h9", "language_id": "lang-id-2", "version_id": "de558-7607-4594-ac82-e9b5bdfve34" } ], "exclude_media_files": true, "filter_by_article_modified_at": { "after": "2024-06-13T14:30:00", "before": "2024-06-13T14:30:00" }, "export_type": 0 } } } } }, "required": true }, "responses": { "200": { "description": "Export task created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExportDocumentationResponse" }, "examples": { "Export Documentation - 200 Status response.": { "summary": "The below example shows the status response for export documentation. Here the export for a new documentation will be triggered.", "value": { "id": "69c2a0ee-bbac-4563-921c-08efef575b64", "status": "Initiated", "extension_data": null, "success": true, "errors": [], "warnings": [], "information": [] } } } } } }, "400": { "description": "Invalid request - check entity type, versionId, or other parameters", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomerApiBaseResponse" }, "examples": { "Export Documentation - 400 Status response invalid language code.": { "summary": "The below example shows the error status response says invalid language code.", "value": { "extension_data": null, "success": false, "errors": [ { "extension_data": null, "stack_trace": null, "description": "The LanguageCode field is required", "error_code": "400", "custom_data": null } ], "warnings": [], "information": [] } }, "Export Documentation - 400 Status response for reaching export documentation limit.": { "summary": "The below example shows the error status that you had reached the limit for the day.", "value": { "extension_data": null, "success": false, "errors": [ { "extension_data": null, "stack_trace": null, "description": "Export API request limit(2) is reached for the day.", "error_code": "400", "custom_data": null } ], "warnings": [], "information": [] } }, "Export Documentation - 400 Status response for invalid entity field.": { "summary": "The below example shows the error status that the entity field should not be empty or invalid. Entity options are - 1.Project 2.Version , 3.Category , 4.Article ", "value": { "extension_data": null, "success": false, "errors": [ { "extension_data": null, "stack_trace": null, "description": "The Entity field is required.", "error_code": "400", "custom_data": null } ], "warnings": [], "information": [] } } } } } }, "401": { "description": "Authentication failed — the `api_token` header is missing, malformed, or has been revoked.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomerApiBaseResponse" } } } }, "429": { "description": "Rate limit exceeded for this api_token. Wait for the duration in the `Retry-After` header before retrying.", "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying the request.", "schema": { "type": "integer", "format": "int32" } }, "X-RateLimit-Limit": { "description": "The maximum number of requests allowed in the current window.", "schema": { "type": "integer", "format": "int32" } }, "X-RateLimit-Remaining": { "description": "The number of requests remaining in the current window.", "schema": { "type": "integer", "format": "int32" } }, "X-RateLimit-Reset": { "description": "Unix timestamp (seconds) at which the current rate-limit window resets.", "schema": { "type": "integer", "format": "int64" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomerApiBaseResponse" } } } } }, "security": [ { "api_token": [] } ] } } }, "components": { "schemas": { "ExportDocumentationRequest": { "type": "object", "properties": { "entity": { "type": "string", "description": "Entity type to export. Allowed values: \"Project\", \"Version\", \"Category\"", "nullable": true, "example": "Version" }, "version_id": { "type": "array", "items": { "type": "string" }, "description": "Array of version IDs to export. Required when Entity is \"Version\". Use empty array [] for \"Project\" entity.", "nullable": true, "example": [ "695782c0-a0a3-4664-9bfd-0197d26379ee" ] }, "selected_languages": { "type": "array", "items": { "$ref": "#/components/schemas/LanguageMeta" }, "description": "Optional list of languages to include in the export. Leave empty or null to export all languages.", "nullable": true }, "selected_categories": { "type": "array", "items": { "$ref": "#/components/schemas/CategoryMeta" }, "description": "List of categories to include in the export. Required when Entity is \"Category\". Leave empty or null for \"Project\" or \"Version\" entities to export all categories.", "nullable": true }, "exclude_media_files": { "type": "boolean", "description": "Set to true to exclude media files (images, attachments) from the export, reducing file size. Default is false.", "example": false }, "filter_by_article_modified_at": { "allOf": [ { "$ref": "#/components/schemas/DateRange" } ], "description": "Optional date range filter to export only articles modified within the specified period.", "nullable": true }, "export_type": { "enum": [ "json", "webHelp" ], "type": "string", "allOf": [ { "$ref": "#/components/schemas/ExportType" } ], "description": "Export format type. 0 = JSON format (default), 1 = HTML (Offline Documentation).", "example": "0", "x-enumNames": [ "JSON", "WebHelp" ], "x-enum-varnames": [ "JSON", "WebHelp" ], "x-ms-enum": { "name": "ExportType", "modelAsString": true } } }, "additionalProperties": false }, "ExportDocumentationResponse": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the export request. Use this ID to get export details", "nullable": true, "readOnly": true }, "status": { "type": "string", "description": "Current status of the export", "nullable": true, "example": "Initiated" }, "extension_data": { "allOf": [ { "$ref": "#/components/schemas/ExtensionDataObject" } ], "description": "Extension data for customer API response", "nullable": true }, "success": { "type": "boolean", "description": "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.", "readOnly": true }, "errors": { "type": "array", "items": { "$ref": "#/components/schemas/BaseError" }, "description": "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.", "nullable": true }, "warnings": { "type": "array", "items": { "$ref": "#/components/schemas/BaseWarning" }, "description": "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.", "nullable": true }, "information": { "type": "array", "items": { "$ref": "#/components/schemas/BaseInformation" }, "description": "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.", "nullable": true } }, "additionalProperties": false }, "CustomerApiBaseResponse": { "type": "object", "properties": { "extension_data": { "allOf": [ { "$ref": "#/components/schemas/ExtensionDataObject" } ], "description": "Extension data for customer API response", "nullable": true }, "success": { "type": "boolean", "description": "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.", "readOnly": true }, "errors": { "type": "array", "items": { "$ref": "#/components/schemas/BaseError" }, "description": "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.", "nullable": true }, "warnings": { "type": "array", "items": { "$ref": "#/components/schemas/BaseWarning" }, "description": "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.", "nullable": true }, "information": { "type": "array", "items": { "$ref": "#/components/schemas/BaseInformation" }, "description": "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.", "nullable": true } }, "additionalProperties": false }, "LanguageMeta": { "type": "object", "properties": { "id": { "type": "string", "description": "The unique identifier of the language version", "nullable": true, "readOnly": true, "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }, "code": { "type": "string", "description": "Language code (e.g., \"en\" for English, \"es\" for Spanish, \"fr\" for French, \"de\" for German)", "nullable": true, "example": "en" }, "version_id": { "type": "string", "nullable": true } }, "additionalProperties": false }, "CategoryMeta": { "type": "object", "properties": { "id": { "type": "string", "description": "The unique identifier of the category", "nullable": true, "readOnly": true, "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901" }, "language_id": { "type": "string", "description": "The language ID for the category content. Specifies which language version of the category to export.", "nullable": true, "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }, "version_id": { "type": "string", "nullable": true } }, "additionalProperties": false }, "DateRange": { "type": "object", "properties": { "after": { "type": "string", "description": "Filter the articles which are all modified after the given date", "format": "date-time", "nullable": true }, "before": { "type": "string", "description": "Filter the articles which are all modified before the given date", "format": "date-time", "nullable": true } }, "additionalProperties": false }, "ExportType": { "enum": [ "json", "webHelp" ], "type": "string", "description": "Possible values: `\"json\"` = JSON, `\"webHelp\"` = WebHelp", "x-enumNames": [ "JSON", "WebHelp" ], "x-enum-varnames": [ "JSON", "WebHelp" ], "x-ms-enum": { "name": "ExportType", "modelAsString": true } }, "ExtensionDataObject": { "type": "object", "additionalProperties": false }, "BaseError": { "type": "object", "properties": { "extension_data": { "allOf": [ { "$ref": "#/components/schemas/ExtensionDataObject" } ], "description": "This is the Extension data object", "nullable": true }, "stack_trace": { "type": "string", "description": "A technical trace showing where the error occurred within the system. Intended for backend debugging.", "nullable": true }, "description": { "type": "string", "description": "A clear message explaining what caused the error. This helps quickly understand what went wrong.", "nullable": true }, "error_code": { "type": "string", "description": "A short, predefined code that identifies the type of error. Useful for logging the error or raising a support request.", "nullable": true }, "custom_data": { "type": "object", "additionalProperties": {}, "description": "Any structured metadata for the error object.", "nullable": true } }, "additionalProperties": false, "description": "One structured error in a response's Document360.Core.Messages.Core.BaseResponse.errors array." }, "BaseWarning": { "type": "object", "properties": { "extension_data": { "allOf": [ { "$ref": "#/components/schemas/ExtensionDataObject" } ], "description": "Extension Data for customer Api warning", "nullable": true }, "description": { "type": "string", "description": "A plain message that describes the warning and helps understand what should be reviewed.", "nullable": true }, "warning_code": { "type": "string", "description": "A short, predefined code that uniquely identifies the warning type.", "nullable": true } }, "additionalProperties": false, "description": "One non-fatal warning attached to an otherwise-successful response." }, "BaseInformation": { "type": "object", "properties": { "extension_data": { "allOf": [ { "$ref": "#/components/schemas/ExtensionDataObject" } ], "description": "Extension data for customer Api response information", "nullable": true }, "description": { "type": "string", "description": "A plain message offering helpful context about the response, such as confirmation of fallback logic or skipped operations.", "nullable": true } }, "additionalProperties": false, "description": "One informational message in a response's Document360.Core.Messages.Core.BaseResponse.information array. Non-error context the SPA may surface to the user." } }, "securitySchemes": { "api_token": { "type": "apiKey", "description": "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.", "name": "api_token", "in": "header" } } } } ````