API¶
The Adverity Atlas REST API lets your own systems do what your team does in the product: register data sources, manage the glossary and knowledge, run automations, and fetch the files and artifacts they produce. It is the counterpart to MCP: MCP hands Adverity Atlas tools to an AI assistant, the API hands the same resources to a script, a pipeline, or a backend service.
Automate setup: Create workspaces, connect data sources, and keep the glossary in sync from your own source of truth
Run and collect: Trigger automations on your own schedule and pull their findings into other tools
Move files in and out: Upload files for analysis and download the files and artifacts Adverity Atlas produces
Govern and monitor: Read the audit trail, track AI costs, and manage members and access
Note
Asking questions in Chat is not part of the REST API. To work with Adverity Atlas conversationally from another tool, connect it over MCP.
Prerequisites¶
An Admin to create a service account and its API key
A workspace the integration should work in
An HTTPS client. Every request and response body is JSON, except file uploads and downloads
Key concepts¶
The API uses the product’s own vocabulary. These are the terms that come up across most endpoints.
Term |
What it is |
|---|---|
Organization |
Your company’s account in Adverity Atlas. Everything else belongs to one organization |
Workspace |
A team’s space inside the organization, arranged as a tree. Access to a workspace includes the workspaces below it. See Workspaces |
Data source |
A connection to a warehouse, such as BigQuery or Snowflake. See Data sources |
Collection, asset, field |
What a sync finds inside a data source: a collection is a schema or dataset, an asset is a table or view in it, a field is a column |
Glossary concept |
A business term, such as a KPI, with its definition. Concepts live in three tiers, standard, organizational, and workspace, and the most specific one wins. See Concept layers |
Business knowledge |
Broader context and rules beyond single terms, such as brand guidelines. See Knowledge |
Automation, run |
An automation is a saved analysis on a schedule; each execution of it is a run, with its own status, output, and findings |
Task execution |
A background job, such as a connection diagnostic. Endpoints that start one and return its id let you check its status with the task executions endpoints |
Artifact |
An output saved from Chat or an automation, such as a presentation or a data app. See Artifacts |
Service account |
A non-human account for integrations, with its own API keys and permissions |
IDs are UUIDs, and timestamps are ISO 8601 in UTC.
Authentication¶
Every request carries an API key, either in the X-API-Key header or as a bearer token:
curl https://<your-atlas-host>/api/v1/auth/me \
-H "X-API-Key: $ADVERITY_API_KEY"
curl https://<your-atlas-host>/api/v1/auth/me \
-H "Authorization: Bearer $ADVERITY_API_KEY"
There are two kinds of key.
Service account key: For integrations, scripts, and CI jobs. Belongs to one organization and acts with the permissions ticked on the service account. Created under Settings > Service Accounts
Personal API token: For your own scripts. Acts as you, with your own roles. Created with
adverity tokens createonce you have signed in withadverity loginin the CLI
Both keys are shown once, when they are created. Store the key before closing the dialog or discarding the response.
Tip
Use a service account for anything that runs without you. Activity is then attributed to the integration in the audit log, and revoking its key leaves everyone else’s access untouched.
Choosing the organization and workspace¶
Two headers set the context a request runs in.
Header |
When you need it |
|---|---|
|
On every request made with a personal token, to pick which of your organizations it is for.
Without it the request is answered with |
|
For workspace-scoped resources such as artifacts, when the endpoint does not take a
|
A workspace the key cannot reach is answered with 403, the same as a workspace that does not
exist. A service account reaches a workspace only once it has been granted access to it, with
POST /api/v1/workspace-access/service-account/. Access to a workspace also covers the workspaces
below it.
What you can do¶
The API is versioned under /api/v1/ and follows the product’s own structure. Each area has its
own reference page listing every endpoint, with its parameters, request fields, and response.
Data sources: Create, verify, and sync connections; browse collections, assets, and fields; run profiling; resolve duplicate data
Glossary and knowledge: Manage glossary concepts and column classifications; add, confirm, and archive business knowledge
Automations: Create automations from templates, activate or pause them, run one now, and read run results
Files: Upload, list, rename, download, reprocess, and delete files
Artifacts: List, download, and delete artifacts; publish them; restore earlier versions
Workspaces: Create, rename, move, and delete workspaces, and configure their storage
People and access: Manage members, invitations, workspace access, service accounts, and single sign-on
Integrations: Manage webhooks, external MCP servers, and AI providers
Activity and monitoring: Read the audit trail, AI costs, background task status, and notifications
Account and organizations: Check who a key belongs to, manage personal tokens, and update your organization
Every call checks the same permission as the matching action in the product. A key can never do more through the API than its owner could in the browser.
Interactive reference¶
Your instance also serves an interactive version of the reference at
https://<your-atlas-host>/api/v1/docs, and the machine-readable OpenAPI schema, for generating a
client, at /api/v1/openapi.json. Both need you to be signed in as an Admin, or to send an
API key whose owner is one. With a personal token, also send X-Tenant-ID for the organization
where you are an Admin.
Example: run an automation and collect its findings¶
A common integration triggers an automation from your own scheduler and pushes its findings somewhere else.
List automations: Find the automation in the workspace
Run it: Start a run immediately
Read the run: Check its status and findings
# 1. Find the automation
curl "https://<your-atlas-host>/api/v1/automations/?workspace_id=$WORKSPACE_ID" \
-H "X-API-Key: $ADVERITY_API_KEY"
# 2. Run it now. The response holds the new run_id
curl -X POST "https://<your-atlas-host>/api/v1/automations/$AUTOMATION_ID/run/" \
-H "X-API-Key: $ADVERITY_API_KEY"
# 3. Read the run, repeating while its status is pending, waiting, or running
curl "https://<your-atlas-host>/api/v1/automations/$AUTOMATION_ID/runs/$RUN_ID/" \
-H "X-API-Key: $ADVERITY_API_KEY"
A run carries its status, the written output, a list of findings, and an
error_message when it failed.
Example: upload a file for analysis¶
Files are sent as a multipart form, with the workspace they belong to:
curl -X POST "https://<your-atlas-host>/api/v1/files/upload/" \
-H "X-API-Key: $ADVERITY_API_KEY" \
-F "workspace_id=$WORKSPACE_ID" \
-F "file=@campaign_plan.xlsx"
The file is processed in the background and then appears on the Files tab, ready to @mention in Chat.
Reacting to events instead of polling¶
To hear about changes as they happen, subscribe a webhook
rather than polling the API. Each delivery is a signed POST to your endpoint, with these
headers:
Header |
Content |
|---|---|
|
The event name, for example |
|
|
|
Unix time the request was signed, for rejecting replays |
|
A delivery id, the same across retries of one delivery |
Responses and errors¶
Most list endpoints take limit and offset query parameters. Some return a plain JSON array;
others wrap the page in an object with items, total, limit, and offset. The endpoint
reference shows which.
Errors come back as JSON. Errors raised by Adverity Atlas carry an error message and, where
useful, details. Errors raised before a request reaches it, such as a missing key or a body that
does not match the schema, carry a detail field instead.
Status |
Meaning |
|---|---|
|
The request cannot be carried out as sent, for example no organization was selected or an automation is already running |
|
The key is missing, revoked, or expired |
|
The key’s owner lacks the permission, or cannot reach the organization or workspace |
|
The resource does not exist |
|
The request body failed validation |
|
Too many requests. The |
What’s next?¶
Automations API: every endpoint for running automations and reading their results
Service accounts: create the account and key an integration authenticates with
MCP servers: connect an AI assistant to Adverity Atlas instead of a script
Webhooks: get events pushed to your systems
Automations: build the automations the API runs