meetergomeetergo Help

Partner API: create and manage customer workspaces

Create customer workspaces from an industry template, set them up with a workspace token, and manage users, billing and commission from your own system.

Updated on September 30, 2026

The Partner API connects your own system to meetergo. Create a customer workspace when an order is paid, start it from an industry template, set it up through the Platform API, and manage its users. Each call follows the same rules as the Partner portal.

Before you begin

  • Your Partner company has approved commercial terms, and you accepted the current Partner Terms.
  • You are an admin of your Partner company.
  • For Partner pays meetergo, the Partner billing setup is complete. See Create and set up a customer workspace.

Create an API key

  1. Open Partner portal > API.
  2. Select Create API key and give the key a name, for example "Production".
  3. Copy the key. It starts with mgp_ and is shown only once.

Store the key as a secret on your server. Never put it in a website or app: anyone with the key can create workspaces billed to you.

The key acts as the Partner admin who created it. It stops working when you revoke it, or when that person is no longer an admin of your Partner company. You can have two active keys, so you can switch to a new key before revoking the old one.

Authentication

Send the key as a bearer token on every request:

Authorization: Bearer mgp_...

Base URL: https://api.meetergo.com

All endpoints are in the OpenAPI spec at api.meetergo.com/spec/v2 under the tag Partner API.

Endpoints

MethodPathPurpose
POST/v4/partner/customersCreate a customer workspace
GET/v4/partner/customersList your customers
GET/v4/partner/customers/{companyId}Read one customer
PATCH/v4/partner/customers/{companyId}Rename a customer or change who contacts them
POST/v4/partner/customers/{companyId}/tokenGet a workspace token for the Platform API
GET/v4/partner/customers/{companyId}/usersList the customer's users
POST/v4/partner/customers/{companyId}/usersInvite users
DELETE/v4/partner/customers/{companyId}/users/{userId}Remove a user or cancel an invitation
GET/v4/partner/billing/summarySeats, estimated monthly net and discount
GET/v4/partner/commissionsRefer commission entries
GET/v4/partner/commissions/summaryHeld, available and paid commission

Create a customer

POST /v4/partner/customers

curl -X POST https://api.meetergo.com/v4/partner/customers \
  -H "Authorization: Bearer $MEETERGO_PARTNER_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "requestId": "6f1c2a8e-3b4d-4e5f-8a9b-0c1d2e3f4a5b",
    "companyName": "Friseur Muster",
    "adminFirstName": "Max",
    "adminLastName": "Muster",
    "adminEmail": "max@friseur-muster.de",
    "language": "de",
    "timezone": "Europe/Berlin",
    "billingResponsibility": "partner",
    "suiteTier": "suite",
    "communicationOwner": "partner",
    "contactConsentConfirmed": true,
    "templateKey": "beauty"
  }'
FieldRequiredMeaning
requestIdYesA UUID you create once per order. Makes retries safe.
companyNameYesName of the customer's company.
adminFirstName, adminLastNameYesName of the customer's first admin.
adminEmailYesReceives the invite. Must not have a meetergo account yet.
languageYesLanguage for emails and the booking page, for example de.
timezoneYesFor example Europe/Berlin.
billingResponsibilityYespartner: on your monthly Partner invoice. customer: the customer pays meetergo.
suiteTierFor partnerlight, suite or premium.
communicationOwnerYespartner or meetergo: who contacts the customer about their account.
contactConsentConfirmedYesMust be true. Confirms the customer agreed to be set up and contacted.
templateKeyNoStart from an industry template. See below.
partnerRetailPricePerSeatEurNoYour own price per seat, for your overview only, for example "19.00".
extraEmailsNoMore team members to invite, up to 100.

The response contains:

FieldMeaning
customerThe new customer, including companyId and bookingPageUrl.
setupStatusready, or attention_required when something needs a look.
setupAttentionWhat needs a look, for example booking_page_setup_failed.
adminInviteDeliverysent or failed.
additionalInvitesResult for extraEmails.
template{ key, version, meetingTypes: [{ id, name, slug }] }, or null without a template.

The customer's admin gets an invite email and sets their own password. The booking page takes bookings right away, before they accept.

Industry templates

With templateKey, the workspace starts with that industry's meeting types, weekly opening hours, email reminders and, where useful, a routing form. Template content is in German.

templateKeyFor
beautyBeauty and hair salons
craftsmenTrades and craft businesses
insuranceInsurance brokers
consultingConsultants

Without templateKey, the workspace gets one starter booking page. The template is applied once at creation. Change it afterwards with a workspace token.

List and read customers

curl "https://api.meetergo.com/v4/partner/customers?limit=50&offset=0" \
  -H "Authorization: Bearer $MEETERGO_PARTNER_KEY"

