API key
Every public API request must include your TenantCore API key in theAuthorization header:
Example request
Resource ownership boundary
A valid API key does not turn TenantCore into a generic Microsoft 365, DNS-provider, or sending-tool proxy. Every operation is resolved through TenantCore first:API key → TenantCore account UUID → TenantCore-owned tenant → TenantCore-owned domain/mailbox/integration → provider action
A tenant must already be connected to your TenantCore account as BYOT or exist as a TenantCore-managed tenant before resource-management endpoints can act on it. Supplying an arbitrary Microsoft tenant GUID, domain, mailbox, or provider resource is never enough to authorize an operation.
GET /v1/tenants/connect-url is the controlled onboarding exception: it creates a signed TenantCore consent flow for your authenticated account so a new BYOT tenant can become an owned TenantCore resource. It does not accept an arbitrary tenant GUID to operate against.
Write-request idempotency
EveryPOST, PUT, PATCH, and DELETE request under /v1 must include an Idempotency-Key header:
409 idempotency_key_conflict.
Request IDs
Every/v1 response includes X-Request-ID. You may also send your own safe correlation value in X-Request-ID; TenantCore will return it when valid. Include this value when contacting support about an API request.
Rate limits
TenantCore applies both account-level distributed rate limits and process-level concurrency protection. Current defaults are:
Successful authenticated responses include the applicable
X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, and X-RateLimit-Bucket headers. A limit breach returns 429 with Retry-After.
Key prefixes
New production keys use thetc_live_ prefix. Grandfathered trial keys may use tc_trial_. Treat the entire key as opaque and do not authorize or infer permissions from its prefix.
Plan scoping
Public API access is included with TenantCore Complete. Grandfathered legacy API entitlements may remain usable during the controlled legacy-product migration. Entitlement and tenant-capacity checks run on every authenticated request. API access never bypasses the tenant-slot limits assigned to the TenantCore account.Rotating your key
You can rotate your key from the API page in the TenantCore app. The old key is invalidated immediately. The new key is shown once, so copy it before leaving or refreshing the page and update every integration that used the old key. There is no/v1 endpoint that lets an API key rotate itself.