API REFERENCE
Analyze Video
On this page
/api/content/analyzeAnalyze a video and answer questions about it. Pass a video URL and a text prompt — for example, "Describe what happens" or "Rate the visual quality 1-10." Returns the generated text.
Authentication
x-api-key in header
bearerAuth bearer
Request
curl --request POST \
--url 'https://api.recoupable.dev/api/content/analyze' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"video_url": "string",
"prompt": "string"
}'Try it
Fill in the fields, send the request from your browser, and read the live response. The curl below updates as you type.
Kept in this browser tab only and cleared when it closes.
curl --request POST \
--url 'https://recoup-api.vercel.app/api/content/analyze' \
--header 'Content-Type: application/json' \
--data '{
"video_url": "string",
"prompt": "string"
}'Request body required
Video analysis parameters
application/json
video_urlstringrequiredPublicly accessible URL of the video to analyze. Supported formats: MP4, MOV, AVI, and other FFmpeg-compatible formats. Maximum duration: 1 hour.
format: uri
promptstringrequiredA text prompt that guides the analysis. Can be instructive, descriptive, or phrased as a question. Examples: "Describe the key moments in this video", "Generate 5 SEO keywords for this video".
maxLength: 2000
temperaturenumberControls the randomness of the text output. Lower values produce more focused results. Defaults to 0.2.
Default: 0.2
minimum: 0 · maximum: 1
max_tokensintegerMaximum number of tokens to generate. If omitted, uses the model default.
minimum: 1 · maximum: 4096
Responses
200Video analyzed successfully+
application/json
textstringrequiredThe generated analysis text based on the video and prompt.
finish_reasonstring · enumnullablestop if the generation completed normally. length if truncated at the token limit.
Values: "stop", "length"
usageobjectnullableProperties for usage
output_tokensintegerNumber of tokens in the generated text.
400Validation failed — invalid or missing request body fields+
application/json
errorstringrequiredError message describing what went wrong
401Unauthorized — invalid or missing API key+
application/json
errorstringrequiredError message describing what went wrong
502Video analysis failed upstream+
application/json
errorstringrequiredError message describing what went wrong
Full specification
Download the OpenAPI file for complete schemas, constraints, and examples.
Download content.jsonView operation source
{
"description": "Analyze a video and answer questions about it. Pass a video URL and a text prompt — for example, \"Describe what happens\" or \"Rate the visual quality 1-10.\" Returns the generated text.",
"security": [
{
"apiKeyAuth": []
},
{
"bearerAuth": []
}
],
"requestBody": {
"description": "Video analysis parameters",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContentCreateAnalyzeRequest"
}
}
}
},
"responses": {
"200": {
"description": "Video analyzed successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContentCreateAnalyzeResponse"
}
}
}
},
"400": {
"description": "Validation failed — invalid or missing request body fields",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContentErrorResponse"
}
}
}
},
"401": {
"description": "Unauthorized — invalid or missing API key",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContentErrorResponse"
}
}
}
},
"502": {
"description": "Video analysis failed upstream",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContentErrorResponse"
}
}
}
}
}
}