Dealroom for developers
Make a contract in one call from your code or your AI agent, through the API or MCP, and read it in Dealroom.
Three steps
Get an API key
Sign in, open Settings, API keys and choose Create key. Copy the key: it starts with drk_ and is shown once.
Open Settings, API keysBuy credits
On the same page, choose Buy credits. Each contract made through the API or MCP spends one credit.
Make the call
Send the contract type and your details. The answer holds the contract and the links to read and download it.
The one call
With curl. Replace drk_YOUR_KEY with your key.
curl -X POST https://dealroom.todo.law/api/v1/agent/contracts \
-H "Authorization: Bearer drk_YOUR_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"contractType": "NDA",
"governingLaw": "CALIFORNIA",
"language": "en",
"party": {
"legalName": "Your Company, Inc.",
"signatoryName": "Alex Smith",
"signatoryTitle": "CEO",
"email": "alex@yourcompany.example"
},
"counterparty": {
"legalName": "Other Company, LLC"
},
"inline": "md"
}'Fields
contractType- Required. The code (NDA) or the address of the contract's guide (nda). See Contract types below.
party- Required. Your side: legalName (required), address, taxId, signatoryName, signatoryTitle, email.
counterparty- The other side, same fields. Left out, its block stays blank for them to complete.
governingLaw- CALIFORNIA, NEW_YORK, ENGLAND_WALES or SPAIN. Needed only when the contract is offered under more than one.
language- en or es, where the contract is offered in both. Default en.
terms- Facts the contract asks for, by input id, such as a city or an amount. Inputs left out take their default.
clauses- Optional clause choices: clause id to option code. Clauses left out take the standard option.
role- DPA and BAA only: the role you take, such as PROCESSOR or CONTROLLER.
inline- md, html or txt: the contract itself in the answer. Through MCP the default is md.
title- A name for the deal. Made from the parties when left out.
Answer
{
"dealId": "cm9abc123",
"dealRoomId": "cm9def456",
"status": "AGREED",
"contractType": "NDA",
"governingLaw": "CALIFORNIA",
"language": "en",
"paid": "credit",
"dealUrl": "https://dealroom.todo.law/deals/cm9def456",
"documents": {
"pdf": "https://dealroom.todo.law/api/v1/agent/deals/cm9abc123/document",
"docx": "https://dealroom.todo.law/api/v1/agent/deals/cm9abc123/document/docx",
"txt": "https://dealroom.todo.law/api/v1/agent/deals/cm9abc123/document/txt",
"md": "https://dealroom.todo.law/api/v1/agent/deals/cm9abc123/document/md",
"html": "https://dealroom.todo.law/api/v1/agent/deals/cm9abc123/document/html"
},
"guide": "https://dealroom.todo.law/contracts/nda",
"document": {
"format": "md",
"content": "# Mutual Non-Disclosure Agreement\n\n## Parties\n..."
}
}Good to know
- With no credit left, the answer is HTTP 402 and nothing is created.
- When you retry, send the same Idempotency-Key header: the retry returns the first answer and is not charged again.
- Every format of a paid contract can be downloaded again for free.
- The dealUrl link opens for the person whose e-mail owns the API key, once signed in.
Connect an AI agent through MCP
The MCP server address. Your key goes in the Authorization header.
https://dealroom.todo.law/api/v1/agent/mcpSetup by client
Claude Code
Run this in a terminal.
claude mcp add --transport http dealroom https://dealroom.todo.law/api/v1/agent/mcp \
--header "Authorization: Bearer drk_YOUR_KEY"Claude Desktop
Claude Desktop reaches remote servers through the mcp-remote bridge, which needs Node.js. Add this to claude_desktop_config.json and restart Claude Desktop.
{
"mcpServers": {
"dealroom": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://dealroom.todo.law/api/v1/agent/mcp",
"--header",
"Authorization:${DEALROOM_AUTH}"
],
"env": {
"DEALROOM_AUTH": "Bearer drk_YOUR_KEY"
}
}
}
}Cursor
Add this to ~/.cursor/mcp.json, or to .cursor/mcp.json in a project.
{
"mcpServers": {
"dealroom": {
"url": "https://dealroom.todo.law/api/v1/agent/mcp",
"headers": {
"Authorization": "Bearer drk_YOUR_KEY"
}
}
}
}VS Code
Add this to .vscode/mcp.json. VS Code asks for the key the first time and keeps it.
{
"inputs": [
{
"type": "promptString",
"id": "dealroom-key",
"description": "Dealroom API key",
"password": true
}
],
"servers": {
"dealroom": {
"type": "http",
"url": "https://dealroom.todo.law/api/v1/agent/mcp",
"headers": {
"Authorization": "Bearer ${input:dealroom-key}"
}
}
}
}Other clients
Most MCP clients accept this shape.
{
"mcpServers": {
"dealroom": {
"type": "http",
"url": "https://dealroom.todo.law/api/v1/agent/mcp",
"headers": {
"Authorization": "Bearer drk_YOUR_KEY"
}
}
}
}Tools
list_contract_types- Every contract type and the facts it needs. No key needed.
generate_contract- Make a contract in one call. Returns it as Markdown, with the links.
download_contract- One contract as Markdown, HTML, PDF, DOCX or TXT.
get_deal- A deal's clauses and status.
buy_credits- A payment link for a pack of credits, for a person to open.
get_credit_balance- Credits left on the account.
list_templates, get_template- Clauses and options of each contract.
create_playbook, initiate_negotiation, join_negotiation- Negotiate a contract between two agents.
REST API
Any language that can send HTTP requests works. All paths start with https://dealroom.todo.law.
| Method | Path | What it does | Key |
|---|---|---|---|
| GET | /api/v1/agent/contract-types | Contract types and the facts each needs | No |
| POST | /api/v1/agent/contracts | Make a contract in one call | Yes |
| GET | /api/v1/agent/deals/{dealId}/document/md | The contract as Markdown (also /html, /txt, /docx; PDF without suffix) | Yes |
| GET | /api/v1/agent/deals/{dealId} | A deal's clauses and status | Yes |
| GET | /api/v1/agent/credits/balance | Credits left | Yes |
| POST | /api/v1/agent/credits/checkout | A payment link for a pack of credits | Yes |
| GET | /api/v1/agent/templates/{code} | Clauses and options of one contract | Yes |
| POST | /api/v1/agent/negotiate | Start a negotiation between two agents | Yes |
| POST | /api/v1/agent/mcp | The MCP server | Yes |
Example
curl https://dealroom.todo.law/api/v1/agent/contract-types
curl -X POST https://dealroom.todo.law/api/v1/agent/contracts \
-H "Authorization: Bearer drk_YOUR_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"contractType": "NDA",
"governingLaw": "CALIFORNIA",
"language": "en",
"party": {
"legalName": "Your Company, Inc.",
"signatoryName": "Alex Smith",
"signatoryTitle": "CEO",
"email": "alex@yourcompany.example"
},
"counterparty": {
"legalName": "Other Company, LLC"
},
"inline": "md"
}'Contract types
Every contract the one call can make, grouped as in the contract guides. Send the code as contractType. Inputs marked with a default can be left out.
| Contract | Code | Governing laws | Languages | Required inputs |
|---|---|---|---|---|
| Commercial and technology | ||||
| Joint Venture Agreement | JOINT_VENTURE | California, England and Wales, Spain | English, Spanish |
|
| Master Services Agreement | MSA | California, England and Wales, Spain | English, Spanish | None |
| Non-Disclosure Agreement | NDA | California, England and Wales, Spain | English, Spanish |
|
| SaaS Subscription Agreement | SAAS | California, England and Wales, Spain | English, Spanish | None |
| Software Development Agreement | SOFTWARE_DEVELOPMENT | California, England and Wales, Spain | English, Spanish |
|
| Technology License Agreement | TECHNOLOGY_LICENSE | California, England and Wales, Spain | English, Spanish |
|
| Data protection and privacy | ||||
| Data Licensing Agreement | DATA_LICENSING | California, England and Wales, Spain | English, Spanish |
|
| Data Processing Agreement | DPA | California, England and Wales, Spain | English, Spanish |
|
| HIPAA Business Associate Agreement Negotiator | BAA_NEGOTIATOR | California | English | None |
| Privacy Notice | PRIVACY_NOTICE | California, England and Wales, Spain | English, Spanish |
|
| Team and services | ||||
| Advisory Agreement | ADVISORY | California, England and Wales, Spain | English, Spanish |
|
| Consulting Agreement | CONSULTING | California, England and Wales | English, Spanish |
|
| Employment Agreement | EMPLOYMENT | California, England and Wales | English, Spanish |
|
| Employment Contract (Contrato Laboral) | CONTRATO_LABORAL | Spain | Spanish, English |
|
| IP Assignment (Cesión de PI) | CESION_PI | Spain | Spanish, English | None |
| IP Assignment Agreement | IP_ASSIGNMENT | California, England and Wales, Spain | English, Spanish |
|
| Service Agreement (Contrato de Servicios) | CONTRATO_SERVICIOS | Spain | Spanish, English |
|
| Startups and investment | ||||
| Certificate of Incorporation (Delaware C-Corp) | DELAWARE_CERT_OF_INCORPORATION | California | English |
|
| Convertible Note | CONVERTIBLE_NOTE | California, England and Wales, Spain | English, Spanish |
|
| Equity Incentive Plan | EQUITY_INCENTIVE | California, England and Wales, Spain | English, Spanish |
|
| Founders Agreement | FOUNDERS | California, England and Wales, Spain | English, Spanish | None |
| SAFE Agreement | SAFE | California, England and Wales, Spain | English, Spanish |
|
| Seed Investment Agreement | SEED_INVESTMENT | California, England and Wales, Spain | English, Spanish |
|
| Shareholders Agreement | SHAREHOLDERS | California, England and Wales | English, Spanish |
|
| Shareholders' Agreement (Pacto de Socios) | PACTO_SOCIOS | Spain | Spanish, English | None |
| Term Sheet | TERM_SHEET | California, England and Wales, Spain | English, Spanish |
|
| Marketing and distribution | ||||
| Advertising Insertion Order | ADVERTISING_IO | California, England and Wales, Spain | English, Spanish |
|
| Affiliate / Referral Program Agreement | AFFILIATE_PROGRAM | California, England and Wales, Spain | English, Spanish |
|
| Influencer Marketing Agreement | INFLUENCER_MARKETING | California, England and Wales, Spain | English, Spanish |
|
| White-Label / Reseller Agreement | WHITE_LABEL_RESELLER | California, England and Wales, Spain | English, Spanish | None |
| Spanish company law | ||||
| Acta de Consejo de Administración | ACTA_CONSEJO_ADMINISTRACION | Spain | Spanish |
|
| Acta de Junta General | ACTA_JUNTA_GENERAL | Spain | Spanish |
|
| Asignación Individual de Phantom Shares | PHANTOM_SHARES_GRANT | Spain | Spanish |
|
| Marco de Phantom Shares | PHANTOM_SHARES_PLAN | Spain | Spanish |
|
| Property | ||||
| Assured Periodic Tenancy Agreement | RESIDENTIAL_TENANCY_GB | England and Wales | English |
|
| California Residential Lease Agreement | RESIDENTIAL_TENANCY_US_CA | California | English |
|
| Contrato de Arrendamiento de Vivienda | RESIDENTIAL_TENANCY_ES | Spain | Spanish |
|
| Other | ||||
| Template Agreement | TEMPLATE | California, England and Wales, Spain | English | None |
Formats
One contract, five formats, all from the same text. A paid contract can be downloaded in every format at no extra cost.
| Format | Media type | Best for | How to get it |
|---|---|---|---|
| Markdown | text/markdown | AI agents and tools that read text | inline: "md", or /document/md |
| HTML | text/html | Web pages, previews and screen readers; one file, no outside assets | inline: "html", or /document/html |
| Text | text/plain | Plain text systems | inline: "txt", or /document/txt |
application/pdf | Reading and printing | /document | |
| DOCX | Word document | Editing in a word processor | /document/docx |
Price
Drafting and negotiating are free. Each contract costs $29, the same on the website, through the API or through MCP.
Agents pay with prepaid credits, one credit per contract. Credits are sold in packs of 10: $217.50 a pack.
For machines
- This page as Markdown
/developers.md - Contract types and the facts each one needs (JSON)
/api/v1/agent/contract-types - MCP tools with their REST endpoints (JSON)
/api/v1/agent/mcp - Agent card
/.well-known/agent.json - Summary for AI models
/llms.txt