Developers
Your contracts,
as an API and an agent toolbox.
Everything version90 knows about your contracts — the searchable archive, extracted terms, negotiation status, AI findings — is available over a REST API and a remote MCP server for AI agents. One hard rule, enforced structurally: programmatic access can read, ingest and analyze, but never edits documents.
Five-minute quickstart
1. Mint a token
In the app: Settings → API tokens → Create token (org admins only).
The secret — v90_… — is shown once. Tokens
are long-lived, act with your role, and are revocable instantly.
curl https://app.version90.com/api/v1/archive?q=renewal \ -H "Authorization: Bearer $V90_TOKEN"
claude mcp add version90 https://app.version90.com/api/v1/mcp \ --transport http \ --header "Authorization: Bearer $V90_TOKEN"
Then ask the agent: "Which of our agreements auto-renew in the next 90 days, and
what are their notice windows?" — it will use search_archive
and answer from your extracted terms.
REST API
Token auth, the endpoint map, errors, and the interactive OpenAPI reference.
Read →
MCP server
One URL, six tools, stateless. Setup for Claude, Cursor, and anything MCP-capable.
Read →
Archive recipes
The flagship: bulk import, renewal calendars, warehouse export, agent Q&A.
Read →
Ground rules
- Auth:
Authorization: Bearer v90_…on every request. Clerk remains the identity provider for humans; tokens are the machine credential and act as their creator (same role, same limits). - No document editing, ever: endpoints that modify document content return
403 api_token_forbiddenfor tokens. The MCP server simply has no editing tool. - Usage: API and MCP actions meter exactly like in-app actions (AI credits, contracts, archive capacity) and appear on the Usage page attributed to the token's creator.
- Tenancy: a token sees exactly one organization. There is no cross-org anything.