1. API Reference
  2. Get started
  3. Project scoping
Website
  • API overview
  • API quickstart
  • Authentication
  • Project scoping
  • Requests and responses
  • Pagination and filtering
  • Errors
  • GETList supported database engines
  • POSTList projects
  • POSTCreate a project
  • GETGet a project
  • DELETEDelete a project
  • PATCHUpdate a project
  • POSTCreate a source
  • POSTList sources
  • GETGet source details
  • DELETEDelete a source
  • PATCHUpdate a source
  • POSTCreate secret metadata
  • POSTList secret metadata
  • GETGet secret metadata
  • DELETEDelete secret metadata
  • PATCHUpdate secret metadata
  • POSTCreate a schedule
  • POSTList schedules
  • POSTSummarize schedule statuses
  • GETGet a schedule
  • DELETEDelete a schedule
  • PATCHUpdate a schedule
  • DELETERemove a schedule gate
  • POSTActivate or pause a schedule
  • POSTQueue a manual check
  • POSTCreate an immutable report
  • POSTList reports
  • GETGet report details
  • DELETEDelete a report
  • POSTDownload a report
  • POSTGet the API-key scope catalog
  • POSTCreate an API key
  • POSTList API-key metadata
  • GETGet API-key metadata
  • DELETEDelete an API key
  • PATCHUpdate API-key metadata
  • POSTCreate a notification channel
  • POSTList notification channels
  • POSTResolve notification channels by ID
  • GETGet notification channel details
  • DELETEDelete a notification channel
  • PATCHUpdate a notification channel
  • POSTSend a test notification
  • POSTCreate a project worker
  • POSTList project workers
  • GETGet worker details
  • DELETEDelete a worker
  • PATCHUpdate a worker
  • POSTRead live worker agent logs
  • POSTList checks
  • POSTSummarize check statuses
  • GETGet check details
  • POSTGet check log sections
  • POSTDownload a check log
  • POSTDownload check audit evidence
  • POSTList notification messages
  • GETGet notification message details

Project scoping

Send project context on collection operations and rely on resource ownership for item operations.

Loading documentation…

Authentication< PreviousRequests and responsesNext >

Powered by heyo

On this page

Create and list operationsItem operationsCross-project behavior

Every automation API key belongs to exactly one project. The API enforces that binding in addition to checking scopes.

Create and list operations

Send project_id in the JSON body when creating a resource or calling a /list endpoint.

json
{  "project_id": "65f0c7a9a7d6b4e2c1234567",  "sort": "created-desc",  "pagination": { "limit": 25 },  "filters": {}}

The ID must match the project bound to the API key. A mismatch returns 403 Forbidden.

Project-wide actions such as POST /v1/checks/summary and POST /v1/schedules/summary also require project_id in the body. They do not identify a single resource in the URL.

Item operations

Do not send project context when the URL already identifies a resource:

bash
curl --request GET \  --url "https://api.restoretrust.example/v1/schedules/65f0c9bca7d6b4e2c7654321" \  --header "X-API-Key: rtk_REPLACE_WITH_YOUR_KEY"

For GET, PATCH, POST actions, and DELETE routes below a resource ID, the API loads the resource and derives its owning project.

No client project override on item routes

Do not send project_id in the body or query string, and do not send X-Project-Id. Item routes reject supplied project context with 400 Bad Request.

Cross-project behavior

To avoid revealing whether another customer's resource exists, an item that is outside the key's project returns 404 Not Found, just like an unknown ID. Use a different API key for each project.

CreatePOST /v1/{resource}optional

Include the key's project_id in the request body.

ListPOST /v1/{resource}/listoptional

Include the key's project_id in the request body.

Item/v1/{resource}/{id}optional

Omit all project context; ownership is derived from the item.

Projects themselves are managed with an interactive console session, not a project API key. See Projects.

Related topics

  • Authenticate with an API key
  • List resources with cursors
  • Interpret 403 and 404 responses