Private preview

Build with Origin.

Make, adapt and publish ad video from inside your own product. The same model and safety checks that power Ori, behind one API.

Endpoints and fields on this page show the shape of the preview API and may change before general availability.

create_ad.sh
$ curl api.zerohuman.co/v1/ads \
  -d brief="Fall launch, Brooklyn café" \
  -d languages=en,es -d shapes=9:16,1:1

{ "id": "ad_7QxK2m",
  "status": "awaiting_approval",
  "renders": 4, "c2pa": true }
9:16 · EN

What you can build

POST /v1/adsAn ad from every productMake a video ad the moment a product goes live in your store or catalogue.
POST /v1/ads/{id}/versionsEvery shape and languageTurn one approved ad into Reels, feed and YouTube cuts, in English, Arabic or Spanish.
PUT /v1/brands/{id}/memoryBrand memory as an APISync rules, assets and locked end cards from your own system.
POST /v1/webhooksApprovals in your appPut approval steps inside your own workflow, with signed webhooks.
GET /v1/ads/{id}/resultsResults that loop backRead performance by opening and market, and request the next version.

Quickstart

Your first ad, in one request.

  1. Get a preview key from your workspace settings.
  2. Send a brief. Ori reads it back as structured fields.
  3. Approve it, or let your app approve it, then get renders by webhook.

Every render carries C2PA content credentials and an invisible watermark. You can’t turn those off.

curl https://api.zerohuman.co/v1/ads \
  -H "Authorization: Bearer $ZH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "brief": "Fall launch for our Brooklyn coffee shop. Cozy, not cheesy.",
    "brand_id": "brd_9f2c",
    "languages": ["en", "es"],
    "shapes": ["9:16", "1:1"],
    "duration_s": 15
  }'
Response
{
  "id": "ad_7QxK2m",
  "status": "awaiting_approval",
  "read_back": {
    "market": "US-NY", "tone": "cozy",
    "voice": "en-US", "captions": ["es"]
  },
  "renders": [
    { "shape": "9:16", "lang": "en", "c2pa": true },
    { "shape": "1:1", "lang": "es", "c2pa": true }
  ]
}

API reference

Resources

https://api.zerohuman.co/v1
POST/briefsTurn text or a voice note into a structured brief, read back as fields.
POST/adsMake an ad from a brief, for a brand.
GET/ads/{id}Status, read-back and renders.
POST/ads/{id}/versionsNew shapes, languages or openings from an approved ad.
POST/ads/{id}/approveApprove for publishing. Respects the brand’s approval chain.
GET/ads/{id}/resultsPerformance by opening, market and platform.
PUT/brands/{id}/memoryRead and update brand rules and locked assets.
POST/consentsStart a verified likeness consent for a real person.
Webhook eventsad.read_backad.readyad.approvedad.publishedresults.updated

Models

What’s available, and when.

origin-1-previewPrivate preview

Ad video from 5 to 30 seconds in 9:16, 1:1 and 16:9, with voice, music and burned-in captions.

origin-1-fastPlanned

Quick drafts and storyboards in seconds, for testing many openings before rendering.

origin-voicePlanned

Voiceover in American English, Gulf Arabic, Spanish and more, consent-gated for real voices.

Capabilities, evaluations and known limits are in the model card.

Changelog

Every change, dated.

  1. 7 Oct 2026Developer preview page publishedResources, webhook events and the waitlist are open. SDKs for JavaScript and Python are in testing.
  2. NextSandbox keysFree test renders with watermarked output, so you can build before you’re billed.
  3. NextResults endpointPerformance by opening and market, readable by your app.

Request access

Join the preview.

We’re letting teams in a few at a time, so we can support each one properly. Tell us what you’re building.

Preview use follows our acceptable use policy.