Developers

API reference. Read vendors' subprocessors, changes and your team's decisions as JSON.

The API is read-only. Public endpoints return what the vendor directory publishes and need no key. Workspace endpoints return your own vendors, changes and decisions, and need a key from Settings → API & MCP, on Pro, Team, and Business. The same data answers your AI assistant through our MCP server.

Every path starts with https://clausetrail.com/v1. Send a key as Authorization: Bearer clausetrail_sk_…. A key you send must be valid, even on a public endpoint: a wrong or revoked key is refused, never treated as no key.

Lists come in pages: total, count, offset, has_more and, when there is more, next_offset. Times are ISO 8601 in UTC; vendors and companies are named by slug. Without a key you get 30 requests a minute, with one 120.

Public endpoints

Search the catalog

GET /v1/vendors

Public. No key needed; a key raises the rate limit.

The vendors whose documents ClauseTrail tracks, alphabetically.

Returns vendors: slug, name, domain, category, website, when its list was last extracted and changed, and its directory page.

Parameter Meaning
q A name or domain fragment, e.g. stripe or atlassian.com.
category A category name, e.g. Payments (any case).
limit How many to return, 25 unless you ask (at most 100).
offset How many to skip. Pass back next_offset from the previous page.
curl \ "https://clausetrail.com/v1/vendors?q=stripe"

A vendor's subprocessors

GET /v1/vendors/{slug}/subprocessors

Public. No key needed; a key raises the rate limit.

The vendor's latest subprocessor list, in its own order and wording.

Returns subprocessors: name, purpose, locations and data categories as the vendor lists them, and the company behind the name once we've reviewed it, with its AI-provider flag. list: the source URL and when we read it.

Parameter Meaning
limit How many to return, 100 unless you ask (at most 100).
offset How many to skip. Pass back next_offset from the previous page.
curl \ "https://clausetrail.com/v1/vendors/stripe/subprocessors"

A vendor's changes

GET /v1/vendors/{slug}/changes

Public. No key needed; a key raises the rate limit.

The changes published for the vendor, the latest first.

Returns changes: id, type, label, severity, summary, detected_at, published_at, the objection deadline (and whether it's estimated), the document and the company it names.

Parameter Meaning
since Only changes published at or after this date or time (ISO 8601, e.g. 2026-09-01 or 2026-09-01T08:00:00Z).
limit How many to return, 50 unless you ask (at most 100).
offset How many to skip. Pass back next_offset from the previous page.
curl \ "https://clausetrail.com/v1/vendors/stripe/changes?since=2026-09-01"

Who uses a company

GET /v1/entities/{slug}/vendors

Public. No key needed; a key raises the rate limit.

The vendors whose latest list names a company (a subprocessor), and those whose lists no longer do.

Returns company, then vendors and former_vendors: each vendor with the purpose, locations and data categories its list gives the company, and when the company first and last appeared on it.

Parameter Meaning
limit How many to return, 100 unless you ask (at most 100).
offset How many to skip. Pass back next_offset from the previous page.
curl \ "https://clausetrail.com/v1/entities/amazon-web-services/vendors"

Your workspace

Your vendors

GET /v1/workspace/vendors

Your workspace's key, on Pro and up.

The vendors your workspace tracks, alphabetically.

Returns vendors: the catalog fields, plus tracked_since, changes_to_review, the documents we watch, and the AI terms, DPA terms and certifications we've read (null when the documents don't say).

Parameter Meaning
limit How many to return, 50 unless you ask (at most 100).
offset How many to skip. Pass back next_offset from the previous page.
curl -H "Authorization: Bearer YOUR_KEY" \ "https://clausetrail.com/v1/workspace/vendors"

Your changes and decisions

GET /v1/workspace/changes

Your workspace's key, on Pro and up.

The changes published for the vendors your workspace tracks, the latest first, with your team's decisions.

Returns changes: as for a vendor's changes, plus status (to_review, reviewed, accepted, objected or before_tracking), the current decision (status, note, decided_by, decided_at) and the change's page in ClauseTrail.

Parameter Meaning
status One of to_review, reviewed, accepted, objected.
since Only changes published at or after this date or time (ISO 8601, e.g. 2026-09-01 or 2026-09-01T08:00:00Z).
limit How many to return, 50 unless you ask (at most 100).
offset How many to skip. Pass back next_offset from the previous page.
curl -H "Authorization: Bearer YOUR_KEY" \ "https://clausetrail.com/v1/workspace/changes?status=to_review"

Your vendors' shared subprocessors

GET /v1/workspace/dependencies

Your workspace's key, on Team and up.

The companies your tracked vendors name on their latest lists, the most shared first.

Returns dependencies: each company, the vendors of yours that name it, where it processes data, and whether it's an AI provider.

Parameter Meaning
min_vendors Only companies at least this many of your vendors name (default 2; 1 lists them all).
ai_only true for AI providers only.
curl -H "Authorization: Bearer YOUR_KEY" \ "https://clausetrail.com/v1/workspace/dependencies?min_vendors=3"

Errors

Every error has the same body, { "error": { "code": "…", "message": "…" } }, and a code you can branch on.

Status Code When
400 bad_request A parameter is missing or malformed, e.g. since or status.
401 invalid_api_key The key is wrong or has been revoked.
401 missing_api_key A workspace endpoint was called without a key.
403 plan_required The workspace's plan doesn't include this: the API needs Pro and up, the dependency graph Team and up.
403 workspace_key_required A workspace endpoint was called with a key that belongs to no workspace.
404 not_found No vendor or company by that slug (or, for a company, no published page).
429 rate_limited Too many requests: wait for the Retry-After seconds.

Questions, or an endpoint you need? Write to [email protected].