Developers
Drive Blake from anywhere your code or your agent runs.
One workspace API key gets you the REST API and the MCP server. Same auth, same scopes, same rate limit. Copy a snippet, paste your key, and you're writing notes, moving stages, and dropping leads into the pipeline from whatever tool you live in.
How it works
REST for scripts
Plain JSON over HTTPS at /api/v1/*. Bearer auth, cursor pagination, idempotency keys on writes. Every endpoint is workspace-scoped by the key you send.
MCP for agents
Streaming-HTTP MCP at /api/mcp. Drops 19 typed tools into Claude Code, Claude Desktop, Cursor, and any MCP-aware client. Scopes you grant the key are the scopes the tools see.
Granular scopes
Pick exactly what an integration needs. notes:write for a meeting-summary agent; leads:write for a scraper. Revoke a key in one click; activity history stays attached to the key's label.
Tested isolation
Workspace boundary is the same Postgres-enforced boundary that the human UI runs on. Every API call resolves the workspace from the key, then queries with that filter. There is no “global” endpoint.
30-second setup
- 1. Create a key. In Blake, open Settings → API keys. Pick scopes; copy the raw key.
- 2. Pick a snippet below. Paste your key. The same key works against REST and MCP.
- 3. Call something.
/api/v1/mefor REST,tools/listfor MCP. If you get JSON back, you're wired up.
Snippets
Replace <your-key> with the raw key from Settings. The key is shown exactly once at creation, so capture it then.
Claude Code (one-liner)
Adds Blake to the local project's MCP servers.
claude mcp add --transport http blake \ https://app.blakecloses.com/api/mcp \ -H "Authorization: Bearer <your-key>"
.mcp.json (Claude Desktop, Cursor, MCP-aware clients)
Drop into your client's MCP config file.
{
"mcpServers": {
"blake": {
"type": "http",
"url": "https://app.blakecloses.com/api/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}REST (cURL)
Same key, plain HTTPS. Returns the workspace and key the bearer is bound to.
curl -H "Authorization: Bearer <your-key>" \ https://app.blakecloses.com/api/v1/me
What you can do
Nineteen MCP tools, mapped one-to-one to REST resources. Pick the scopes that match the columns you want to touch.
Notes
- add_note
- list_notes
- delete_note
Tasks
- create_task
- list_tasks
- get_task
- update_task
- complete_task
- delete_task
Documents
- upload_document
- list_documents
- delete_document
Pipeline
- list_opportunities
- get_opportunity
- move_stage
People
- upsert_contact
- upsert_company
Lead capture
- create_lead
- search
Reference
- OpenAPI 3.1 spec
- Full machine-readable schema for every REST endpoint, with per-operation scopes under
x-blake-scopes. app.blakecloses.com/api/v1/openapi.json - Rate limit
- 60 requests per minute per key by default. Each response carries
X-RateLimit-Limit,X-RateLimit-Remaining, andX-RateLimit-Reset. - Idempotency
- Send
Idempotency-Keyon any write. Same key + same body within 24 hours replays the cached response; same key + different body returns 409. - Errors
- Standard HTTP status plus a JSON envelope:
{ error: { code, message, details? } }. MCP returns the same content as anisErrortool result so the model sees it inline.
Build with it.
Request a workspace and you'll have a key to ship against inside the hour.