partner

GET /v1/partner/customers/{externalId}/hosting-slots

How many sites each of your customer's hosting plans can still take.

All partner endpoints

All developer docs →

Authentication

Send an API key as a bearer token. The key must carry the partner.domains permission; a key without it is refused with 403, not 404.

This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.

Try it

Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.

curl -X GET https://api.zinndigital.com/v1/partner/customers/{externalId}/hosting-slots \
  -H "Authorization: Bearer zdk_live_…"

Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console

Details

One row per product line the customer holds a site-hosting plan on. max_sites, used_sites and free_sites come from the SAME function that refuses a site create when a plan is full, so a row with free_sites > 0 is one createPartnerSiteMove will accept. Every site that is not yet deleted counts as used — including one that failed to build and one being deleted. A customer on a free TRIAL has a row too (kind: trial): its subscription_id is the trial's id, which createPartnerSiteMove accepts as subscription_id. replaceable_sites lists the sites a move may import into instead of taking a free slot, each with replaceable_reason: temporary_host (still on a temporary address of ours) or empty_starter (the site the plan or trial was delivered with, on the customer's own domain, never imported into — the move re-checks that it is still empty and refuses with replace_site_not_empty if it is not). available_sites is free_sites plus the replaceable ones: the number to decide on whether a move can be offered. A plan that cannot take an imported site is listed with importable: false so you can say why. Requires partner.domains.

Parameters

NameTypeRequiredWhat it is
externalId (path)stringYesYOUR id for that customer — whatever your own system calls them. It is what makes linking idempotent, and it is scoped to your partner programme: another partner's id is a 404…

Response

NameTypeRequiredWhat it is
slotsPartnerHostingSlot[]Yes—

Errors this endpoint can return

401 · 403 · 404 · 429