Qulture API
DocsAPI referencePlaygroundPricingConnectors
Sign in
Qulture API

The Qulture Studio API: AI video and images from your own app.

Build

  • Docs
  • API reference
  • Playground
  • Changelog

Account

  • Pricing
  • Console
  • Connectors

Qulture

  • Qulture Studio
  • Support
  • Terms
  • Privacy

© 2026 Qulture

Get started

  • Introduction
  • Quickstart
  • Authentication

Guides

  • Making videos
  • Images
  • Jobs & polling
  • Webhooks

Reference

  • Pricing & billing
  • Rate limits
  • Errors
  • API reference

More

  • Changelog
  • FAQ
Console & API keys PlaygroundAI ChatGPT & Claude (MCP)

Get started

Quickstart

Your first video in five minutes.

1. Get an API key

Sign in to Qulture and open the Console. Under API keys, click Create key, give it a name and copy the key — it starts with qk_live_ and is shown only once.

Save it as an environment variable so it never ends up in your code:

Terminal
export QULTURE_API_KEY="qk_live_…"

Check it works:

Check your key
curl https://qulture-webapi-staging-381114038302.us-central1.run.app/api/v1/developer/me \
  -H "Authorization: Bearer $QULTURE_API_KEY"

2. Add funds

The API is pay as you go: requests are paid from your API balance, in US dollars. In the Console, choose an amount (from $5) and pay by card. A 5-second Draft video costs $0.50, so $10 is enough for 20 of them.

GET /api/v1/developer/me shows your balance in billing.balance_usd. Without enough balance, create requests return 402 insufficient_balance and nothing is made.

3. Create a video

Describe what you want. A 5-second draft is the cheapest way to try — $0.50 (see pricing).

Create a video
curl -X POST https://qulture-webapi-staging-381114038302.us-central1.run.app/api/v1/studio/jobs \
  -H "Authorization: Bearer $QULTURE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "mode": "text_to_video",
  "prompt": "A neon-lit street market at night, slow camera push in",
  "tier": "draft",
  "duration": 5,
  "aspect": "9:16"
}'

You get the job back straight away with status: "queued". Keep its id.

4. Get the result

Ask for the job every 5 seconds until status is ready (or failed / blocked). When it's ready, video_url is a link to the MP4.

Get the job
curl https://qulture-webapi-staging-381114038302.us-central1.run.app/api/v1/studio/jobs/JOB_ID \
  -H "Authorization: Bearer $QULTURE_API_KEY"

Don't want to poll?

Add "webhook_url": "https://your.app/hooks/qulture" to the create request and Qulture calls you when the video is done. Webhooks →

Full script

Create, wait and print the video link in one go:

make-video
# Create
JOB=$(curl -s -X POST https://qulture-webapi-staging-381114038302.us-central1.run.app/api/v1/studio/jobs \
  -H "Authorization: Bearer $QULTURE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode":"text_to_video","prompt":"A neon-lit street market at night","tier":"draft","duration":5}' \
  | jq -r .data.id)

# Wait
while :; do
  S=$(curl -s https://qulture-webapi-staging-381114038302.us-central1.run.app/api/v1/studio/jobs/$JOB -H "Authorization: Bearer $QULTURE_API_KEY")
  STATUS=$(echo "$S" | jq -r .data.status)
  echo "$STATUS"
  case $STATUS in ready|failed|blocked) break;; esac
  sleep 5
done
echo "$S" | jq -r .data.video_url
← PreviousIntroductionNext →Authentication

On this page

  • 1. Get an API key
  • 2. Add funds
  • 3. Create a video
  • 4. Get the result
  • Full script