Connect anything to PipeCrush.
A REST API for pushing leads in, syncing contacts, and wiring PipeCrush into the tools you already run — then triggering the real work: sending email, placing calls, sending texts, booking appointments, and sending broadcasts. Subscribe to signed webhooks to react the moment something changes. Authenticate with a single key — no OAuth flow to build, no SDK to install.
$ curl https://www.pipecrush.tech/api/v1/contacts \
-H "Authorization: Bearer pc_live_your_key_here"
{
"data": [
{
"id": "cnt_8fq2k1",
"email": "jane@acme.com",
"first_name": "Jane",
"last_name": "Doe",
"customer_id": "cus_4m9p2x"
}
],
"next_cursor": null
}How it works
Three steps between you and your first request.
Create a key
In PipeCrush, go to Settings → API Keys and click Create key. Name it after the integration it's for, then copy it — it's shown only once.
Call the API
Send the key as a bearer token on every request to https://www.pipecrush.tech/api/v1. JSON in, JSON out.
Build your integration
Push leads from your website, sync contacts on a schedule, or create a task when something changes in your own systems.
Six record types
Every record type follows the same shape: list, create, fetch, and update. There is no delete — the worst a runaway integration can do is create or edit.
Contacts
List, create, fetch, and update the people linked to a company record.
Leads
Capture new leads from your own forms, backend, or third-party tools.
Customers
Manage the company records your contacts and deals attach to.
Tasks
Create a follow-up automatically when something changes in your own systems.
Tickets
Open and track support tickets from outside PipeCrush.
Deals
Create and update deals against a pipeline and stage you choose.
Context around every record
The history, conversations, and numbers a person would open before acting — available to your integration or AI agent with one call each.
Notes
Read and add plain-text notes on a lead or a deal — the running history a rep would otherwise type by hand.
Ticket comments
Read the conversation on a support ticket, then reply publicly or leave an internal note the requester never sees.
Pipelines
Look up your deal pipelines and their stages so a deal can be created or moved with the right stage id.
Search
One query across leads, contacts, customers, deals, tickets, and tasks by name, email, company, or title.
Lead activity
A merged, newest-first timeline for a lead: emails sent and received, replies, opens, notes, calls, texts, and appointments.
Inbox threads
List and read email conversations from your connected inboxes as plain-text threads, with the linked lead or contact.
Call transcripts
Fetch the transcript of a completed call — text, language, confidence, and speaker count. Recordings are never exposed.
Sales metrics
Funnel totals and breakdowns — leads by status and source, deals by stage, win rate, pipeline value — for a daily, weekly, monthly, or custom period.
Actions that do real work
Beyond records, the API triggers the real-world work: send an email or a broadcast, enroll a lead, place a call, send a text, book or move an appointment, reply in a thread, or pause an outreach that should stop.
Send email
Send a one-off email immediately through a connected Gmail, Outlook, or MailDoso account.
Enroll a lead
Add a lead to a not-yet-launched sequence, or to an evergreen email campaign for an automatic send.
Place a call
Place an outbound call from a workspace number and track its status as it progresses.
Send a text
Send an SMS or MMS from a workspace number registered for 10DLC.
Book an appointment
Check open slots, book a meeting on a calendar, and cancel it later.
Reschedule an appointment
Move a booked appointment to a new time. Omit the end time to keep the original duration; an overlap returns a clear conflict.
Reply in a thread
Answer the latest inbound message in an inbox thread from a connected account, with correct threading headers.
Pause, resume, or stop
Pause or resume a sequence, stop or resume one lead in it, or unsubscribe a lead from an evergreen campaign.
Send a broadcast
Create a one-off email-marketing blast to up to ten thousand leads or customers, schedule or send it, and cancel it while it is still queued.
Action endpoints carry a daily cap per key on top of the per-minute rate limit — see rate limits below. A broadcast send is accepted with 202 and queued; it also requires a verified sending domain and a physical mailing address on your organization, as anti-spam law requires.
Webhooks
Stop polling. Register up to ten HTTPS endpoints per workspace (with an admin or manager key) and PipeCrush POSTs a signed JSON event the moment something happens — to Zapier, Make, n8n, your own backend, or an agent waiting for work.
- Signed
- Every delivery carries
X-PipeCrush-Signature: t=<unix>,v1=<hmac>— HMAC-SHA256 over<t>.<raw body>with the secret shown once when you create the endpoint. Reject anything older than five minutes to block replays. - Retried
- A non-2xx response or timeout retries after 1 minute, 5 minutes, 30 minutes, 2 hours, and 12 hours, then the delivery is marked failed. An endpoint that fails 100 deliveries in a row is disabled automatically; re-enable it with one PATCH.
- Debuggable
- Send a
pingwith the test endpoint, list every delivery attempt with its status code, and rotate the secret without recreating the endpoint.
Delivered to your endpointX-PipeCrush-Event: deal.stage_changed
X-PipeCrush-Delivery: 7c1e9a2b-4d0f-4e8a-9b3c-2f6d1a8e5c40
X-PipeCrush-Signature: t=1755631200,v1=3f9a...c2
{
"id": "evt_0d3c2f5e-...",
"type": "deal.stage_changed",
"created_at": "2026-08-19T19:20:00Z",
"api_version": "v1",
"data": { "id": "dl_4k2m9x", "title": "Acme renewal", "stage": "Negotiation", ... },
"previous": { "stage": "Proposal" }
}Push a lead in one request
Send a lead from your own website backend with a single request.
curl -X POST https://www.pipecrush.tech/api/v1/leads \
-H "Authorization: Bearer pc_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "email": "jane@example.com", "first_name": "Jane", "company": "Acme" }'Place a call in one request
Actions like this one accept an Idempotency-Key header, so a retried request replays the original result instead of placing the call twice.
curl -X POST https://www.pipecrush.tech/api/v1/calls \
-H "Authorization: Bearer pc_live_your_key_here" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: followup-call-jane-0812" \
-d '{ "phone_number_id": "pn_1a2b3c", "to": "+15551234567" }'Returns 202 immediately — poll GET /api/v1/calls/{id} for status as the call progresses.
Unknown response fields are always safe to ignore — we only ever add to v1. Breaking changes ship as a new version path, /api/v2.
Prefer codegen? Pull the full spec from GET /api/v1/openapi.json — an OpenAPI 3.1 document with stable, tool-shaped operation IDs, live now.
Built for production access
An API key is a real credential to real customer data. It's handled like one.
Scoped to your workspace
A key can only see what its creator can see. An admin's key sees the whole organization; anyone else's is scoped the same way their account is.
Revoke it anytime
Rotating credentials or lost a key? Revoke it from Settings and traffic stops immediately — no support ticket required.
Encrypted in transit
Every request runs over TLS. Keys travel in an Authorization header, never in a URL or a query string.
Server-side only
Treat an API key like a password: keep it in your backend. Never ship it in browser code, a mobile app, or a public repo.
Predictable rate limits
Every response includes an X-RateLimit-Remaining header. If you go over, you'll get a 429 with a Retry-After header telling you exactly how long to wait.
- Per minute
- 120
- Max page size
- 100
Daily action caps (per key; workspace-wide cap is 3× each, shared across keys)
- Emails
- 500
- Enrollments
- 1,000
- Calls
- 25
- Texts
- 200
- Appointments
- 50
- Broadcasts
- 5
| HTTP | Code | Meaning |
|---|---|---|
| 401 | invalid_api_key | Missing, malformed, or revoked key |
| 403 | permission_denied | Key lacks write access for this call |
| 404 | not_found | No such record in your workspace |
| 409 | conflict | Request is valid but the record's state refuses it |
| 422 | validation_failed | Bad input — see errors[] for fields |
| 429 | rate_limited | Rate limit or daily cap — retry after Retry-After seconds |
| 500 | internal_error | Our fault — safe to retry with backoff |
| 502 | provider_error | An upstream email/telephony provider failed the action |
Connect Claude with the MCP server
LiveConnect an AI agent directly to your PipeCrush data using the Model Context Protocol. Point Claude Code or another MCP client at the hosted endpoint and get one tool per operation on this API — records, context, actions, and webhooks — so you can ask about your pipeline in plain language, with optional read-only keys.
Connect Claude to PipeCrushFrequently asked questions
How do I get a PipeCrush API key?
Go to Settings → API Keys in PipeCrush (admin role required), click Create key, and name it after the integration you're building. Copy the key immediately — it's shown only once.
What can I do with the PipeCrush API today?
Six CRUD resources — contacts, leads, customers, tasks, tickets, and deals, each with list, create, fetch, and update. Context endpoints for notes, ticket comments, pipelines, cross-record search, lead activity timelines, inbox threads, call transcripts, and sales metrics. Action endpoints to send email, enroll a lead in a sequence or campaign, place a call, send a text, book or reschedule an appointment, reply in an inbox thread, pause or stop sequences and enrollments, and send email broadcasts. And outbound webhooks that POST a signed event to your endpoint when records change.
How is the API authenticated?
Send your API key as a bearer token on every request: Authorization: Bearer pc_live_your_key_here. There is no OAuth flow to build — one key, sent on every call.
What are the rate limits?
120 requests per minute per key. If you exceed it you'll get a 429 response with a Retry-After header telling you how long to wait.
Are there limits on emails, calls, texts, and appointments?
Yes — real-world actions carry a daily cap per key on top of the per-minute rate limit: 500 emails (inbox replies share this bucket), 1,000 sequence/campaign enrollments, 25 calls, 200 texts, 50 appointment bookings and reschedules combined, and 5 broadcast sends per day. A second, workspace-wide cap at three times each figure is shared across all your keys. Hitting either returns a 429 with a Retry-After header, same as the rate limit.
How do webhooks work?
An admin or manager key registers an HTTPS endpoint with POST /api/v1/webhooks and the events you want (or "*" for all). PipeCrush POSTs a JSON envelope for each event with an X-PipeCrush-Signature header — an HMAC-SHA256 of the timestamp and raw body using the secret returned once at creation. Failed deliveries retry five times over roughly 15 hours; an endpoint that fails 100 times in a row is disabled automatically. Use the test endpoint to send a ping and the deliveries endpoint to debug.
How do I avoid sending the same email, call, or text twice?
Every action endpoint (send email, reply in a thread, enroll, place call, send SMS, book or reschedule an appointment, create or send a broadcast) accepts an Idempotency-Key header. Retry the same request with the same key and body and you get back the original result instead of a duplicate action — essential for retries and AI-agent integrations.
Is there an OpenAPI spec or an MCP server?
A machine-readable OpenAPI 3.1 spec is live at GET /api/v1/openapi.json, with stable, tool-shaped operationIds for codegen and AI tooling. A remote MCP server at /api/mcp connects Claude and other AI agents directly to your data using the same API key — see the Connect Claude to PipeCrush page.
Ready to build?
Create a free PipeCrush account, then generate a key from Settings → API Keys.