GenzoAI/platform

Generation

Four endpoints, one request shape. Every call takes a prompt, an optional provider and model, and a parameters object whose contents depend on the modality.

Omit provider and the account default for that modality is used. Omit model and the provider's default model is used.

Text

POST /v1/generate/text — synchronous.

FieldTypeRequiredNotes
promptstringyesMax 10,000 characters
system_promptstringnoMax 5,000 characters
providerstringnoanthropic, openai
modelstringnoSee models
template_idintegernoApply a saved prompt template
template_variablesobjectnoValues for the template's placeholders
parameters.max_tokensintegerno1–4096
parameters.temperaturenumberno0.0–2.0
request
{
  "prompt": "Write a professional product description for a time-tracking app.",
  "system_prompt": "You are a senior SaaS copywriter.",
  "provider": "anthropic",
  "model": "claude-sonnet-5",
  "parameters": { "max_tokens": 800, "temperature": 0.7 }
}

Image

POST /v1/generate/image — synchronous.

FieldTypeNotes
promptstringRequired. Max 5,000 characters
negative_promptstringWhat to avoid. Max 2,000 characters
parameters.sizestring256x256, 512x512, 1024x1024, 1024x1792, 1792x1024
parameters.qualitystringstandard or hd. hd costs more
parameters.stylestringvivid or natural
parameters.ninteger1–4. Billed per image
request
{
  "prompt": "Isometric illustration of a server rack, muted palette",
  "negative_prompt": "blurry, low quality, text",
  "provider": "openai",
  "model": "gpt-image-1",
  "parameters": { "size": "1024x1024", "quality": "hd", "n": 1 }
}

The response result is a URL to the stored image.

Video

POST /v1/generate/video — asynchronous. Returns immediately with status: "processing".

FieldTypeNotes
promptstringRequired
parameters.durationintegerSeconds. Billed per second
parameters.ratiostringe.g. 16:9, 9:16

Poll for completion:

polling
curl https://api.genzoai.com/v1/generate/$UUID \
  -H "Authorization: Bearer $GENZO_API_KEY"

# status: pending -> processing -> completed | failed

Poll every 5–10 seconds. Video jobs typically finish in 1–4 minutes. Credits are released automatically if the job fails.

Speech

POST /v1/generate/audio — asynchronous. Text to speech.

FieldTypeNotes
promptstringRequired. The text to speak
parameters.voicestringVoice identifier
parameters.speednumberPlayback rate multiplier
parameters.formatstringmp3, wav

Billed per 1,000 characters of input text.

Retrieving results

EndpointReturns
GET /v1/generate/{'{'}uuid{'}'}One generation with full result and metadata
GET /v1/generate/historyPaginated list. Filter with ?type=, ?status=, ?per_page=

Status values

Failures do not cost credits. The estimated cost is held when a request starts and released in full if the upstream provider errors. Only completed work is billed, at the real token count.