tenzro-xyz Fieldwork ingest API
The Fieldwork ingest API from tenzro-xyz — 8 operation(s) for fieldwork ingest.
The Fieldwork ingest API from tenzro-xyz — 8 operation(s) for fieldwork ingest.
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-fieldwork-ingest-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 Fieldwork ingest 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: Fieldwork ingest
paths:
/ingest/project:
get:
tags:
- Fieldwork ingest
summary: 'The project: name, data type, prompts, capture format and limits, questions…'
description: Needs the project's ingest key (`tzi_…`), sent from one of the origins listed on it. Not a Platform key.
operationId: getIngestProject
x-tenzro-scope: ingest
security:
- ingestKey: []
responses:
'200':
description: OK
content:
application/json: {}
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/ingest/challenge:
get:
tags:
- Fieldwork ingest
summary: A page check to solve before starting a participant (SHA-256 proof of work)
description: Needs the project's ingest key (`tzi_…`), sent from one of the origins listed on it. Not a Platform key.
operationId: getIngestChallenge
x-tenzro-scope: ingest
security:
- ingestKey: []
responses:
'200':
description: OK
content:
application/json: {}
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/ingest/participants:
post:
tags:
- Fieldwork ingest
summary: 'Start a participant: country, region, dob, answers, challenge, nonce.'
description: Needs the project's ingest key (`tzi_…`), sent from one of the origins listed on it. Not a Platform key.
operationId: postIngestParticipants
x-tenzro-scope: ingest
security:
- ingestKey: []
parameters:
- name: X-Device-Id
in: header
required: false
description: A random id the page keeps (16-64 characters of A-Z a-z 0-9 _ -); limits count it per device
schema:
type: string
responses:
'200':
description: OK
content:
application/json: {}
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/ingest/participant:
get:
tags:
- Fieldwork ingest
summary: The participant's state, consent and prompts
description: Needs the project's ingest key (`tzi_…`), sent from one of the origins listed on it. Not a Platform key.
operationId: getIngestParticipant
x-tenzro-scope: ingest
security:
- ingestKey: []
parameters:
- name: X-Participant-Token
in: header
required: true
description: The participant token returned when the participant was started
schema:
type: string
responses:
'200':
description: OK
content:
application/json: {}
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/ingest/participant/consent:
post:
tags:
- Fieldwork ingest
summary: 'Record consent to the project''s current text: {given: {scope: true}}'
description: Needs the project's ingest key (`tzi_…`), sent from one of the origins listed on it. Not a Platform key.
operationId: postIngestParticipantConsent
x-tenzro-scope: ingest
security:
- ingestKey: []
parameters:
- name: X-Participant-Token
in: header
required: true
description: The participant token returned when the participant was started
schema:
type: string
responses:
'200':
description: OK
content:
application/json: {}
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/ingest/items:
post:
tags:
- Fieldwork ingest
summary: 'Send one take: a 16-bit mono WAV (12 MB), a photo (15 MB), a video (100 MB) or…'
description: Needs the project's ingest key (`tzi_…`), sent from one of the origins listed on it. Not a Platform key.
operationId: postIngestItems
x-tenzro-scope: ingest
security:
- ingestKey: []
parameters:
- name: prompt
in: query
required: true
description: The prompt id the take answers
schema:
type: string
- name: X-Participant-Token
in: header
required: true
description: The participant token returned when the participant was started
schema:
type: string
- name: X-Content-Sha256
in: header
required: true
description: Hex SHA-256 of the body
schema:
type: string
- name: X-Fieldwork-Meta
in: header
required: false
description: 'base64url JSON: {capture, answers}'
schema:
type: string
requestBody:
required: true
content:
audio/wav:
schema:
type: string
format: binary
responses:
'200':
description: OK
content:
application/json: {}
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
get:
tags:
- Fieldwork ingest
summary: The participant's takes and their review status
description: Needs the project's ingest key (`tzi_…`), sent from one of the origins listed on it. Not a Platform key.
operationId: getIngestItems
x-tenzro-scope: ingest
security:
- ingestKey: []
parameters:
- name: X-Participant-Token
in: header
required: true
description: The participant token returned when the participant was started
schema:
type: string
responses:
'200':
description: OK
content:
application/json: {}
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/ingest/items/stream:
post:
tags:
- Fieldwork ingest
summary: 'Sensor projects: stream readings as newline-delimited JSON, one checked item…'
description: Needs the project's ingest key (`tzi_…`), sent from one of the origins listed on it. Not a Platform key.
operationId: postIngestItemsStream
x-tenzro-scope: ingest
security:
- ingestKey: []
parameters:
- name: prompt
in: query
required: true
description: The prompt id the readings answer
schema:
type: string
- name: X-Participant-Token
in: header
required: true
description: The participant token returned when the participant was started
schema:
type: string
requestBody:
required: true
content:
application/x-ndjson:
schema:
type: string
format: binary
responses:
'200':
description: OK
content:
application/json: {}
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/ingest/participant/withdraw:
post:
tags:
- Fieldwork ingest
summary: Withdraw the participant and delete their recordings
description: Needs the project's ingest key (`tzi_…`), sent from one of the origins listed on it. Not a Platform key.
operationId: postIngestParticipantWithdraw
x-tenzro-scope: ingest
security:
- ingestKey: []
parameters:
- name: X-Participant-Token
in: header
required: true
description: The participant token returned when the participant was started
schema:
type: string
responses:
'200':
description: OK
content:
application/json: {}
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.'