Getting started
Meshi Partner API
One REST contract for events, attendees, enrichment and matching — with the IDs from your own system, not ours.
Welcome. If you run events and you want the people at them to meet the right people, this is the API that does it.
You send us an event and the people coming to it, keyed by whatever IDs your own system already uses. We enrich those people, work out who is worth whose time, and hand back matches you can put in front of them. Nothing here asks you to adopt our identifiers or to keep a second copy of your roster in sync.
Most integrations are working end to end in an afternoon. The sequence is short, every long-running step is a run you poll, and every error tells you what to do about it.
Two ways in
Build with the Partner API
A bearer key, six calls, and the IDs you already have. Start here if you are writing the integration.
Connect an AI agent
Give Claude, ChatGPT or Codex your own network, goals and event context over MCP. No code.
What you can build
- Create and manage events and sessions you own.
- Import attendees using the IDs from your own system.
- Enrich those attendees, and review the ones we are unsure about.
- Run matching, and page through the results with scores.
- Poll every long-running step to a terminal status.
- Handle errors, rate limits, idempotent retries and correlation IDs the same way everywhere.
The shape of an integration
Where to send it
Every path in these docs is relative to one base URL. GET /auth means
GET "$MESHI_BASE/auth".
Production
export MESHI_BASE="https://api.meshi.io/api/v0/partner"
export MESHI_KEY="<MESHI_PARTNER_PRODUCTION_KEY>" Use this for live partner traffic.
Staging
export MESHI_BASE="https://api.staging.meshi.io/api/v0/partner"
export MESHI_KEY="<MESHI_PARTNER_STAGING_KEY>" Use this while building and validating an integration.
The older /v0/partner base is still served as a transition alias. Use
/api/v0/partner for anything new.
How you authenticate
One org-scoped service-account key, on every request:
Authorization: Bearer <MESHI_PARTNER_KEY>
We issue keys, show them once, and store only a hash. Use a separate key for staging and production — a staging key will not work against production, and that is deliberate.
Whose IDs you use
Yours. You supply event_id, session_id and attendee_id, and we map them to
our records. Roster and match responses also carry an entity_id so you can
address someone who was already in Meshi before you imported anything; that
handle belongs to one event and is accepted only by the side-update, match, pair
and exclusion operations that document it.
What happens asynchronously
Imports, enrichment and matching return a run straight away. Poll
GET /runs/:run_id until it reaches succeeded, partial or failed.
You can send a webhook_url and we will echo it back on the run, but v0 does
not deliver webhooks. Poll.
Where to go next
Your first request
A key, an environment, and one call that proves both are right. Get started.
The canonical flow
Create the event, import the people, enrich, match, poll. Walk the flow.
Identity and IDs
What you own, what we own, and what happens when they disagree. The identity model.
Errors and limits
Retries, idempotency keys, rate limits, and what each failure means. Errors and limits.
When you know the flow, the endpoint reference has every route, the OpenAPI contract is machine-readable, and the changelog is where contract changes land.