Everything Meetzy does, from your code.
244 endpoints — the same ones the Meetzy app and Claude use. Contacts, companies, deals, sequences, email, workflows, LinkedIn, WhatsApp, the mailbox, the Finder, analytics, ERP documents and data sources.
https://meetzy.me/api/v1Only /api/v1 is the API. The other /api/… addresses you may see in the browser are internal to the Meetzy app: they are not documented, not supported, and change without notice. Everything you can do in Meetzy is available under /api/v1.
Quick start
- Create a key in Meetzy › Sales › Integrations & API › API keys. Copy it — it is shown once.
- Call the API with the key as a Bearer token.
GET /metells you who the key belongs to. - Build: create a contact, open a deal, enroll them in a sequence, subscribe to
deal.won.
curl https://meetzy.me/api/v1/me \ -H "Authorization: Bearer $MEETZY_API_KEY"
const api = (path, body) => fetch(`https://meetzy.me/api/v1/${path}`, { method: body ? "POST" : "GET", headers: { Authorization: `Bearer ${process.env.MEETZY_API_KEY}`, "Content-Type": "application/json" }, body: body && JSON.stringify(body), }).then(r => r.json()); const contact = await api("contacts", { email: "camille@payfit.com", first_name: "Camille", company: "Payfit" }); const deal = await api("deals", { name: "Payfit — rollout", amount: 12000, primary_lead_id: contact.id });
Authentication
Every request carries an API key: Authorization: Bearer mz_live_…. A key belongs to the teammate who created it and acts as them — it sees their workspace and what it creates is signed with their name. Keys are revoked in the same screen; a revoked key answers 401 at once. The only calls that need no key are GET /catalog and the inbound workflow trigger, whose URL is its own secret.
| Scope | Allows |
|---|---|
read | Read CRM data — every GET |
write | Create & update records — POST, PUT and PATCH |
delete | Delete records — DELETE (not given by default) |
webhooks | Manage webhooks — /webhooks and /hooks |
mcp | Use as MCP token (Codex, Cursor, …) — the same key works as a static MCP token |
New keys get read, write, webhooks and mcp; tick delete when you need it. Give each integration its own key, with only what it needs.
Requests and responses
- JSON in, JSON out: send
Content-Type: application/json. Field names aresnake_case. - Ids are UUIDs. Dates are ISO 8601 (
2026-10-07,2026-10-07T09:30:00+02:00); times are returned in UTC. - Amounts are numbers in the record’s
currency(no cents conversion). PATCHchanges only the fields you send. Fields Meetzy does not know are ignored.- A
POSTthat creates answers 201; other successes 200. Deletes answer{ "deleted": true }. - Creating something that exists by its natural key — a contact by email, a company by domain — returns the existing record instead of a duplicate.
Errors
Errors have a status code and a JSON body with a readable error, and sometimes details (for example { "code": "duplicate" }).
HTTP/1.1 409 Conflict { "error": "create property failed: this record already exists ((user_from, object_type, key)=(acme, contact, shoe_size))", "details": { "code": "duplicate" } }
| Status | Meaning | When |
|---|---|---|
400 | Bad request | A field is missing or wrong — the message says which. Includes values of the wrong type. |
401 | Unauthorized | No key, a revoked key, or a key from a removed account. |
402 | Payment required | Not enough credits (Prospect Finder searches and reveals, AI actions — nothing is charged), or no seat left on the plan. |
403 | Forbidden | The key lacks the scope (API key is missing the "write" scope), the feature is not enabled for the workspace, or the call is reserved to the app (API keys, MCP connections, push keys). |
404 | Not found | The id does not exist in your workspace, or the route does not exist. |
405 | Method not allowed | The path exists with another method. |
409 | Conflict | The record already exists, the state does not allow it (e.g. deleting a non-empty pipeline), an account is not connected (mailbox_not_connected), or an Idempotency-Key request is still running. |
413 | Too large | More than 5,000 records in one batch — split it. |
429 | Too many requests | Over 120 requests a minute for this key (wait Retry-After seconds), or over the plan’s quota (details.code: api_quota_exceeded). |
500 / 502 | Server / provider error | Something failed on our side or at a provider (Gmail, LinkedIn, your ERP). Safe to retry with an Idempotency-Key. |
Pagination, limits and retries
Pagination
Lists take limit and offset and return total. Most cap limit at 1,000 (documents at 500). For incremental syncs, filter with updated_since (contacts, documents) and page until you have total.
Rate limit
120 requests a minute per key, and a quota per workspace from its plan: 1,000 a month on Free, 1,000 a day on Starter, 10,000 on Growth, 50,000 on Scale (+50,000 with Automation). Every answer carries X-RateLimit-Limit, X-RateLimit-Remaining, X-Quota-Limit, X-Quota-Remaining and X-Quota-Period; a 429 carries Retry-After (seconds). Use the bulk endpoints for volume: /contacts/upsert per record, /tasks/bulk, /products/bulk, /companies/bulk, /sync/ingest (5,000 records a call).
Idempotency
Send Idempotency-Key: <uuid> on any write to retry it safely after a timeout: the first answer is replayed for 48 hours with Idempotent-Replayed: true. A failed request can be retried with the same key.
CORS
The API answers browsers (Access-Control-Allow-Origin: *) — but never ship a key in front-end code. Call it from your server.
Webhooks and events
Instead of polling, subscribe to events: contact.created, contact.replied, deal.won, quote.accepted, task.overdue, contact.website_visit and 51 more. Deliveries are signed (HMAC-SHA256) and retried for about 8 hours. See Webhooks & events.
Tools
OpenAPI 3.1
Import /api/v1/openapi.json in Postman, Insomnia, n8n or a client generator — the same descriptions and examples as these pages.
Claude, Codex, Cursor
The same capabilities as MCP tools: https://meetzy.me/api/mcp/mcp, signed in with OAuth or a key with the mcp scope.
Zapier, Make, n8n
REST hooks for triggers, the API for actions, and inbound URLs to start workflows from any tool.
The reference
Contacts20
People in your CRM: create, search, update, their full 360° view, notes, emails and everything that happened with them.
Companies13
Accounts: create, search, roll-ups of contacts and deals, the full account view, bulk changes and the sales each company makes in your ERP.
Deals & pipelines14
Pipelines and their stages, deals with contacts and line items, won / lost, forecasting fields.
Tasks & activities8
The daily queue of calls, emails and to-dos, and the timeline of everything logged on contacts, deals and companies.
Products & quotes12
The product catalog (by hand, or kept in sync from any system in bulk) and quotes your customers accept online.
Sales cycles (CRM board)9
The board leads move on: sales cycles and their stages, lead stats and funnel, follow-ups due, moving leads in bulk and turning them into deals.
Sequences8
Multichannel cadences — emails, LinkedIn steps, calls and tasks on a schedule — and the people enrolled in them.
Email campaigns29
Templates with merge tags and AI lines, one-off and scheduled campaigns, recurring mailings to lists, previews, tests and real open / click / reply tracking.
Workflows14
Event-driven automations with conditions, branches, waits, goals and 25+ actions — build, activate, preview, run on demand, or trigger from any tool.
LinkedIn & WhatsApp23
Read conversations, see who needs a reply or a follow-up, check LinkedIn connections, send invitations and messages — from the accounts connected in Meetzy.
Mailbox20
Read, search, send, reply, forward, file and delete emails in the user’s own inbox — and the full email thread with any contact.
Prospect Finder4
Search 270M+ people and companies, re-run saved searches, then enrich the right prospects and add them to the CRM. Uses your workspace credits.
Website visitors6
Track your sites, see who visits (known contacts and companies), their journeys and intent, and push them into the CRM.
Reports & analytics10
Pipeline report and forecast, goals, sales analytics from the ERP (by customer, salesperson, country, brand, category, product), receivables, cockpit figures and credits.
ERP documents2
Quotes, orders, invoices and credit notes synced from your ERP, shop, files or the API — search them, read their lines, find what is past due.
Data sources12
Bring companies, contacts, deals, products, quotes, orders, invoices and credit notes in from any ERP, shop or CRM — through a connector, by pushing them yourself, or as rows from a file.
Webhooks & events11
Get called when something happens — deal won, contact replied, quote accepted, task overdue… — with signed, retried deliveries; plus REST hooks for Zapier, n8n and Make, and the event log.
Workspace & team28
Who the key belongs to, the team and invitations, hand-overs, email signatures, company profile, widget boards, saved views, custom properties, search and engine health.
Reference1
Every event type, workflow trigger, condition field, operator, action, sequence step, merge tag, stage and period — the values the API accepts.