REST API v1 for DealArena — drive your whole desk through /api/v1, or
connect Claude through the DealArena MCP server (below).
Authentication
Every endpoint requires a bearer token minted in Settings › API Access
(da_live_...). Tokens are scoped; each operation lists its required scope
(x-required-scope). GET /me works with any valid token.
Envelope
Success: {"data": ..., "meta": {...}?} — list endpoints carry
meta.limit / meta.offset / meta.total.
Error: {"error": {"code": "<snake_code>", "message": "<human sentence>"}}.
The nine codes in #/components/schemas/Error are the only error shapes
the API emits.
Rate limits & quotas
Burst: 60 requests / 60s rolling per token (list endpoints weigh
ceil(limit/10)), reported via X-RateLimit-*. Daily: a durable per-token
quota (default 5,000/day Pro, 20,000/day Enterprise) that rolls at midnight
UTC, reported via X-RateLimit-Daily-*. Exceeding either returns 429
(rate_limited vs quota_exceeded) with Retry-After.
Tier
The token owner's tier is resolved on every request. Below Pro → 403
tier_required. Credit-metered endpoints
(/outreach/draft, /agents/ask) charge the same credits as the UI.
MCP Server
dealarena-mcp is an npm package that runs a local MCP (Model Context
Protocol) server over this API, exposing 19 workflow tools to Claude
Desktop, Claude Code, and any MCP client. Local stdio transport only:
your token stays on your machine, and tier, scopes, and revocation are
enforced server-side on every call.
Requirements
- Node.js ≥ 18
- A Pro account
- An API token (
da_live_...) minted in Settings › API Access
Connect
Claude Code:
claude mcp add dealarena -- npx dealarena-mcp
Claude Desktop, in claude_desktop_config.json:
{
"mcpServers": {
"dealarena": {
"command": "npx",
"args": ["dealarena-mcp"],
"env": { "DEALARENA_API_KEY": "da_live_..." }
}
}
}
The server registers under the name dealarena.
Environment variables
| Variable |
Required |
Default |
Notes |
DEALARENA_API_KEY |
yes |
(none) |
Your da_live_... token from Settings › API Access |
DEALARENA_API_URL |
no |
https://app.dealarena.io |
Non-localhost values must be HTTPS |
Tools
| Tool |
What it does |
Scope |
Notes |
search_prospects |
Search prospects by query or stage |
prospects:read |
Read-only; up to 25 rows |
get_prospect |
Fetch one prospect |
prospects:read |
Read-only |
create_prospect |
Create a prospect |
prospects:write |
Name plus optional company, title, email, phone, LinkedIn, notes |
create_prospects_bulk |
Bulk-create prospects |
prospects:write |
Up to 100 per call; per-row errors reported |
update_prospect |
Update prospect fields |
prospects:write |
Idempotent |
lookup_company |
Find a company by name or id |
companies:read |
Read-only |
log_activity |
Log a call, meeting, note, or email |
activities:write |
Awards XP |
move_deal_stage |
Move a deal through the pipeline |
deals:write |
Awards XP; shows in the UI immediately |
list_my_tasks |
List your tasks |
tasks:read |
Read-only; filters: status, due |
create_task |
Create a task |
tasks:write |
Optional due date and prospect link |
complete_task |
Complete a task |
tasks:write |
Idempotent |
trash_prospect |
Move a prospect to Trash |
prospects:write |
Recoverable: Trash only, no hard delete |
draft_outreach |
Draft an email, LinkedIn message, or call opener |
outreach:write |
Costs 1 AI credit |
list_sequences |
List your sequences |
sequences:read |
Read-only |
enroll_in_sequence |
Enroll a prospect in a sequence |
sequences:write |
Caution: fires real outbound touches |
get_pipeline_summary |
Per-stage counts, TCV, deltas |
analytics:read |
Read-only; period: 7d, 30d, or 90d |
get_my_stats |
Identity, tier, credits, XP, streak |
any token |
Read-only |
get_sauce_signals |
Sauce feed: market, news, or leads |
signals:read |
Read-only |
ask_agent |
Ask the BDM Legion agent |
agents:invoke |
Costs 5 credits; agent: legion only |
Behavior
Requests time out at 30s (60s for draft_outreach and ask_agent).
One automatic retry on 429, honoring Retry-After. List tools cap at
25 rows. Errors surface this API's nine-code dialect (above) with fixed,
human-readable messages. For reporting-only setups, mint a Read-only
token in Settings › API Access.