Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: Tenzro Labs Platform Keys API
version: 1.0.0
description: Browse the curated catalogue; manage credits, billing, keys, plans and rentals; place and pay orders; run Datasets, Fieldwork, Voices and Forecasts. Chat, embeddings, images, speech and the model list keep the OpenAI-compatible /v1 paths.
servers:
- url: https://api.tenzro.xyz
security:
- apiKey: []
tags:
- name: Keys
paths:
/keys/introspect:
post:
tags:
- Keys
summary: Introspect a key (services only)
description: 'For Tenzro Labs services that accept Platform keys (Wallets). The caller proves itself with an ES256 assertion signed by a key in its published JWKS; only services listed by the Platform may ask. The answer names only the scopes under the caller''s prefix. An unknown, revoked or malformed key, an agent that is no longer active, or a key with none of the caller''s scopes is `{ "active": false }`.'
operationId: postKeysIntrospect
x-tenzro-scope: service
security:
- serviceAssertion: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- token
properties:
token:
type: string
example:
token: tzl_…
application/x-www-form-urlencoded:
schema:
type: object
required:
- token
properties:
token:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required:
- active
properties:
active:
type: boolean
sub:
type: string
description: The Tenzro Labs account.
key_id:
type: string
scope:
type: string
description: Space-separated, only the caller's scopes.
agent_id:
type:
- string
- 'null'
description: Set when the key was issued to an agent.
example:
active: true
sub: acct_…
key_id: key_…
scope: wallets:read wallets:write
agent_id: null
'401':
description: The assertion failed
content:
application/json:
example:
error: invalid_client
error_description: The client assertion did not verify.
'429':
description: Too many requests from this service; see Retry-After
components:
securitySchemes:
apiKey:
type: http
scheme: bearer
description: A Tenzro Labs API key (tzl_…).
ingestKey:
type: http
scheme: bearer
description: 'A Fieldwork ingest key (tzi_…): bound to one project and the origins listed on it, able only to run the participant flow. Safe in a browser. Create it with POST /fieldwork/projects/{id}/ingest-keys.'
serviceAssertion:
type: http
scheme: bearer
bearerFormat: JWT
description: 'A Tenzro Labs service''s ES256 assertion: header kid = the RFC 7638 thumbprint of a key in the service''s published JWKS; iss = sub = the service; aud = this endpoint; exp at most 60 s after iat; jti used once.'