Kintra Portal API
The portal API is the surface behind the Kintra CMS, so its caller is a person signed in to the portal. Most requests carry an Auth0 bearer token in theAuthorization header and name the tenant with a {tenantId} segment in the path. Three sit outside that path: GET /user/me, which resolves the signed-in account before a tenant is known and still takes the token, and GET /info and GET /system/masterdata, which take no token either. It also carries operations the gateway surface does not expose, among them API key management, attributes, cohorts and customer attributes.
Kintra Gateway API
The gateway API is the surface your own backend calls. A request carriesX-Tenant-Key, which is the id of an API key you create in the CMS, together with X-Tenant-Timestamp and X-Tenant-Signature. There is no tenant in the path: the key resolves it.
Which one to call
Call the gateway API from your servers. It takes a credential your backend can hold and sign with, without a person signed in anywhere, and it is the contract Kintra supports for partner integrations. Reach for the portal API when you need something the gateway does not carry, such as issuing an API key in the first place, or when you are building against the portal session a person already has.Before you send anything
Export the base URL for this environment once, then every sample on the reference pages runs against it without editing:The playground cannot sign a gateway request
Each operation page carries an interactive playground, and on a gateway operation it cannot produce a working request on its own.X-Tenant-Signature is an HMAC over the request, and the playground has no way to compute one, so pressing Send with only your key returns 401.
To use the playground against a gateway operation, compute the timestamp and the signature yourself and paste them into the X-Tenant-Timestamp and X-Tenant-Signature fields before sending.
The simpler path is the samples. Every gateway operation page carries a cURL sample and a TypeScript sample that build the signing string, sign it and send the request in one piece. Both run as printed once you have exported KINTRA_API and replaced the placeholder key, secret and identifiers.

