For AI agents: the complete documentation index is at https://docs.routebase.dev/llms.txt. Every page is also available as Markdown by appending index.md to its URL or by sending Accept: text/markdown.
API Reference

7 endpoints

Keep documentation pages in your own repository and push them into Routebase from a pipeline. These endpoints back routebase docs push and routebase docs pull.

List the documentations of a project

GET /api/projects/{projectId}/docs

Returns the documentations of a project with their versions, which is how a pipeline finds the id of the version it should write into. Only a version whose status is draft or review accepts changes, so pick one of those.

Parameters

Name In Type Required Description
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Responses

200 — The documentations of the project.

Property Type Required Description
documentations Documentation[] yes The documentations of the project. A project usually has exactly one.

401 — The API key is missing, invalid, expired or revoked. A US organization calling

without X-RB-Region: us also lands here, because the request reached the wrong region.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

403 — The key is valid but lacks the permission or the project scope for this call.

A scoped key is also refused on organization level operations by design.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

404 — The resource does not exist, or it belongs to another organization or project.

Both cases answer the same way on purpose, so the API cannot be used to probe for foreign identifiers.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

Get the page tree of a version

GET /api/projects/{projectId}/docs/{docId}/versions/{versionId}/tree

Returns the full hierarchy of a documentation version. Each node is exactly one of a page, a folder or an API reference snapshot, and the type field says which of the three is filled.

The response carries an ETag, so a pipeline that syncs repeatedly can send If-None-Match and skip the work when nothing moved.

Parameters

Name In Type Required Description
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Responses

200 — The documentation tree.

Property Type Required Description
items DocTreeNode[] yes The root level of the tree. Folders carry their children inline.

304 — Nothing changed since the ETag you sent.

401 — The API key is missing, invalid, expired or revoked. A US organization calling

without X-RB-Region: us also lands here, because the request reached the wrong region.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

403 — The key is valid but lacks the permission or the project scope for this call.

A scoped key is also refused on organization level operations by design.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

404 — The resource does not exist, or it belongs to another organization or project.

Both cases answer the same way on purpose, so the API cannot be used to probe for foreign identifiers.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

Create a page

POST /api/projects/{projectId}/docs/{docId}/versions/{versionId}/pages

Creates a page inside a version, at the root or under a folder. The slug is derived from the title when you do not send one, and it is what the public portal URL is built from, so set it explicitly if the URL matters to you.

Parameters

Name In Type Required Description
Idempotency-Key header string no Makes a retry of this write safe. Send a new value of 1 to 255 characters for each logical request and the same value on every retry. A successful result is kept for 24 hours, and a retry within that time returns it with the Idempotency-Replayed header instead of running the request again.
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Request body

Required.

Content type: application/json

Property Type Required Description
title string yes Page title. It becomes the heading and, unless you send a slug, the URL segment.
content string null no
parentFolderPublicId string (uuid) null no
pageType DocPageType null no
structuredContent string null no
icon string null no
slug string null no

Responses

201 — The page was created.

Property Type Required Description
id string (uuid) yes Public id of the new page.
slug string yes URL segment the page received, derived from the title unless you sent one.

400 — The request was malformed or failed validation.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

401 — The API key is missing, invalid, expired or revoked. A US organization calling

without X-RB-Region: us also lands here, because the request reached the wrong region.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

403 — The key is valid but lacks the permission or the project scope for this call.

A scoped key is also refused on organization level operations by design.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

404 — The resource does not exist, or it belongs to another organization or project.

Both cases answer the same way on purpose, so the API cannot be used to probe for foreign identifiers.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

409 — A request with this Idempotency-Key is still running, or its response was too large to keep. The code is IDEMPOTENCY_KEY_IN_PROGRESS or IDEMPOTENCY_RESPONSE_NOT_STORED, and in the second case the request is not run again.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

422 — This Idempotency-Key was already used with a different request body, so use a new key. The code is IDEMPOTENCY_KEY_REUSED.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

Get a page with its content

GET /api/projects/{projectId}/docs/{docId}/versions/{versionId}/pages/{pageId}

Returns one page including its Markdown content and its rowVersion. Send that rowVersion back on the next update and a concurrent edit is rejected with 409 instead of silently overwriting someone else's work.

Parameters

Name In Type Required Description
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Responses

200 — The page.

Property Type Required Description
id string (uuid) yes Public id of the page.
title string yes Page title, also used as the heading in the portal.
slug string yes URL segment of the page in the portal path.
content string yes The page content as Markdown.
pageType DocPageType yes The template the page was created from.
structuredContent string null no
icon string null no
createdAt string (date-time) yes When the page was created, in UTC.
modifiedAt string (date-time) null no
rowVersion string null no
isLocked boolean yes Someone holds the page open in the editor, so it cannot be written.

401 — The API key is missing, invalid, expired or revoked. A US organization calling

without X-RB-Region: us also lands here, because the request reached the wrong region.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

403 — The key is valid but lacks the permission or the project scope for this call.

A scoped key is also refused on organization level operations by design.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

404 — The resource does not exist, or it belongs to another organization or project.

Both cases answer the same way on purpose, so the API cannot be used to probe for foreign identifiers.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

Update a page

PUT /api/projects/{projectId}/docs/{docId}/versions/{versionId}/pages/{pageId}

Replaces the title and content of a page, which is the call that carries a Markdown file from your repository into Routebase. A page that a person has locked in the editor is not writable, and the call is rejected until the lock is released.

Parameters

