Skip to main content

Get started

Overview

The Nomic HTTP API connects your systems to the same platform capabilities you use in the product—agents, file ingest, parsing, codes search, and organization administration. It is available on Business and Enterprise organization instances.

Every request is versioned under one base URL on your Nomic instance. Use API keys from the Developer Console; responses follow shared conventions for errors, pagination, and rate limits.

Start here​

What you can use​

Base URL​

https://<your-domain>.nomic.ai/api/v0

Replace <your-domain> with the part of your instance's hostname before .nomic.ai — for example, acme.drive if you sign in at acme.drive.nomic.ai, giving https://acme.drive.nomic.ai/api/v0. Individual plan accounts do not include the Agent API.

Authentication​

Authenticate every request with an API key in the Authorization header. Two schemes are accepted — use whichever your HTTP client makes easier:

Authorization: Bearer npk_...

or HTTP Basic with the key as the username and an empty password (handy for curl -u and many SIEM/enterprise clients):

curl "https://<your-domain>.nomic.ai/api/v0/users" -u "$NOMIC_API_KEY:"

Create and manage API keys in the Developer Console at /developer on your Nomic instance. Each key is scoped to a specific user, and usage is attributed to that user's account.

Scopes​

API keys are granted scopes that control which API areas they can access. When creating a key, choose the broad developer scope, the broad admin scope, or any of the granular developer and admin scopes.

Developer scopes​

ScopeGrants access to
developerEvery developer API: agents, files, parsing, codes, projects, budgets, and workflows. Includes every developer:* scope.
developer:agentAgents, codes search, and listing and reading workflows.
developer:filesSearching, uploading, and polling files.
developer:parseParse jobs.
developer:projects:readReading projects and their members.
developer:projects:createCreating projects.
developer:projects:adminUpdating project metadata and members. Includes developer:projects:read.
developer:budgets:readReading the budgets you administer and their member limits.
developer:budgets:writeCreating and changing budgets and setting member limits. Includes developer:budgets:read.
developer:workflowsCreating, editing, and releasing workflows.

Developer scopes grant access to an API area; each request still runs as the key's owner, so project roles, file permissions, and budget admin rights apply as they would in the app.

Admin scopes​

Admin access requires the key owner to be an organization admin. A key keeps its admin scopes only while its owner remains an admin, so give integrations such as a SIEM poller a key owned by a dedicated admin account.

ScopeGrants access to
adminAdmin APIs such as users, analytics, API keys, and audit logs.
admin:audit:readAudit logs, for SIEM/SOAR ingestion.
admin:analytics:readAnalytics endpoints.
admin:users:readReading users.
admin:users:writeModifying users. Includes admin:users:read.
admin:api-keys:readListing API keys.
admin:api-keys:writeRevoking API keys. Includes admin:api-keys:read.
admin:integrations:readListing the drives under a SharePoint site.
admin:integrations:writeConnecting SharePoint sites to sync. Includes admin:integrations:read.

The admin scope includes every granular admin scope. Prefer the narrowest scope an integration needs; a SIEM integration only needs admin:audit:read.

Errors​

API error responses return a JSON body with:

  • error: Human-readable description of what went wrong.
  • code: Machine-readable error code you can use for programmatic handling. Present on validation, authentication, authorization, spend, rate-limit, and unknown-path failures; a few handlers (file upload, user lookups and enable/disable, API key revocation, and parse status) return error alone, so treat code as optional.
  • issues (optional): Validation details for schema/path/query/body validation failures.
{
"error": "File version not found",
"code": "not_found"
}

Validation failures may include additional field-level details:

{
"error": "Invalid request body",
"code": "bad_request",
"issues": [
{
"path": ["fileVersionId"],
"message": "Required"
}
]
}

Status codes​

CodeMeaning
400Bad request — invalid or missing parameters, including schema validation failures
401Missing or invalid API key
403API key lacks the required scope
404Resource not found or not accessible
409Request conflicts with current state
413Payload too large (file upload exceeds 500 MB)
429Rate limit exceeded — see Rate limits
500Internal server error
501Feature unavailable on this instance
503Dependent service not configured

Error codes​

Where a code is present, branch on it rather than parsing the human-readable error message:

codeTypical statusMeaning
bad_request400Invalid or missing parameters, including schema validation failures
unauthorized401Missing or invalid API key
payment_required402Spend limit reached
forbidden403Authenticated but missing the required scope
not_found404Resource not found or not accessible
conflict409Request conflicts with current state
invalid_state409Operation not allowed in the agent's current status
project_budgets_disabled409Project budgets are turned off for the organization
member_limits_disabled409Member limits are turned off for the budget
rate_limited429Rate limit exceeded — see the Retry-After header
internal_server_error500Unexpected server error
not_implemented501Feature unavailable on this instance

Artifact exports return their own, more specific codes, listed on that page.

Pagination​

List endpoints use cursor-based pagination. Pass limit to control page size and cursor to fetch the next page.

curl "https://<your-domain>.nomic.ai/api/v0/users?limit=25" \
-H "Authorization: Bearer $NOMIC_API_KEY"

The response includes:

FieldTypeDescription
dataarrayItems for the current page
nextCursorstring, null, or absentPass as cursor to fetch the next page. When there are no more results it is absent on users, audit logs, and API keys, and null everywhere else — stop paging when it is missing or null.
totalCountnumberTotal matching items across all pages. Returned by users, audit logs, API keys, projects, project members, budgets, and the user, workflow, project, and usage-event analytics; not by agents, workflows, or file search.

Stability​

All v0 endpoints are currently experimental. Request and response shapes may change between releases. We recommend testing against your integration when upgrading.

More resources​

Agents in depth: Agent API · Quickstart · SKILL.md (plain text)