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
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
readcall. See rate limits. - No
Idempotency-Key.
Parameters
This operation takes no parameters.
Request
Read the options before setting up a project.
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
| Name | Type | Description |
|---|---|---|
languages[].id | string | The value to send in the setting. |
objectives[].id | string | The value to send in the setting. |
captionStyles[].id | string | The value to send in the setting. |
reframeModes[].id | string | The value to send in the setting. |
layouts[].id | string | The value to send in the setting. |
themes[].id | string | The value to send in the setting. |
aspects[].id | string | The value to send in the setting. |
videoTypes[].id | string | The value to send in the setting. |
Response example
{
"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
| Name | Type | Required | Description |
|---|---|---|---|
languages | array of objects | Required | The spoken language of the video, used to transcribe it. auto detects it. |
languages[].id | string | Required | The value to send in the setting. One of auto, it, en. |
languages[].name | string | Required | A short name to show to a person. |
objectives | array of objects | Required | What kind of moments the analysis looks for. |
objectives[].id | string | Required | The value to send in the setting. One of viral, educational, entertaining, emotional, controversial, howto, business. |
objectives[].name | string | Required | A short name to show to a person. |
objectives[].description | string | Required | One sentence that says what the choice does. |
captionStyles | array of objects | Required | How the captions look on a clip. |
captionStyles[].id | string | Required | The value to send in the setting. One of bold-karaoke, word-pop, boxed, outline. |
captionStyles[].name | string | Required | A short name to show to a person. |
captionStyles[].description | string | Required | One sentence that says what the choice does. |
reframeModes | array of objects | Required | How the vertical frame is placed on a video that is wider than it is tall. |
reframeModes[].id | string | Required | The value to send in the setting. One of face, center. |
reframeModes[].name | string | Required | A short name to show to a person. |
reframeModes[].description | string | Required | One sentence that says what the choice does. |
clipCount | object | Required | How many clips an analysis can be asked for. |
clipCount.min | integer | Required | The lowest value accepted. |
clipCount.max | integer | Required | The highest value accepted. |
minDurationSec | object | Required | The values minDurationSec accepts, in seconds. |
minDurationSec.min | integer | Required | The lowest value accepted. |
minDurationSec.max | integer | Required | The highest value accepted. |
maxDurationSec | object | Required | The values maxDurationSec accepts, in seconds. An analysis refuses a minimum longer than the maximum. |
maxDurationSec.min | integer | Required | The lowest value accepted. |
maxDurationSec.max | integer | Required | The highest value accepted. |
layouts | array of objects | Required | How a split screen project shares the screen between its two videos (layout). |
layouts[].id | string | Required | The value to send in the setting. One of 50-50, 60-40. |
layouts[].name | string | Required | A short name to show to a person. |
layouts[].description | string | Required | One sentence that says what the choice does. |
themes | array of objects | Required | How the chat of a fake text project looks (theme). |
themes[].id | string | Required | The value to send in the setting. One of imessage, whatsapp. |
themes[].name | string | Required | A short name to show to a person. |
themes[].description | string | Required | One sentence that says what the choice does. |
aspects | array of objects | Required | The shape a Vibe Editing project starts with (aspect). |
aspects[].id | string | Required | The value to send in the setting. One of source, 9:16, 1:1, 16:9. |
aspects[].name | string | Required | A short name to show to a person. |
aspects[].description | string | Required | One sentence that says what the choice does. |
videoTypes | array of objects | Required | The kinds of video brainstorm_ideas (POST /v1/brainstorms) writes ideas for (videoType). |
videoTypes[].id | string | Required | The value to send in the setting. One of story, fake_text, split_screen, any. |
videoTypes[].name | string | Required | A short name to show to a person. |
videoTypes[].description | string | Required | One 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.
Related operations
create_project(POST /v1/projects) Create a projectupdate_project(PATCH /v1/projects/{projectId}) Update a projectlist_voices(GET /v1/reference/voices) List the voicescreate_split_screen_project(POST /v1/projects/split-screen) Create a split screen projectcreate_streamer_project(POST /v1/projects/streamer) Create a streamer projectbrainstorm_ideas(POST /v1/brainstorms) Brainstorm video ideas
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.