Name In Type Required Description
Idempotency-Key header string no Makes a retry of this write safe. Send a new value of 1 to 255 characters for each logical request and the same value on every retry. A successful result is kept for 24 hours, and a retry within that time returns it with the Idempotency-Replayed header instead of running the request again.
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Request body

Required.

Content type: application/json

Property Type Required Description
title string yes New page title. Sending the old one leaves it unchanged.
content string yes Page content as Markdown.
structuredContent string null no
icon string null no
expectedRowVersion string (byte) null no
slug string null no

Responses

200 — The updated page.

Property Type Required Description
id string (uuid) yes Public id of the page.
title string yes Page title, also used as the heading in the portal.
slug string yes URL segment of the page in the portal path.
content string yes The page content as Markdown.
pageType DocPageType yes The template the page was created from.
structuredContent string null no
icon string null no
createdAt string (date-time) yes When the page was created, in UTC.
modifiedAt string (date-time) null no
rowVersion string null no
isLocked boolean yes Someone holds the page open in the editor, so it cannot be written.

400 — The request was malformed or failed validation.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

401 — The API key is missing, invalid, expired or revoked. A US organization calling

without X-RB-Region: us also lands here, because the request reached the wrong region.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

403 — The key is valid but lacks the permission or the project scope for this call.

A scoped key is also refused on organization level operations by design.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

404 — The resource does not exist, or it belongs to another organization or project.

Both cases answer the same way on purpose, so the API cannot be used to probe for foreign identifiers.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

409 — The resource changed since you read it. Reload it, reapply your change and send

the fresh rowVersion. The code is CONCURRENCY_CONFLICT.

With an Idempotency-Key, a 409 can also mean that a request with this key is still running or that its response was too large to keep. The code is then IDEMPOTENCY_KEY_IN_PROGRESS or IDEMPOTENCY_RESPONSE_NOT_STORED.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

422 — This Idempotency-Key was already used with a different request body, so use a new key. The code is IDEMPOTENCY_KEY_REUSED.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

Create a folder

POST /api/projects/{projectId}/docs/{docId}/versions/{versionId}/folders

Creates a folder in a version. A folder with isSection set becomes a top level section in the portal header rather than an entry in the sidebar, and only a folder at the root can be one.

Parameters

Name In Type Required Description
Idempotency-Key header string no Makes a retry of this write safe. Send a new value of 1 to 255 characters for each logical request and the same value on every retry. A successful result is kept for 24 hours, and a retry within that time returns it with the Idempotency-Replayed header instead of running the request again.
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Request body

Required.

Content type: application/json

Property Type Required Description
name string yes Folder name. It becomes the sidebar label and, unless you send a slug, the URL segment.
icon string null no
description string null no
parentFolderPublicId string (uuid) null no
isSection boolean no Make this a top level section in the portal header instead of a sidebar entry. Only a folder at the root can be one.
slug string null no

Responses

201 — The folder was created.

Property Type Required Description
id string (uuid) yes Public id of the new folder, which you pass as parentFolderPublicId to fill it.
slug string yes URL segment the folder received, derived from the name unless you sent one.

400 — The request was malformed or failed validation.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

401 — The API key is missing, invalid, expired or revoked. A US organization calling

without X-RB-Region: us also lands here, because the request reached the wrong region.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

403 — The key is valid but lacks the permission or the project scope for this call.

A scoped key is also refused on organization level operations by design.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

404 — The resource does not exist, or it belongs to another organization or project.

Both cases answer the same way on purpose, so the API cannot be used to probe for foreign identifiers.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

409 — A request with this Idempotency-Key is still running, or its response was too large to keep. The code is IDEMPOTENCY_KEY_IN_PROGRESS or IDEMPOTENCY_RESPONSE_NOT_STORED, and in the second case the request is not run again.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

422 — This Idempotency-Key was already used with a different request body, so use a new key. The code is IDEMPOTENCY_KEY_REUSED.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

Reorder the items under one parent

PUT /api/projects/{projectId}/docs/{docId}/versions/{versionId}/tree/reorder

Sets the order of the items inside one folder, or at the root when parentFolderPublicId is null. Send the complete list of ids in the order you want, because the position of an item is its index in that list.

Parameters

Name In Type Required Description
Idempotency-Key header string no Makes a retry of this write safe. Send a new value of 1 to 255 characters for each logical request and the same value on every retry. A successful result is kept for 24 hours, and a retry within that time returns it with the Idempotency-Replayed header instead of running the request again.
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Request body

Required.

Content type: application/json

Property Type Required Description
parentFolderPublicId string (uuid) null no
itemPublicIds string (uuid)[] yes Every id under that parent, in the order you want them.

Responses

204 — The order was applied.

400 — The request was malformed or failed validation.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

401 — The API key is missing, invalid, expired or revoked. A US organization calling

without X-RB-Region: us also lands here, because the request reached the wrong region.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

403 — The key is valid but lacks the permission or the project scope for this call.

A scoped key is also refused on organization level operations by design.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

404 — The resource does not exist, or it belongs to another organization or project.

Both cases answer the same way on purpose, so the API cannot be used to probe for foreign identifiers.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

409 — A request with this Idempotency-Key is still running, or its response was too large to keep. The code is IDEMPOTENCY_KEY_IN_PROGRESS or IDEMPOTENCY_RESPONSE_NOT_STORED, and in the second case the request is not run again.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

422 — This Idempotency-Key was already used with a different request body, so use a new key. The code is IDEMPOTENCY_KEY_REUSED.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.