Archive API docs

MCP overview

Archive ships a Model Context Protocol server so an AI agent can work with your data directly — searching content, reading creator profiles, and managing saved views without you writing a GraphQL client.

It is the same product surface as /api/v2, in a different shape. Every tool wraps exactly one public GraphQL root field and executes it verbatim: the same resolvers, the same validation, the same workspace scoping, and the same weighted rate-limit charge. There is no second data path and no second permission model to reason about.

Endpoint
POST https://app.archive.com/api/v2/mcp

The transport is Streamable HTTP carrying JSON-RPC 2.0 request bodies. The endpoint is stateless — it issues no session id, so every request must carry its own credentials.

The tool surface

There are 32 read tools and 31 write tools. The mapping to GraphQL is exhaustive in both directions: every public query and mutation has exactly one tool, and every tool points at exactly one public field. If you can do it on /api/v2, you can do it over MCP — and each operation’s reference page links to the tool that wraps it.

Names follow the GraphQL field in camelCase, except where an agent reads the intent better: items is exposed as searchItems and creators as searchCreators. Everything else is get* for a read and the mutation’s own name for a write.

Authentication

The endpoint accepts two credential types, tried in that order:

CredentialHow you get itWrite access
Bearer tokenThe same API token you use for /api/v2, provisioned in the Integration tabYes — parity with /api/v2, where any valid token may call every public mutation
OAuth 2.1Your MCP client registers with Archive; the person authorizes it in-appOnly if they granted the optional write scope at consent time

Archive is its own authorization server. Tokens are opaque, Archive-issued, and validated in process — there is no JWT to decode and no introspection endpoint to call. The server publishes RFC 9728 protected-resource metadata and RFC 8414 authorization-server metadata, and supports RFC 7591 Dynamic Client Registration, so a compliant client can discover and register on its own. See Connect a client.

An unauthenticated initialize, tools/list, or tools/call returns HTTP 401 with a WWW-Authenticate challenge — the signal MCP clients use to begin the OAuth flow.

Workspaces

A credential is not bound to one workspace. The server resolves a workspace per tool call, in this order:

  1. The workspaceId argument on the call — a workspace UUID, or the numeric id shown in the app.
  2. The WORKSPACE-ID header.
  3. The credential’s sole workspace, when it can reach exactly one.

Call getWorkspaces first. It is the one tool that needs no workspace, and it returns every workspace the credential can reach.

A valid credential that cannot resolve the requested workspace does not get a 401. It gets HTTP 200 with isError: true and a uniform message — identical for an unknown UUID, a workspace you are not a member of, and one outside your grant, so the response is not an enumeration oracle.

Rate limits

MCP calls spend from the same weighted per-workspace bucket as /api/v2, at the same prices: a read tool costs what its root field costs, and every write charges the flat mutation cost. Everything in the Rate limits guide applies here unchanged.

What is not listed here