tenzro-xyz Identity & agents API
The Identity & agents API from tenzro-xyz — 6 operation(s) for identity & agents.
The Identity & agents API from tenzro-xyz — 6 operation(s) for identity & agents.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/tenzro-xyz:tenzro-xyz-identity-agents-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Tenzro Labs Platform Identity & agents 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: Identity & agents
paths:
/identity:
get:
tags:
- Identity & agents
summary: Get your Tenzro identity
description: 'Your did:tenzro:human identity and wallet, rooted in your passkeys. manage_url is where passkeys and devices are managed.
Needs a key with the `read` permission.'
operationId: getIdentity
x-tenzro-scope: read
responses:
'200':
description: OK
content:
application/json:
example:
state: ready
did: did:tenzro:human:e0b27720-3043-84d5-9b66-49eba92b1a8d
wallet_address: '0xd8aa2ca0a3b56be2b58d6c883c7b3ed31d749428'
error: null
passkeys: 2
can_send: true
manage_url: https://accounts.tenzro.xyz/wallet?return_to=…
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/agents:
get:
tags:
- Identity & agents
summary: List agents
description: 'Each agent''s status and the limits its owner approved. An outstanding approval is collected first, so a list read after the owner approves shows the result.
Needs a key with the `read` permission.'
operationId: getAgents
x-tenzro-scope: read
responses:
'200':
description: OK
content:
application/json:
example:
data:
- id: agt_Zp3kQ9x1RmW4sT
name: research-bot
status: active
approval: null
capabilities:
- inference
limits:
max_transaction_tnzo: null
max_daily_tnzo: null
daily_limit_credits: 20000
total_limit_credits: 500000
expires_in_days: 90
proposed: null
did: did:tenzro:machine:e0b27720-3043-84d5-9b66-49eba92b1a8d:7c1d…
wallet_address: 0x4b1f…
serving:
nodes: 3
operators: 2
error: null
created_at: '2026-09-26T09:05:00.000Z'
approved_at: '2026-09-26T09:12:00.000Z'
activated_at: '2026-09-26T09:12:00.000Z'
expires_at: '2026-12-25T09:12:00.000Z'
revoked_at: null
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
tags:
- Identity & agents
summary: Create an agent
description: 'Proposes an agent under your identity and returns approve_url. The account owner opens it, may adjust the settings, and approves with their passkey on the account site; a passkey cannot be pressed from code, so relay the link to a person. The agent becomes active once the approval is collected: reading the agent collects it. The settings the owner approved are the ones that apply. Refused with no_serving_nodes while the network has none.
Needs a key with the `manage` permission.'
operationId: postAgents
x-tenzro-scope: manage
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- name
properties:
name:
type: string
description: 1 to 64 lowercase letters, digits, dots, dashes or underscores.
capabilities:
type: array
items:
enum:
- inference
- payments
default:
- inference
max_transaction_tnzo:
type: string
description: Network cap on any one payment the agent makes, in TNZO (e.g. "1.5").
max_daily_tnzo:
type: string
description: Network cap on what the agent pays per day, in TNZO.
daily_limit_credits:
type: number
description: Tenzro Labs credits this agent may spend per UTC day.
total_limit_credits:
type: number
description: Tenzro Labs credits this agent may spend in total.
expires_in_days:
type: integer
minimum: 1
maximum: 3650
description: The delegation ends after this many days.
example:
name: research-bot
capabilities:
- inference
daily_limit_credits: 20000
total_limit_credits: 500000
expires_in_days: 90
responses:
'200':
description: OK
content:
application/json:
example:
approve_url: https://accounts.tenzro.xyz/agents/approve/apr_3xQk…
agent:
id: agt_Zp3kQ9x1RmW4sT
name: research-bot
status: awaiting_approval
approval:
kind: create
state: pending
approve_url: https://accounts.tenzro.xyz/agents/approve/apr_3xQk…
capabilities:
- inference
limits: null
proposed:
agent_name: research-bot
capabilities:
- inference
max_transaction_tnzo: ''
max_daily_tnzo: ''
daily_limit_credits: 20000
total_limit_credits: 500000
expires_in_days: 90
did: null
wallet_address: null
serving:
nodes: 3
operators: 2
error: null
created_at: '2026-09-26T09:05:00.000Z'
approved_at: null
activated_at: null
expires_at: null
revoked_at: null
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/agents/{id}:
get:
tags:
- Identity & agents
summary: Get an agent
description: 'Includes what it has spent today and in total. Collects an outstanding approval first.
Needs a key with the `read` permission.'
operationId: getAgentsById
x-tenzro-scope: read
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
example:
id: agt_Zp3kQ9x1RmW4sT
name: research-bot
status: active
approval: null
capabilities:
- inference
limits:
max_transaction_tnzo: null
max_daily_tnzo: null
daily_limit_credits: 20000
total_limit_credits: 500000
expires_in_days: 90
proposed: null
did: did:tenzro:machine:e0b27720-3043-84d5-9b66-49eba92b1a8d:7c1d…
wallet_address: 0x4b1f…
serving:
nodes: 3
operators: 2
error: null
created_at: '2026-09-26T09:05:00.000Z'
approved_at: '2026-09-26T09:12:00.000Z'
activated_at: '2026-09-26T09:12:00.000Z'
expires_at: '2026-12-25T09:12:00.000Z'
revoked_at: null
spend:
today_credits: 0
total_credits: 0
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/agents/{id}/settings:
post:
tags:
- Identity & agents
summary: Change an agent's limits
description: 'Proposes new settings for an active agent, starting from the ones its owner approved last; fields you leave out stay as they are. Nothing changes until the owner approves at approve_url with their passkey. The agent''s name cannot be changed.
Needs a key with the `manage` permission.'
operationId: postAgentsByIdSettings
x-tenzro-scope: manage
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
capabilities:
type: array
items:
enum:
- inference
- payments
default:
- inference
max_transaction_tnzo:
type: string
description: Network cap on any one payment the agent makes, in TNZO (e.g. "1.5").
max_daily_tnzo:
type: string
description: Network cap on what the agent pays per day, in TNZO.
daily_limit_credits:
type: number
description: Tenzro Labs credits this agent may spend per UTC day.
total_limit_credits:
type: number
description: Tenzro Labs credits this agent may spend in total.
expires_in_days:
type: integer
minimum: 1
maximum: 3650
description: The delegation ends after this many days.
example:
daily_limit_credits: 50000
responses:
'200':
description: OK
content:
application/json:
example:
approve_url: https://accounts.tenzro.xyz/agents/approve/apr_3xQk…
agent:
id: agt_Zp3kQ9x1RmW4sT
name: research-bot
status: active
approval:
kind: update
state: pending
approve_url: https://accounts.tenzro.xyz/agents/approve/apr_3xQk…
capabilities:
- inference
limits:
max_transaction_tnzo: null
max_daily_tnzo: null
daily_limit_credits: 20000
total_limit_credits: 500000
expires_in_days: 90
proposed: null
did: did:tenzro:machine:e0b27720-3043-84d5-9b66-49eba92b1a8d:7c1d…
wallet_address: 0x4b1f…
serving:
nodes: 3
operators: 2
error: null
created_at: '2026-09-26T09:05:00.000Z'
approved_at: '2026-09-26T09:12:00.000Z'
activated_at: '2026-09-26T09:12:00.000Z'
expires_at: '2026-12-25T09:12:00.000Z'
revoked_at: null
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/agents/{id}/keys:
post:
tags:
- Identity & agents
summary: Create an API key for an agent
description: 'An inference key that identifies this agent. Its usage counts against the limits its owner approved. Active agents only. The secret is returned once.
Needs a key with the `manage` permission.'
operationId: postAgentsByIdKeys
x-tenzro-scope: manage
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
machine_id:
type: string
description: Pin the key to one machine.
permissions:
type: array
items:
enum:
- inference
- read
- datasets:read
- datasets:write
- fieldwork:read
- fieldwork:write
- voices:speak
- voices:batch
- voices:train
- voices:admin
- vision:analyse
- vision:generate
- vision:batch
- wallets:read
- wallets:write
default:
- inference
description: 'What the agent''s key may do: inference and any service scopes. Never manage.'
example:
name: research-bot prod
permissions:
- inference
- datasets:read
responses:
'200':
description: OK
content:
application/json:
example:
id: key_Zb81Qm0sP4aT
name: ci
prefix: tzl_3kQ9aZ1x
permissions:
- inference
scope: null
subscription_id: null
rental_id: null
created_at: '2026-09-26T08:00:00.000Z'
last_used_at: null
revoked_at: null
agent_id: agt_Zp3kQ9x1RmW4sT
secret: tzl_…
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/agents/{id}/revoke:
post:
tags:
- Identity & agents
summary: Revoke an agent
description: 'Proposes revoking the agent. Once the owner approves at approve_url with their passkey, its identity is revoked on the network and every Platform API key it holds stops working.
Needs a key with the `manage` permission.'
operationId: postAgentsByIdRevoke
x-tenzro-scope: manage
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
example:
approve_url: https://accounts.tenzro.xyz/agents/approve/apr_3xQk…
agent:
id: agt_Zp3kQ9x1RmW4sT
name: research-bot
status: active
approval:
kind: revoke
state: pending
approve_url: https://accounts.tenzro.xyz/agents/approve/apr_3xQk…
capabilities:
- inference
limits:
max_transaction_tnzo: null
max_daily_tnzo: null
daily_limit_credits: 20000
total_limit_credits: 500000
expires_in_days: 90
proposed: null
did: did:tenzro:machine:e0b27720-3043-84d5-9b66-49eba92b1a8d:7c1d…
wallet_address: 0x4b1f…
serving:
nodes: 3
operators: 2
error: null
created_at: '2026-09-26T09:05:00.000Z'
approved_at: '2026-09-26T09:12:00.000Z'
activated_at: '2026-09-26T09:12:00.000Z'
expires_at: '2026-12-25T09:12:00.000Z'
revoked_at: null
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
Error:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
scope:
type: string
description: 'On a 403: the permission the key lacks.'
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.'