Skip to main content
POST
Create translation (ZeroClick-authenticated)
This is the audio translations endpoint (see Transcriptions) behind ZeroClick, ZeroGPU’s agent-payment layer. Same request/response bodies, limits, and model as /v1/audio/translations — only authentication, authorization, and metering differ. The body is streamed upstream unread, so the request is always served by the configured model (whisper-tiny). Send the same form as a transcription without language; the transcript is always English.
  • Authentication — no x-api-key. A buying agent calls ZeroClick’s hosted pay URL; ZeroClick proxies the request and signs the raw request bytes with an HMAC in the zc-signature header. A request is authenticated only by a valid signature.
  • Authorization — a ZeroClick allowance check runs before any billable work. It fails open on a transient ZeroClick outage (the signature has already verified), but never for a missing or invalid signature.
  • Metering — billed per audio second. The allowance check asks for a 1-second floor, since the duration is not known until the clip is decoded or generated. On success, zc-usage reports max(1, ceil(x-audio-duration-seconds)) audio seconds. Stripe metering is bypassed; ZeroClick is the sole biller.
Handle errors the same way as API error codes.

Authorizations

zc-signature
string
header
required

HMAC signature minted by ZeroClick over the raw request bytes, of the form t=<unix-seconds>,kid=<key-id>,v1=<hex-hmac>. Verified by the @zeroclickai/sellers SDK against the seller's signing secret keyed by kid. A missing or invalid signature is rejected with 401 invalid_zeroclick_signature; this is never failed open.

Headers

zc-request-id
string

ZeroClick request id, echoed in logs for correlation. Set by ZeroClick when it proxies the request.

Example:

"zcreq_1"

zc-agent-id
string

Identifier of the buying agent. Used to partition logs/analytics by agent; becomes the synthesized caller identity.

Example:

"agt_1"

Body

multipart/form-data

Same form as a transcription, without language: the transcript is always English. Sending language returns 400.

file
file
required

The audio file to translate into English.

model
enum<string>
default:whisper-tiny

Model identifier. The endpoint serves whisper-tiny.

Available options:
whisper-tiny
Example:

"whisper-tiny"

prompt
string

Text to guide spelling and style, such as names or jargon.

Maximum string length: 4096
response_format
enum<string>
default:json

json and verbose_json return application/json; text, srt, and vtt return text/plain.

Available options:
json,
text,
srt,
verbose_json,
vtt
temperature
number
default:0

Sampling temperature.

Required range: 0 <= x <= 1
timestamp_granularities[]
enum<string>[]

segment (default), word, or both. Requires verbose_json.

Available options:
segment,
word

Response

The English transcript, in the requested response_format. Includes the zc-usage header settling actual usage with ZeroClick.

json returns { text }. verbose_json adds task, language, duration, and segments and/or words.

text
string
required

The transcript.