Verify an API key and see its tenant and scopes
const url = 'https://example.com/api/v1/integration/whoami';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/v1/integration/whoamiAnswers with the tenant the key resolves to and the scopes it was granted. Use it to check that a key works and carries the access an integration needs, before wiring up the feeds. It requires no scope of its own.
Authorizations
Заголовок раздела «Authorizations»Responses
Заголовок раздела «Responses»OK
What an API key resolves to.
object
The tenant every call made with this key reads and writes.
The key’s id, which the tenant’s administrator sees in their key list.
The scopes the key was granted, for example orders:read or trips:read. A call to an endpoint outside these scopes is refused with 403.
Examplegenerated
{ "tenantId": "example", "keyId": "example", "scopes": [ "example" ]}Validation failed
The body of a 400 response, served as application/problem+json. It follows the RFC 9457 problem-details shape: type, title, status and detail are the standard members, and errors is an extension that lists the offending fields.
object
A stable, machine-readable code for the error. Branch on this rather than on the wording of the title or the detail.
A short label for the kind of failure, such as Validation failed.
The HTTP status code of the response, which for this body is 400.
A human-readable explanation of this particular failure, or null.
The fields the request was rejected over, one entry each. Omitted entirely when the failure carries no field-level context, so a 400 can arrive without this member.
One field the request was rejected over.
object
The name of the offending field, spelled as the request body spells it.
A stable, machine-readable code for this field’s failure.
The rejected value. Always present, and null when it was not safe to echo back.
A human-readable explanation of what is wrong with the field.
Set only by the dispatcher application’s manual planning operations — integration endpoints never set it. True when every problem in this refusal is a tenant-policy refusal the operator may override by re-sending the same request with force: true. Omitted otherwise.
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "errors": [ { "field": "example", "code": "example", "value": "example", "message": "example" } ], "overridable": true}Missing or invalid credentials
Authenticated, but the role or scope does not allow this
Not found
RFC 9457 problem body returned on every failure. type carries a stable machine-readable error code (see docs/api/error-codes.yaml), title a short human summary, status the HTTP status, detail the specific message.
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}Conflict
RFC 9457 problem body returned on every failure. type carries a stable machine-readable error code (see docs/api/error-codes.yaml), title a short human summary, status the HTTP status, detail the specific message.
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}Rate limit exceeded; retry after the Retry-After header
RFC 9457 problem body returned on every failure. type carries a stable machine-readable error code (see docs/api/error-codes.yaml), title a short human summary, status the HTTP status, detail the specific message.
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}Unexpected error
RFC 9457 problem body returned on every failure. type carries a stable machine-readable error code (see docs/api/error-codes.yaml), title a short human summary, status the HTTP status, detail the specific message.
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}