One Click Videos · Developers

API examples

Copy practical requests for generation, styles, credits and status.

Text to video

curl --fail-with-body https://app.jemsu.ai/api/v1/videos \
  -H "Authorization: Bearer $JEMSU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "video_idea": "A small paper boat drifts across a sunlit pond. Gentle ripples, a low camera angle and a peaceful ending.",
  "video_length_sec": 10,
  "speech": "no",
  "music": "no",
  "aspectratio": "9:16"
}'

Discover a style

curl --fail-with-body "https://app.jemsu.ai/api/v1/styles?sort=popular&limit=10" \
  -H "Authorization: Bearer $JEMSU_API_KEY"

Take a returned styleId, inspect GET /styles/{styleId} and use it as preset_style in a create request with your own video idea. The chosen style may require your product or vehicle URL.

Use a saved style

curl --fail-with-body "https://app.jemsu.ai/api/v1/my-styles?limit=10" \
  -H "Authorization: Bearer $JEMSU_API_KEY"

Use a returned styleId as my_style. Do not copy protected prompt text from a third-party style; referencing its ID applies it server-side.

Read credits and status

curl --fail-with-body https://app.jemsu.ai/api/v1/credits \
  -H "Authorization: Bearer $JEMSU_API_KEY"

curl --fail-with-body "https://app.jemsu.ai/api/v1/videos/$JEMSU_JOB_ID" \
  -H "Authorization: Bearer $JEMSU_API_KEY"

More examples

Generate with a Preset Style

Discover a real style ID first, then replace the example URL with your own product or vehicle page. A matching requiredPageType is checked before credits are charged. The chosen style supplies the duration in this example.

curl --fail-with-body -X POST https://app.jemsu.ai/api/v1/videos \
  -H "Authorization: Bearer $JEMSU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "preset_style": "STYLE_ID_FROM_GET_STYLES",
  "url": "https://YOUR-BUSINESS-SITE/inventory/2026-gx-550",
  "video_idea": "A night-time walkaround of this GX 550 for our dealership, ending on our logo."
}'

Generate with My Styles

Use an ID returned by GET /my-styles. Ensure the saved style supplies a valid duration, or send video_length_sec explicitly. Saved media must remain reachable.

curl --fail-with-body -X POST https://app.jemsu.ai/api/v1/videos \
  -H "Authorization: Bearer $JEMSU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "my_style": "SAVED_STYLE_ID_FROM_GET_MY_STYLES",
  "video_idea": "The same look for our spring sale: tulips, the clerk and the sale sign."
}'

Override a style’s output format

Explicit values override style defaults unless the style hard-locks those fields. The response reports ignored overrides in warnings.

curl --fail-with-body -X POST https://app.jemsu.ai/api/v1/videos \
  -H "Authorization: Bearer $JEMSU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "preset_style": "STYLE_ID_FROM_GET_STYLES",
  "url": "https://YOUR-BUSINESS-SITE/inventory/2026-gx-550",
  "video_idea": "A night-time walkaround of this GX 550 for our dealership, ending on our logo.",
  "aspectratio": "16:9",
  "captions": "yes"
}'

Narration, music and captions

curl --fail-with-body -X POST https://app.jemsu.ai/api/v1/videos \
  -H "Authorization: Bearer $JEMSU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "video_idea": "A 20-second promo for a neighborhood bakery: warm morning light, sourdough out of the oven, a close-up of the crust, end on the shop sign.",
  "video_length_sec": 20,
  "speech": "yes",
  "audio_source": "voiceover",
  "voice_gender": "female",
  "voice_style": "warm and friendly",
  "voice_script_mode": "planner",
  "music": "yes",
  "music_notes": "upbeat acoustic",
  "captions": "yes",
  "aspectratio": "9:16",
  "notes": "Never show prices. The sign reads BAKED DAILY."
}'