curl https://api.meetergo.com/v4/partner/customers/{companyId} \
  -H "Authorization: Bearer $MEETERGO_PARTNER_KEY"

The list returns your active customers, newest first. limit is 1 to 100. hasMore tells you whether another page exists.

Update a customer

Send companyName, communicationOwner, or both. The response is the updated customer.

curl -X PATCH https://api.meetergo.com/v4/partner/customers/{companyId} \
  -H "Authorization: Bearer $MEETERGO_PARTNER_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "companyName": "Friseur Muster GmbH", "communicationOwner": "meetergo" }'

Set up a workspace with a workspace token

A workspace token lets your system configure one customer workspace through the normal Platform API: meeting types, availability, booking page, routing forms and more.

Get a token

curl -X POST https://api.meetergo.com/v4/partner/customers/{companyId}/token \
  -H "Authorization: Bearer $MEETERGO_PARTNER_KEY"
{
  "token": "mgw_...",
  "tokenType": "Bearer",
  "companyId": "3f2b...",
  "expiresAt": "2026-10-01T10:00:00.000Z",
  "expiresIn": 3600
}

Use it

Send the token instead of your mgp_ key:

curl https://api.meetergo.com/v4/meeting-type \
  -H "Authorization: Bearer $MEETERGO_WORKSPACE_TOKEN"
  • It works for exactly this one customer workspace.
  • It acts with your Partner admin access in that workspace, like Open workspace in the portal.
  • Do not send the x-meetergo-api-user-id header. Requests with it are rejected.

Refresh it

The token is valid for 1 hour. To continue, request a new one with your mgp_ key. There is no refresh token.

What a workspace token cannot do

These return 403:

  • create API keys or personal access tokens in the customer workspace
  • anything that messages the customer's contacts: WhatsApp, SMS, email sends, newsletters and Mira outbound messages
  • internal dashboard endpoints (/rpc)

The customer stays in control

Every request with a workspace token is recorded. The customer's admins see Your partner (name) has API access under Settings > Developer, with your recent API changes.

They can revoke this access and restore it any time. While it is revoked, getting a token and every existing token return 403 with a message that the customer revoked Partner API access. Dashboard access through Open workspace is managed separately. See Partner access, handover, and revocation.

Manage customer users

The same rules apply as in Manage users. See Manage customer users and billable seats.

# List users
curl https://api.meetergo.com/v4/partner/customers/{companyId}/users \
  -H "Authorization: Bearer $MEETERGO_PARTNER_KEY"

# Invite 1 to 100 users
curl -X POST https://api.meetergo.com/v4/partner/customers/{companyId}/users \
  -H "Authorization: Bearer $MEETERGO_PARTNER_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "emails": ["anna@friseur-muster.de"] }'

# Remove a user or cancel a pending invitation
curl -X DELETE https://api.meetergo.com/v4/partner/customers/{companyId}/users/{userId} \
  -H "Authorization: Bearer $MEETERGO_PARTNER_KEY"
  • The list returns companyName and items. Each item has id, name, email, type, isAdmin, status (active or pending) and billable.
  • Invites return processedEmails, unprocessedEmails and deliveryFailedEmails. Invited users get the normal meetergo invite email. You never set passwords.
  • To retry a failed delivery, send the same address again.
  • Removing returns removedUserId and removedStatus.

Billing and commission

EndpointReturns
GET /v4/partner/billing/summaryThe numbers from the portal's Billing tab: seats, estimated monthly net and discount.
GET /v4/partner/commissions?limit=&offset=Your Refer commission ledger entries.
GET /v4/partner/commissions/summaryHeld, available and paid totals in cents, EUR.

See Refer commission ledger and payouts.

Embed the booking page

Put the returned bookingPageUrl on the customer's website:

<div
  style="min-width:330px"
  class="meetergo-iframe"
  data-src="{bookingPageUrl}"
></div>
<script src="https://cdn.meetergo.com/v4/integration.js"></script>

Errors

Errors return JSON with statusCode and message.

StatusMeaning
400The body is invalid. message is a list of field: problem.
401The key or token is missing, wrong, expired or revoked, or the key's creator is no longer an admin.
403Not allowed: the customer revoked Partner API access, the workspace token cannot use this route, your Partner permissions do not allow it, your Partner access is inactive, or the current Partner Terms are not accepted yet.
404The customer does not exist or is not managed by you.
409Conflict: the requestId was used with a different body, the email already has an account, or Partner billing is not set up.
429Too many requests. Wait a moment and retry with the same requestId.

Revoke a key

Open Partner portal > API and select Revoke next to the key. Requests with it fail immediately, and so do workspace tokens created with it. Customers you already created are not affected.

Was this article helpful?

Let us know if this article answered your questions.