Skip to content
Create a key

Paste a key to use it in the examples on these pages. The key stays in this browser tab. These pages never send it anywhere.

Get the setting options

get_setting_optionsGET/v1/reference/setting-optionsBeta

Returns the values the settings of a project or a brainstorm accept, with a name and a description for every choice.

Beta. This endpoint is supported and can gain new fields. If a change would break your code, we tell you before it takes effect and list it in the changelog.

About

Call this before you create or change a project, or start a brainstorm, to know what its settings take. language, objective, captionStyle and reframe take an id from these lists, and clipCount, minDurationSec and maxDurationSec a number within the ranges given here. layout is the layout of a split screen project, theme the look of a fake text project, aspect the shape of a Vibe Editing project and videoType the kind of video of brainstorm_ideas (POST /v1/brainstorms). The voices are listed by list_voices (GET /v1/reference/voices). The names and descriptions are written to show the choices to a person. New values can be added over time, so read the lists instead of copying them into your code. The answer is the same for every account.

Example use

A form builder reads the setting options when it loads and fills its menus of languages, caption styles and objectives from them, so a value added later appears without a change in its code.

Endpoint

Code
GET https://api.gpt-video.com/v1/reference/setting-options
  • Scope clips:read.
  • Rate limit 120 requests a minute for each key and 240 for each account, shared by every read call. See rate limits.
  • No Idempotency-Key.

Parameters

This operation takes no parameters.

Request

Read the options before setting up a project.

Request example
curl "https://api.gpt-video.com/v1/reference/setting-options" \
  -H "Authorization: Bearer $GPT_VIDEO_API_KEY"
