tenzro-xyz Catalogue API
The Catalogue API from tenzro-xyz — 10 operation(s) for catalogue.
The Catalogue API from tenzro-xyz — 10 operation(s) for catalogue.
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-catalogue-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 Catalogue 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: Catalogue
paths:
/models:
get:
tags:
- Catalogue
summary: List models
description: 'Every model in the catalogue with its pricing in Tenzro Labs credits (1 credit = 0.001 TNZO) and the machines that serve it. Charging starts when a payment rail is configured; until then usage is recorded at list price and charged nothing.
No key needed.'
operationId: getModels
x-tenzro-scope: public
security: []
responses:
'200':
description: OK
content:
application/json:
example:
data:
- id: qwen3.5-4b
name: Qwen 3.5 4B
family: Qwen
description: Small, fast language model for chat, extraction and tool calls.
modality: text
context_length: 131072
pricing:
input_credits_per_mtok: 0
output_credits_per_mtok: 0
credits_per_request: 0
available: true
machines:
- tenzro-partner-cluster
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/models/{id}:
get:
tags:
- Catalogue
summary: Get a model
description: 'One model, plus the current route order: the machines a request would go to, best first.
No key needed.'
operationId: getModelsById
x-tenzro-scope: public
security: []
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
example:
id: qwen3.5-4b
name: Qwen 3.5 4B
family: Qwen
description: Small, fast language model for chat, extraction and tool calls.
modality: text
context_length: 131072
pricing:
input_credits_per_mtok: 0
output_credits_per_mtok: 0
credits_per_request: 0
available: true
machines:
- tenzro-partner-cluster
routes:
- machine_id: tenzro-partner-cluster
health: online
region: Europe
score: 120
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/machines:
get:
tags:
- Catalogue
summary: List machines
description: 'The machines Tenzro Labs runs, with hardware, live health, and what each offers. rent and subscribe are null where a machine offers neither.
No key needed.'
operationId: getMachines
x-tenzro-scope: public
security: []
parameters:
- name: service
in: query
required: false
description: Only machines offering this.
schema:
type: string
enum:
- serverless
- rent
- subscribe
- name: region
in: query
required: false
description: Exact region name, e.g. Europe.
schema:
type: string
- name: gpu
in: query
required: false
description: true for GPU machines, false for CPU-only.
schema:
type: boolean
- name: operator
in: query
required: false
description: Operator id.
schema:
type: string
- name: model
in: query
required: false
description: Only machines set up to serve this model id.
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
example:
data:
- id: tenzro-partner-cluster
name: Tenzro Partner Cluster
region: Europe
operator:
id: tenzro-partners
name: Tenzro Partners
health: online
hardware:
gpus:
- model: NVIDIA DGX Spark (GB10)
count: 1
vram_gb: 128
- model: NVIDIA RTX 5070 Ti
count: 1
vram_gb: 16
cpu_cores: 40
memory_gb: 160
storage_gb: 4000
services:
serverless:
models:
- qwen3.8-27b
- qwen3.5-4b
- timesfm-2.5-200m
- qwen3-embedding-0.6b
- flux2-klein-4b
serving_now:
- qwen3.8-27b
- qwen3.5-4b
- timesfm-2.5-200m
- qwen3-embedding-0.6b
rent: null
subscribe: null
network:
status: active
reachability: reachable
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/machines/{id}:
get:
tags:
- Catalogue
summary: Get a machine
description: No key needed.
operationId: getMachinesById
x-tenzro-scope: public
security: []
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
example:
id: tenzro-partner-cluster
name: Tenzro Partner Cluster
region: Europe
operator:
id: tenzro-partners
name: Tenzro Partners
health: online
hardware:
gpus:
- model: NVIDIA DGX Spark (GB10)
count: 1
vram_gb: 128
- model: NVIDIA RTX 5070 Ti
count: 1
vram_gb: 16
cpu_cores: 40
memory_gb: 160
storage_gb: 4000
services:
serverless:
models:
- qwen3.8-27b
- qwen3.5-4b
- timesfm-2.5-200m
- qwen3-embedding-0.6b
- flux2-klein-4b
serving_now:
- qwen3.8-27b
- qwen3.5-4b
- timesfm-2.5-200m
- qwen3-embedding-0.6b
rent: null
subscribe: null
network:
status: active
reachability: reachable
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/operators:
get:
tags:
- Catalogue
summary: List operators
description: 'Who runs the machines, and which machines they run: operators on the Tenzro Network that partner with Tenzro Labs.
No key needed.'
operationId: getOperators
x-tenzro-scope: public
security: []
responses:
'200':
description: OK
content:
application/json:
example:
data:
- id: tenzro-partners
name: Tenzro Partners
description: 'Operators on the Tenzro Network that partner with Tenzro Labs: they rent it capacity or serve its traffic on demand, and it serves its curated models from their machines.'
website: https://tenzro.xyz
featured: true
certifications: []
machines:
- id: tenzro-partner-cluster
name: Tenzro Partner Cluster
health: online
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/operators/{id}:
get:
tags:
- Catalogue
summary: Get an operator
description: No key needed.
operationId: getOperatorsById
x-tenzro-scope: public
security: []
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
example:
id: tenzro-partners
name: Tenzro Partners
website: https://tenzro.xyz
featured: true
certifications: []
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/route:
get:
tags:
- Catalogue
summary: Preview routing
description: 'Which machines an unscoped request for a model would be sent to right now, in order.
No key needed.'
operationId: getRoute
x-tenzro-scope: public
security: []
parameters:
- name: model
in: query
required: true
description: Model id.
schema:
type: string
- name: region
in: query
required: false
description: Prefer machines in this region when otherwise equal.
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
example:
model: qwen3.5-4b
routes:
- machine_id: tenzro-partner-cluster
health: online
region: Europe
score: 120
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/packages:
get:
tags:
- Catalogue
summary: List credit packages and offers
description: No key needed.
operationId: getPackages
x-tenzro-scope: public
security: []
responses:
'200':
description: OK
content:
application/json:
example:
data: []
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/payment-methods:
get:
tags:
- Catalogue
summary: List payment methods
description: 'Whether card and stablecoin payments are set up, and which chains and tokens are accepted. available is false for a method that is not set up.
No key needed.'
operationId: getPaymentMethods
x-tenzro-scope: public
security: []
responses:
'200':
description: OK
content:
application/json:
example:
card:
available: false
processor: stripe
stablecoin:
available: false
processor: bridge
options: []
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/quotes:
post:
tags:
- Catalogue
summary: Price an order
description: 'What an order would cost, without creating it. Accepts the same body as Create an order. amount_usd is the fiat price; details.credits is what it grants. Credit orders are refused until Tenzro Labs sets the credit price, as shown.
No key needed.'
operationId: postQuotes
x-tenzro-scope: public
security: []
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- title: Credits
type: object
required:
- type
- amount_usd
properties:
type:
const: credits
amount_usd:
type: integer
minimum: 5
maximum: 5000
description: The fiat price to pay, in whole US dollars. The credits it buys are set by Tenzro Labs; until that price is set, credit orders are refused.
machine_id:
type: string
description: Pin the credit to one machine. Omit for credit usable anywhere.
gift:
type: boolean
description: Issue a redeemable ticket code instead of crediting this account.
- title: Package
type: object
required:
- type
- package_id
properties:
type:
const: package
package_id:
type: string
gift:
type: boolean
- title: Rental
type: object
required:
- type
- machine_id
- cpu_cores
- memory_gb
- hours
properties:
type:
const: rental
machine_id:
type: string
gpu:
type: integer
minimum: 0
cpu_cores:
type: integer
minimum: 1
memory_gb:
type: integer
minimum: 1
storage_gb:
type: integer
minimum: 0
hours:
type: integer
minimum: 1
- title: Subscription
type: object
required:
- type
- machine_id
- plan_id
properties:
type:
const: subscription
machine_id:
type: string
plan_id:
type: string
renew_subscription_id:
type: string
description: Renew an existing stablecoin plan for another 30 days.
example:
type: credits
amount_usd: 25
responses:
'200':
description: OK
content:
application/json:
example:
error:
code: invalid_request
message: Credit top-ups open when a payment rail is configured; until then usage is recorded at list price and charged nothing.
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.'