API Documentation
Programmatic access to all PrimeDeck tools. Works with Zapier, custom scripts, MCP, or anything that speaks HTTP.
Getting started
- Go to your Account pageand create an API key. You'll see the plaintext once — save it.
- Include the key as a Bearer token on every request.
- Each call uses one operation from your plan or a pay-per-use credit.
Authentication
All endpoints require a valid API key in the Authorization header:
Authorization: Bearer bsk_your_api_key_here
Keys start with bsk_. Revoke any key at any time from your Account page.
Rate limits & quotas
- Burst limit: 10 requests per minute per user
- Monthly quota: defined by your plan (Free 3, Pro 50, Business 1,000)
- PPU fallback: when quota is exhausted, pay-per-use credits ($0.99 each) are consumed automatically
- 429 Too Many Requests: wait and retry with exponential backoff
- 403 Forbidden: at limit with no credits — upgrade or buy credits from Account
Endpoints
/api/v1/contractsAnalyze a contract (lease, NDA, employment agreement, etc)
Request body:
{ "text": "...full contract text...", "fileName": "lease.txt", "save": true }Returns: { "analysis": { ... } } · Set "save": false to skip dashboard persistence (analysis-only mode).
/api/v1/policiesAnalyze an insurance policy
Request body:
{ "text": "...policy text...", "fileName": "home-policy.txt", "save": true }Returns: { "analysis": { ... } } · Set "save": false to skip dashboard persistence (analysis-only mode).
/api/v1/medical-billsFind errors and overcharges in a medical bill
Request body:
{ "text": "...bill text...", "fileName": "hospital-bill.txt", "save": true }Returns: { "analysis": { ... } } · Set "save": false to skip dashboard persistence (analysis-only mode).
/api/v1/cover-lettersGenerate a targeted cover letter
Request body:
{
"jobPosting": "...full job description...",
"resume": "...your resume...",
"tone": "professional",
"title": "Senior PM — Stripe",
"notes": "emphasize my startup experience",
"companyUrl": "https://stripe.com",
"save": true
}Returns: { "letter": { ... } } · Set "save": false to skip dashboard persistence (analysis-only mode).
/api/v1/proposalsGenerate a client proposal from a brief
Request body:
{ "brief": "...project description...", "title": "Website redesign — Acme Corp", "save": true }Returns: { "proposal": { ... } } · Set "save": false to skip dashboard persistence (analysis-only mode).
/api/v1/policy-compareCompare 2-5 insurance policies side-by-side
Request body:
{
"title": "Auto policy shopping",
"policies": [
{ "label": "Geico", "text": "..." },
{ "label": "Progressive", "text": "..." }
],
"save": true
}Returns: { "comparison": { ... } } · Set "save": false to skip dashboard persistence (analysis-only mode).
/api/v1/raise-requestsDraft a professional raise-request letter
Request body:
{
"currentRole": "Senior PM at Acme",
"accomplishments": "Shipped X feature that drove $2M ARR; led 4 PMs...",
"proposedIncrease": "$15,000",
"tone": "professional",
"save": true
}Returns: { "letter": { ... } } · Set "save": false to skip dashboard persistence (analysis-only mode).
/api/v1/demand-lettersDraft a formal demand letter (pre-small-claims)
Request body:
{
"senderName": "Jane Doe",
"recipientName": "Acme Corp",
"disputeDescription": "Unpaid invoice #1234 dated 2026-02-01 for $8,500...",
"amountClaimed": "$8,500",
"tone": "firm",
"desiredDeadlineDays": 21,
"save": true
}Returns: { "letter": { ... } } · Set "save": false to skip dashboard persistence (analysis-only mode).
/api/v1/cease-desist-lettersDraft a formal cease-and-desist letter
Request body:
{
"senderName": "Jane Doe",
"recipientName": "Acme Corp",
"violationType": "trademark-infringement",
"violationDescription": "Acme is using our registered mark X on...",
"tone": "standard",
"save": true
}Returns: { "letter": { ... } } · Set "save": false to skip dashboard persistence (analysis-only mode).
/api/v1/medical-bill-appealsDraft a denial appeal, billing-error, or balance-billing dispute letter
Request body:
{
"patientName": "Jane Doe",
"appealKind": "denial-appeal",
"billDescription": "Anthem denied claim #X for emergency CT on 2026-01-15...",
"insurer": "Anthem",
"amountInDispute": "$3,200",
"save": true
}Returns: { "letter": { ... } } · Set "save": false to skip dashboard persistence (analysis-only mode).
/api/v1/resignation-lettersDraft a professional resignation letter
Request body:
{
"senderName": "Jane Doe",
"companyName": "Acme Corp",
"currentRole": "Senior Product Manager",
"lastDay": "Friday, May 2, 2026",
"tone": "gracious",
"save": true
}Returns: { "letter": { ... } } · Set "save": false to skip dashboard persistence (analysis-only mode).
/api/v1/interview-prepsBuild a tailored interview prep packet from a job posting + resume
Request body:
{
"company": "Stripe",
"role": "Senior Product Manager",
"jobPosting": "...full posting...",
"resume": "...full resume...",
"format": "behavioral",
"save": true
}Returns: { "prep": { ... } } · Set "save": false to skip dashboard persistence (analysis-only mode).
/api/v1/tax-notice-responsesDraft a response to an IRS / state / local tax notice
Request body:
{
"senderName": "Jane Doe",
"agency": "irs",
"noticeNumber": "CP2000",
"taxYear": "2024",
"noticeSummary": "IRS claims $X unreported income from 1099-K...",
"requestKind": "dispute",
"amountInDispute": "$2,847.50",
"save": true
}Returns: { "letter": { ... } } · Set "save": false to skip dashboard persistence (analysis-only mode).
/api/v1/debt-validation-lettersDraft an FDCPA debt validation letter
Request body:
{
"senderName": "Jane Doe",
"collectorName": "Midland Credit Management",
"collectorContactSummary": "Letter dated 2026-04-01 claiming $4,200 from a 2018 credit card account...",
"contactDate": "04/01/2026",
"save": true
}Returns: { "letter": { ... } } · Set "save": false to skip dashboard persistence (analysis-only mode).
Example: analyze a contract
curl https://www.primedeck.ai/api/v1/contracts \
-H "Authorization: Bearer bsk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"text": "THIS CONSULTING AGREEMENT is entered into...",
"fileName": "consulting.txt"
}'Zapier
Use Zapier's built-in Webhooks by Zapier app:
- Trigger: whatever starts your workflow (new email, new row, etc)
- Action: Webhooks by Zapier → POST
- URL:
https://www.primedeck.ai/api/v1/contracts(or any endpoint above) - Headers:
Authorization: Bearer bsk_... - Payload type: JSON
- Data:
{ "text": "..." }
MCP (Claude Desktop / Claude Code)
PrimeDeck ships an official MCP server that lets Claude invoke any tool directly from your desktop or editor.
npx @primedeck/mcp-server
Configure with PRIMEDECK_API_KEY env var. See the MCP server README for Claude Desktop / Claude Code setup.