const res = await fetch("https://api.gpt-video.com/v1/reference/setting-options", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.GPT_VIDEO_API_KEY}`,
  },
});
const data = await res.json();
console.log(data);
import os

import requests

r = requests.get(
    "https://api.gpt-video.com/v1/reference/setting-options",
    headers={
        "Authorization": f"Bearer {os.environ['GPT_VIDEO_API_KEY']}",
    },
)
data = r.json()
print(data)
{
  "method": "tools/call",
  "params": {
    "name": "get_setting_options",
    "arguments": {}
  }
}

Response

A successful call answers HTTP 200.

Fields to check

NameTypeDescription
languages[].idstringThe value to send in the setting.
objectives[].idstringThe value to send in the setting.
captionStyles[].idstringThe value to send in the setting.
reframeModes[].idstringThe value to send in the setting.
layouts[].idstringThe value to send in the setting.
themes[].idstringThe value to send in the setting.
aspects[].idstringThe value to send in the setting.
videoTypes[].idstringThe value to send in the setting.

Response example

HTTP 200
{
  "languages": [
    {
      "id": "auto",
      "name": "Detect automatically"
    },
    {
      "id": "it",
      "name": "Italian"
    },
    {
      "id": "en",
      "name": "English"
    }
  ],
  "objectives": [
    {
      "id": "viral",
      "name": "Mixed",
      "description": "Moments with a strong opening and a clear payoff, on any topic."
    },
    {
      "id": "educational",
      "name": "Educational",
      "description": "Lessons, methods and figures that a viewer would keep to watch again."
    },
    {
      "id": "entertaining",
      "name": "Entertaining",
      "description": "Jokes, stories and moments nobody saw coming."
    },
    {
      "id": "emotional",
      "name": "Emotional",
      "description": "Personal stories, moments of doubt and words that move people."
    },
    {
      "id": "controversial",
      "name": "Controversial",
      "description": "Strong opinions and positions that go against what most people think."
    },
    {
      "id": "howto",
      "name": "How-to",
      "description": "Practical steps that show how to do one thing."
    },
    {
      "id": "business",
      "name": "Business",
      "description": "Lessons about running a company, with numbers, decisions and mistakes."
    }
  ],
  "captionStyles": [
    {
      "id": "bold-karaoke",
      "name": "Bold karaoke",
      "description": "Bold uppercase words, and the word being spoken changes color."
    },
    {
      "id": "word-pop",
      "name": "Word pop",
      "description": "One large word at a time, each with a short entrance animation."
    },
    {
      "id": "boxed",
      "name": "Boxed",
      "description": "The sentence sits in a dark box, and the word being spoken is highlighted."
    },
    {
      "id": "outline",
      "name": "Outline",
      "description": "White words with a black outline, readable on any background."
    }
  ],
  "reframeModes": [
    {
      "id": "face",
      "name": "Follow the face",
      "description": "The vertical frame follows the face of the speaker, and stays in the middle when no face is found."
    },
    {
      "id": "center",
      "name": "Center",
      "description": "The vertical frame stays in the middle of the video."
    }
  ],
  "clipCount": {
    "min": 1,
    "max": 100
  },
  "minDurationSec": {
    "min": 5,
    "max": 180
  },
  "maxDurationSec": {
    "min": 10,
    "max": 300
  },
  "layouts": [
    {
      "id": "50-50",
      "name": "Half and half",
      "description": "The main video and the background video each take half of the screen."
    },
    {
      "id": "60-40",
      "name": "Main video larger",
      "description": "The main video takes more of the screen than the background video."
    }
  ],
  "themes": [
    {
      "id": "imessage",
      "name": "iMessage",
      "description": "The chat looks like a conversation in Apple Messages."
    },
    {
      "id": "whatsapp",
      "name": "WhatsApp",
      "description": "The chat looks like a conversation in WhatsApp."
    }
  ],
  "aspects": [
    {
      "id": "source",
      "name": "Same as the video",
      "description": "The edit keeps the shape of its source video."
    },
    {
      "id": "9:16",
      "name": "Vertical 9:16",
      "description": "A tall frame that fills a phone screen held upright."
    },
    {
      "id": "1:1",
      "name": "Square 1:1",
      "description": "A square frame, as wide as it is tall."
    },
    {
      "id": "16:9",
      "name": "Horizontal 16:9",
      "description": "A wide frame, the shape of most videos made for a computer screen."
    }
  ],
  "videoTypes": [
    {
      "id": "story",
      "name": "Story",
      "description": "A story read by a voice over a background video."
    },
    {
      "id": "fake_text",
      "name": "Fake text",
      "description": "A chat conversation shown one message at a time."
    },
    {
      "id": "split_screen",
      "name": "Split screen",
      "description": "A talking video above a background video."
    },
    {
      "id": "any",
      "name": "Any",
      "description": "Ideas for any kind of short video."
    }
  ]
}
All response fields
NameTypeRequiredDescription
languagesarray of objectsRequiredThe spoken language of the video, used to transcribe it. auto detects it.
languages[].idstringRequiredThe value to send in the setting. One of auto, it, en.
languages[].namestringRequiredA short name to show to a person.
objectivesarray of objectsRequiredWhat kind of moments the analysis looks for.
objectives[].idstringRequiredThe value to send in the setting. One of viral, educational, entertaining, emotional, controversial, howto, business.
objectives[].namestringRequiredA short name to show to a person.
objectives[].descriptionstringRequiredOne sentence that says what the choice does.
captionStylesarray of objectsRequiredHow the captions look on a clip.
captionStyles[].idstringRequiredThe value to send in the setting. One of bold-karaoke, word-pop, boxed, outline.
captionStyles[].namestringRequiredA short name to show to a person.
captionStyles[].descriptionstringRequiredOne sentence that says what the choice does.
reframeModesarray of objectsRequiredHow the vertical frame is placed on a video that is wider than it is tall.
reframeModes[].idstringRequiredThe value to send in the setting. One of face, center.
reframeModes[].namestringRequiredA short name to show to a person.
reframeModes[].descriptionstringRequiredOne sentence that says what the choice does.
clipCountobjectRequiredHow many clips an analysis can be asked for.
clipCount.minintegerRequiredThe lowest value accepted.
clipCount.maxintegerRequiredThe highest value accepted.
minDurationSecobjectRequiredThe values minDurationSec accepts, in seconds.
minDurationSec.minintegerRequiredThe lowest value accepted.
minDurationSec.maxintegerRequiredThe highest value accepted.
maxDurationSecobjectRequiredThe values maxDurationSec accepts, in seconds. An analysis refuses a minimum longer than the maximum.
maxDurationSec.minintegerRequiredThe lowest value accepted.
maxDurationSec.maxintegerRequiredThe highest value accepted.
layoutsarray of objectsRequiredHow a split screen project shares the screen between its two videos (layout).
layouts[].idstringRequiredThe value to send in the setting. One of 50-50, 60-40.
layouts[].namestringRequiredA short name to show to a person.
layouts[].descriptionstringRequiredOne sentence that says what the choice does.
themesarray of objectsRequiredHow the chat of a fake text project looks (theme).
themes[].idstringRequiredThe value to send in the setting. One of imessage, whatsapp.
themes[].namestringRequiredA short name to show to a person.
themes[].descriptionstringRequiredOne sentence that says what the choice does.
aspectsarray of objectsRequiredThe shape a Vibe Editing project starts with (aspect).
aspects[].idstringRequiredThe value to send in the setting. One of source, 9:16, 1:1, 16:9.
aspects[].namestringRequiredA short name to show to a person.
aspects[].descriptionstringRequiredOne sentence that says what the choice does.
videoTypesarray of objectsRequiredThe kinds of video brainstorm_ideas (POST /v1/brainstorms) writes ideas for (videoType).
videoTypes[].idstringRequiredThe value to send in the setting. One of story, fake_text, split_screen, any.
videoTypes[].namestringRequiredA short name to show to a person.
videoTypes[].descriptionstringRequiredOne sentence that says what the choice does.

Errors

Every call can also answer these errors. VALIDATION_FAILED, UNKNOWN_PARAMETER, UNAUTHORIZED, SCOPE_MISSING, RATE_LIMITED, INTERNAL, UNAVAILABLE.

Cost

No credits are used.

Questions

Where do I use these ids?

In the settings of a project: language, objective, captionStyle and reframe each take one id from the matching list, and so do layout, theme and aspect for the projects that have them. videoType is a field of brainstorm_ideas (POST /v1/brainstorms).

Can a list change?

Values can be added. Read the lists when you need them instead of copying them into your code, and an id you already use keeps working.

View as Markdown