curl -X GET "https://api.submagic.co/v1/hook-title/templates" \
-H "x-api-key: sk-your-api-key-here"
const response = await fetch(
"https://api.submagic.co/v1/hook-title/templates",
{
headers: { "x-api-key": "sk-your-api-key-here" },
}
);
const data = await response.json();
console.log(data.templates);
import requests
headers = {
'x-api-key': 'sk-your-api-key-here'
}
response = requests.get(
'https://api.submagic.co/v1/hook-title/templates',
headers=headers
)
data = response.json()
print("Available templates:", data['templates'])
{
"templates": [
"tiktok",
"laura",
"steph",
"kevin",
"kelly",
"mark",
"logan",
"enrico",
"mike",
"devin",
"hormozi",
"masi",
"ali"
]
}
API Reference
Get Hook Title Templates
Retrieve a list of all available hook title templates
GET
/
v1
/
hook-title
/
templates
curl -X GET "https://api.submagic.co/v1/hook-title/templates" \
-H "x-api-key: sk-your-api-key-here"
const response = await fetch(
"https://api.submagic.co/v1/hook-title/templates",
{
headers: { "x-api-key": "sk-your-api-key-here" },
}
);
const data = await response.json();
console.log(data.templates);
import requests
headers = {
'x-api-key': 'sk-your-api-key-here'
}
response = requests.get(
'https://api.submagic.co/v1/hook-title/templates',
headers=headers
)
data = response.json()
print("Available templates:", data['templates'])
{
"templates": [
"tiktok",
"laura",
"steph",
"kevin",
"kelly",
"mark",
"logan",
"enrico",
"mike",
"devin",
"hormozi",
"masi",
"ali"
]
}
Get Hook Title Templates
Retrieve a list of all hookt title available templates that can be applied to your projects. Hook titles render an animated caption for the first seconds of your video to grab attention before the main captions begin.This endpoint requires authentication and has a rate limit of 1000 requests
per hour.
Authentication
string
required
Your Submagic API key starting with
sk-Response
array
Array of available hook title template names
curl -X GET "https://api.submagic.co/v1/hook-title/templates" \
-H "x-api-key: sk-your-api-key-here"
const response = await fetch(
"https://api.submagic.co/v1/hook-title/templates",
{
headers: { "x-api-key": "sk-your-api-key-here" },
}
);
const data = await response.json();
console.log(data.templates);
import requests
headers = {
'x-api-key': 'sk-your-api-key-here'
}
response = requests.get(
'https://api.submagic.co/v1/hook-title/templates',
headers=headers
)
data = response.json()
print("Available templates:", data['templates'])
{
"templates": [
"tiktok",
"laura",
"steph",
"kevin",
"kelly",
"mark",
"logan",
"enrico",
"mike",
"devin",
"hormozi",
"masi",
"ali"
]
}
Using Hook Title Templates
When creating a project or updating a project, specify the template name in your request:"hookTitle": {
"text": "Stop scrolling—watch this in 30 seconds",
"template": "tiktok",
"top": 45,
"size": 32
}
Response
array
Array of available hook title template names
Request Example
cURL
curl -X GET "https://api.submagic.co/v1/hook-title/templates" \
-H "x-api-key: sk-your-api-key-here"
JavaScript
const response = await fetch(
"https://api.submagic.co/v1/hook-title/templates",
{
headers: { "x-api-key": "sk-your-api-key-here" },
}
);
const { templates } = await response.json();
console.log("Hook title templates:", templates);
Python
import requests
headers = {'x-api-key': 'sk-your-api-key-here'}
response = requests.get(
'https://api.submagic.co/v1/hook-title/templates',
headers=headers
)
templates = response.json()['templates']
print("Hook title templates:", templates)
Example Response
{
"templates": [
"tiktok",
"laura",
"steph",
"kevin",
"kelly",
"mark",
"logan",
"enrico",
"mike",
"devin",
"hormozi",
"masi",
"ali"
]
}
Error Handling
object
{
"error": "UNAUTHORIZED",
"message": "Invalid or missing API key"
}
object
{
"error": "RATE_LIMIT_EXCEEDED",
"message": "Too many requests",
"retryAfter": 30
}
object
{
"error": "VALIDATION_ERROR",
"message": "Invalid template name"
}
If you don’t specify a
hookTitle when creating a project, the system will
automatically apply the “tiktok” template.Template names are case-sensitive. Make sure to use the exact template name as
returned by this endpoint.

