OUTCOME · Create or advance
What changes
Creates the tenant and immutable revision 1 in DRAFT. It does not publish configuration, verify domains, configure DNS or TLS, allocate infrastructure, route traffic, or enable trading.
v2Tenant and brand management
/api/v2/admin/tenantsPURPOSE + BUSINESS CONTEXT
WHEN THIS CALL IS USEFUL
Use when an authorized platform administrator is ready to provision a tenant identity and its first complete configuration revision.
OUTCOME · Create or advance
Creates the tenant and immutable revision 1 in DRAFT. It does not publish configuration, verify domains, configure DNS or TLS, allocate infrastructure, route traffic, or enable trading.
WHY IT MATTERS
ISOLATION + AUTHORITY
Platform administrator, tenant, domain, certificate, brand, navigation, feature declaration, entitlement source, configuration revision, review, publication, and application-domain authority remain distinct. A tenant configuration or entitlement cannot enable frozen trading controls, matching, prediction execution, ingress, publisher activity, market status, traffic, wallet signing, or settlement authority.
BEFORE YOU CALL
WHAT TO DO NEXT
AGENT GUIDANCE
The exact deployed parameters, schemas, responses, security requirements, and Hybrid-Chain agent metadata are authoritative at this operation's production OpenAPI JSON Pointer. The readable tables below add integration guidance; the deployed OpenAPI controls if guidance and the machine contract ever differ.
Open the authoritative production contract ↗EXTENDED INTEGRATION GUIDANCE
Examples illustrate integration intent; the referenced OpenAPI operation and component schemas define the executable shape.
PARAMETERS
AuthorizationheaderRequiredBearer tokenCredential containing admin:tenants:write authority.EXAMPLEBearer hc_live_…
Idempotency-KeyheaderRequiredASCII string · 1–128Caller-generated stable key reused for retries of the same logical mutation.EXAMPLEpost-api-v2-admin-tenants-request-001
X-Request-IDheaderOptionalstringOptional caller correlation identifier. The gateway emits the effective value on the response.
Content-DigestheaderRequiredstringRFC 9530 sha-256 digest of the exact transmitted request-body bytes.
Signature-InputheaderRequiredstringRFC 9421 sig1 input covering @method, @path, content-digest, content-type, and idempotency-key, with created, expires, nonce, keyid, and alg=ed25519.
SignatureheaderRequiredstringRFC 9421 sig1 Ed25519 signature made by an active key registered to the bearer client.
change_summarybodyRequiredstring · 1–320Retained human-readable reason for provisioning the initial DRAFT revision.EXAMPLEProvision Northstar test tenant.
configurationbodyRequiredTenantConfigurationFull revision 1 configuration: identity, brand, complete domain and entitlement sets, and non-secret settings. This is not a patch.EXAMPLE[object Object]
tenant_uuidbodyOptional32-character lowercase hexadecimal identifier · nullableOptional caller-selected tenant identifier. Omit it to let Core allocate one.Explicit null acceptedEXAMPLEf8317aef81764e1f923037c1b76df8de
REQUEST
{
"change_summary": "example-change-summary",
"configuration": {
"brand": "example-brand",
"domains": [
{
"hostname": "example-hostname",
"is_primary": true,
"purpose": "example-purpose",
"redirect_hostname": "example-redirect-hostname"
}
],
"entitlements": [
{
"capability_code": "example-capability-code",
"policy": "example-policy",
"status": "example-status"
}
],
"identity": {
"description": "example-description",
"environment": "example-environment",
"lifecycle_status": "example-lifecycle-status",
"name": "example-name",
"owner_workspace_uuid": "01K4A7M4N8Y2Q6R9T3V5W7X1ZB",
"parent_tenant_uuid": "01K4A7M4N8Y2Q6R9T3V5W7X1ZB",
"region_code": "example-region-code",
"symbol": "example-symbol",
"tenant_key": "example-tenant-key"
},
"settings": "example-settings"
},
"tenant_uuid": "01K4A7M4N8Y2Q6R9T3V5W7X1ZB"
}RESPONSES
{
"administrators": [
"example-administrator"
],
"assignment": "example-assignment",
"assignment_uuid": "01K4A7M4N8Y2Q6R9T3V5W7X1ZB",
"change_summary": "example-change-summary",
"changes": [
"example-change"
],
"configuration": "example-configuration",
"configuration_hash": "example-configuration-hash",
"configuration_version": 1,
"event_type": "example-event-type",
"replayed": true,
"revision": 1,
"revision_uuid": "01K4A7M4N8Y2Q6R9T3V5W7X1ZB",
"status": "example-status",
"tenant_uuid": "01K4A7M4N8Y2Q6R9T3V5W7X1ZB"
}{
"code": "invalid_credentials",
"message": "the supplied Hybrid credential is invalid"
}invalid_credentials{
"code": "invalid_credentials",
"message": "the supplied Hybrid credential is invalid"
}invalid_credentials{
"code": "invalid_credentials",
"message": "the supplied Hybrid credential is invalid"
}invalid_credentials{
"code": "invalid_credentials",
"message": "the supplied Hybrid credential is invalid"
}invalid_credentials{
"code": "invalid_credentials",
"message": "the supplied Hybrid credential is invalid"
}invalid_credentials{
"code": "invalid_credentials",
"message": "the supplied Hybrid credential is invalid"
}invalid_credentialsOPERATIONAL NOTES
This route is implemented in canonical gateway source and appears in the production OpenAPI snapshot observed 2026-09-11T06:35:11.572Z. Authentication, tenant, feature, venue, and market policy still apply.
Verify the exact production OpenAPI operation ↗Return to the V2 directory ↗