// DOCS · RESPONSE SCHEMA
Job results.
When status is success, result is typed by the format you submitted. Omit format for VideoAnalysis, or set one of 24 workflow slugs — content-screening, creator-brief, and recipe ship with rich field tables below, and the full JSON Schema for every format (auto-generated from the Gemini contract in internal/gemini/formats) is listed in the schema reference. Responses echo format when set. Caches are isolated per format.
Shapes mirror internal/configs/formats.go and openapi.json. Submit and poll details: POST /v1/jobs.
VideoAnalysis (default)
Nested under result when format is omitted.
| Field | Type | Description |
|---|---|---|
| platform | string | Source platform: tiktok, instagram, or youtube. |
| url | string | Canonical resolved video URL. |
| title | string? | Video title when available. |
| author | string? | Creator display name. |
| authorHandle | string? | Creator handle (e.g. @username). |
| transcription | string | Spoken-word transcript from the audio track. |
| language | string? | Detected spoken language (ISO 639-1 code). |
| onScreenText | string? | Text visible on screen (overlays, captions). |
| visualDescription | string | Narrative summary of visual content. |
| scenes | Scene[]? | Timestamped scene breakdowns. |
| processedAt | string (RFC3339) | When the analysis was completed. |
Scene
Entries in the scenes array.
| Field | Type | Description |
|---|---|---|
| timestamp | string? | Scene start time (e.g. 0:08). |
| description | string | What happens in this scene. |
Example
{
"platform": "tiktok",
"url": "https://www.tiktok.com/@janecreates/video/7123456789",
"title": "How I grew my account in 30 days",
"author": "Jane Creator",
"authorHandle": "@janecreates",
"transcription": "Here's how I grew my account in 30 days...",
"language": "en",
"onScreenText": "Day 1 · Follow for more",
"visualDescription": "Creator speaking to camera in a home office, cuts to screen recording of analytics dashboard.",
"scenes": [
{
"timestamp": "0:00",
"description": "Talking head, direct to camera"
},
{
"timestamp": "0:08",
"description": "Screen recording of analytics dashboard"
}
],
"processedAt": "2026-05-20T12:34:56Z"
}Workflow formats
Same price as default analysis at launch. Each format uses its own Firestore cache key; switching format on the same URL requires a new paid job. The three formats below ship with full field tables. The full schema reference lower on this page lists the JSON Schema for every one of 24 formats. Full slug list: API workflow formats.
content-screening
Submit with "format": "content-screening". Brand-safety / UGC compliance for repost decisions.
| Field | Type | Description |
|---|---|---|
| safe | boolean | Overall brand-safety boolean. |
| riskLevel | string | low | medium | high. |
| flags | string[]? | Short labels for concerns (empty when none). |
| summary | string | Reviewer-facing summary. |
| recommendation | string | approve | review | reject. |
Example
{
"safe": true,
"riskLevel": "low",
"flags": [],
"summary": "Talking-head creator tips video with no violence, nudity, or substance use. Mild competitive language only.",
"recommendation": "approve",
"adPlacement": {
"suitable": true,
"riskLevel": "low",
"categories": [
"family_friendly"
],
"blocklistMatches": [],
"notes": "Suitable for broad programmatic placement."
}
}JSON Schema
{
"properties": {
"adPlacement": {
"properties": {
"blocklistMatches": {
"items": {
"type": "string"
},
"type": "array"
},
"categories": {
"items": {
"type": "string"
},
"type": "array"
},
"notes": {
"type": "string"
},
"riskLevel": {
"enum": [
"low",
"medium",
"high"
],
"type": "string"
},
"suitable": {
"type": "boolean"
}
},
"required": [
"suitable",
"riskLevel",
"notes"
],
"type": "object"
},
"flags": {
"items": {
"type": "string"
},
"type": "array"
},
"recommendation": {
"enum": [
"approve",
"review",
"reject"
],
"type": "string"
},
"riskLevel": {
"enum": [
"low",
"medium",
"high"
],
"type": "string"
},
"safe": {
"type": "boolean"
},
"summary": {
"type": "string"
}
},
"required": [
"safe",
"riskLevel",
"summary",
"recommendation",
"adPlacement"
],
"type": "object"
}creator-brief
Submit with "format": "creator-brief". Hooks, angle, and key moments for creator intelligence workflows.
| Field | Type | Description |
|---|---|---|
| hook | string | Opening hook or headline angle. |
| angle | string | Content positioning / theme. |
| summary | string | Short narrative summary. |
| keyMoments | BriefKeyMoment[]? | Timestamped beats worth citing. |
| cta | string? | Call to action if present. |
| transcriptExcerpt | string? | Representative spoken excerpt. |
BriefKeyMoment
| Field | Type | Description |
|---|---|---|
| timestamp | string? | Moment time (e.g. 0:22). |
| note | string | Why this moment matters. |
Example
{
"hook": "I grew 50k followers in 30 days without paid ads.",
"angle": "Organic growth through consistent short-form hooks",
"summary": "Creator walks through a three-step content system: hook formula, posting cadence, and analytics review.",
"keyMoments": [
{
"timestamp": "0:03",
"note": "States the 30-day growth claim"
},
{
"timestamp": "0:22",
"note": "Shows analytics dashboard spike"
}
],
"cta": "Follow for the full playbook",
"transcriptExcerpt": "Here's how I grew my account in 30 days without spending on ads.",
"vetting": {
"contentThemes": [
"creator growth",
"social media"
],
"tone": "energetic, instructional",
"audienceFit": "aspiring creators and marketers",
"brandRiskFlags": [],
"partnershipRecommendation": "approve"
}
}JSON Schema
{
"properties": {
"angle": {
"type": "string"
},
"cta": {
"type": "string"
},
"hook": {
"type": "string"
},
"keyMoments": {
"items": {
"properties": {
"note": {
"type": "string"
},
"timestamp": {
"type": "string"
}
},
"required": [
"note"
],
"type": "object"
},
"type": "array"
},
"summary": {
"type": "string"
},
"transcriptExcerpt": {
"type": "string"
},
"vetting": {
"properties": {
"audienceFit": {
"type": "string"
},
"brandRiskFlags": {
"items": {
"type": "string"
},
"type": "array"
},
"contentThemes": {
"items": {
"type": "string"
},
"type": "array"
},
"partnershipRecommendation": {
"enum": [
"approve",
"review",
"reject"
],
"type": "string"
},
"tone": {
"type": "string"
}
},
"required": [
"contentThemes",
"tone",
"audienceFit",
"partnershipRecommendation"
],
"type": "object"
}
},
"required": [
"hook",
"angle",
"summary",
"vetting"
],
"type": "object"
}recipe
Submit with "format": "recipe". Structured ingredients and steps when the short is a cooking video.
| Field | Type | Description |
|---|---|---|
| title | string | Recipe title. |
| error | string | null | Set when the video is not a recipe (otherwise null). |
| ingredients | RecipeIngredient[] | item, amount, unit per ingredient. |
| instructions | RecipeInstruction[] | step number and text. |
| metadata | RecipeMetadata | prep/cook time, yield, cuisine, temperature, etc. |
Example
{
"title": "30-second pasta carbonara",
"error": null,
"ingredients": [
{
"item": "spaghetti",
"amount": "200",
"unit": "g"
},
{
"item": "guanciale",
"amount": "100",
"unit": "g"
},
{
"item": "egg yolks",
"amount": "3",
"unit": null
},
{
"item": "pecorino",
"amount": "50",
"unit": "g"
}
],
"instructions": [
{
"step": 1,
"text": "Boil pasta in salted water until al dente."
},
{
"step": 2,
"text": "Crisp guanciale in a pan; reserve fat."
},
{
"step": 3,
"text": "Toss hot pasta with egg-pecorino mixture off heat."
}
],
"metadata": {
"prepTime": "10 minutes",
"cookTime": "15 minutes",
"temperature": {
"value": null,
"unit": "C",
"fanAdjusted": false
},
"yield": "2 servings",
"mealType": "dinner",
"dishType": "main",
"cuisine": "Italian",
"dietaryPreferences": null,
"cookingMethod": "stovetop",
"isQuickAndEasy": true
}
}JSON Schema
{
"properties": {
"error": {
"type": [
"string",
"null"
]
},
"ingredients": {
"items": {
"properties": {
"amount": {
"type": [
"string",
"null"
]
},
"item": {
"type": "string"
},
"unit": {
"type": [
"string",
"null"
]
}
},
"required": [
"item"
],
"type": "object"
},
"type": "array"
},
"instructions": {
"items": {
"properties": {
"step": {
"type": "integer"
},
"text": {
"type": "string"
}
},
"required": [
"step",
"text"
],
"type": "object"
},
"type": "array"
},
"metadata": {
"properties": {
"cookTime": {
"type": [
"string",
"null"
]
},
"cookingMethod": {
"type": [
"string",
"null"
]
},
"cuisine": {
"type": [
"string",
"null"
]
},
"dietaryPreferences": {
"type": [
"string",
"null"
]
},
"dishType": {
"type": [
"string",
"null"
]
},
"isQuickAndEasy": {
"type": [
"boolean",
"null"
]
},
"mealType": {
"type": [
"string",
"null"
]
},
"prepTime": {
"type": [
"string",
"null"
]
},
"temperature": {
"properties": {
"fanAdjusted": {
"type": "boolean"
},
"unit": {
"enum": [
"C",
"F"
],
"type": "string"
},
"value": {
"type": [
"number",
"null"
]
}
},
"required": [
"unit",
"fanAdjusted"
],
"type": "object"
},
"yield": {
"type": [
"string",
"null"
]
}
},
"required": [
"temperature"
],
"type": "object"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"error",
"ingredients",
"instructions",
"metadata"
],
"type": "object"
}Full schema reference
JSON Schema for every workflow format, grouped by vertical and auto-generated from internal/gemini/formats — the same schema Gemini is constrained to via responseJsonSchema. Regenerate with task export-format-schemas. The three formats above are repeated here for completeness; scroll up for their richer field tables.
Verticals: Brand (2) · Food (1) · Content (2) · E-commerce (3) · Health (2) · Education (3) · News (3) · Music (3) · Sports (3) · Travel (2).
Brand(2)
content-screening
"format": "content-screening"Brand safety, UGC compliance, ad-placement suitability
{
"properties": {
"adPlacement": {
"properties": {
"blocklistMatches": {
"items": {
"type": "string"
},
"type": "array"
},
"categories": {
"items": {
"type": "string"
},
"type": "array"
},
"notes": {
"type": "string"
},
"riskLevel": {
"enum": [
"low",
"medium",
"high"
],
"type": "string"
},
"suitable": {
"type": "boolean"
}
},
"required": [
"suitable",
"riskLevel",
"notes"
],
"type": "object"
},
"flags": {
"items": {
"type": "string"
},
"type": "array"
},
"recommendation": {
"enum": [
"approve",
"review",
"reject"
],
"type": "string"
},
"riskLevel": {
"enum": [
"low",
"medium",
"high"
],
"type": "string"
},
"safe": {
"type": "boolean"
},
"summary": {
"type": "string"
}
},
"required": [
"safe",
"riskLevel",
"summary",
"recommendation",
"adPlacement"
],
"type": "object"
}creator-brief
"format": "creator-brief"Hooks, angle, key moments, influencer vetting
{
"properties": {
"angle": {
"type": "string"
},
"cta": {
"type": "string"
},
"hook": {
"type": "string"
},
"keyMoments": {
"items": {
"properties": {
"note": {
"type": "string"
},
"timestamp": {
"type": "string"
}
},
"required": [
"note"
],
"type": "object"
},
"type": "array"
},
"summary": {
"type": "string"
},
"transcriptExcerpt": {
"type": "string"
},
"vetting": {
"properties": {
"audienceFit": {
"type": "string"
},
"brandRiskFlags": {
"items": {
"type": "string"
},
"type": "array"
},
"contentThemes": {
"items": {
"type": "string"
},
"type": "array"
},
"partnershipRecommendation": {
"enum": [
"approve",
"review",
"reject"
],
"type": "string"
},
"tone": {
"type": "string"
}
},
"required": [
"contentThemes",
"tone",
"audienceFit",
"partnershipRecommendation"
],
"type": "object"
}
},
"required": [
"hook",
"angle",
"summary",
"vetting"
],
"type": "object"
}Food(1)
recipe
"format": "recipe"Ingredients and steps from cooking clips
Note: the worker strips reasoning from the Gemini output before persisting, so it never appears in result.
{
"properties": {
"error": {
"type": [
"string",
"null"
]
},
"ingredients": {
"items": {
"properties": {
"amount": {
"type": [
"string",
"null"
]
},
"item": {
"type": "string"
},
"unit": {
"type": [
"string",
"null"
]
}
},
"required": [
"item"
],
"type": "object"
},
"type": "array"
},
"instructions": {
"items": {
"properties": {
"step": {
"type": "integer"
},
"text": {
"type": "string"
}
},
"required": [
"step",
"text"
],
"type": "object"
},
"type": "array"
},
"metadata": {
"properties": {
"cookTime": {
"type": [
"string",
"null"
]
},
"cookingMethod": {
"type": [
"string",
"null"
]
},
"cuisine": {
"type": [
"string",
"null"
]
},
"dietaryPreferences": {
"type": [
"string",
"null"
]
},
"dishType": {
"type": [
"string",
"null"
]
},
"isQuickAndEasy": {
"type": [
"boolean",
"null"
]
},
"mealType": {
"type": [
"string",
"null"
]
},
"prepTime": {
"type": [
"string",
"null"
]
},
"temperature": {
"properties": {
"fanAdjusted": {
"type": "boolean"
},
"unit": {
"enum": [
"C",
"F"
],
"type": "string"
},
"value": {
"type": [
"number",
"null"
]
}
},
"required": [
"unit",
"fanAdjusted"
],
"type": "object"
},
"yield": {
"type": [
"string",
"null"
]
}
},
"required": [
"temperature"
],
"type": "object"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"error",
"ingredients",
"instructions",
"metadata"
],
"type": "object"
}Content(2)
tutorial-guide
"format": "tutorial-guide"How-to videos → written guide / FAQ
Note: the worker strips reasoning from the Gemini output before persisting, so it never appears in result.
{
"properties": {
"faq": {
"items": {
"properties": {
"answer": {
"type": "string"
},
"question": {
"type": "string"
}
},
"required": [
"question",
"answer"
],
"type": "object"
},
"type": "array"
},
"sections": {
"items": {
"properties": {
"body": {
"type": "string"
},
"heading": {
"type": "string"
},
"steps": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"heading",
"body"
],
"type": "object"
},
"type": "array"
},
"summary": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"summary",
"sections"
],
"type": "object"
}quote-highlights
"format": "quote-highlights"Shareable quotes and highlight moments
{
"properties": {
"highlights": {
"items": {
"properties": {
"context": {
"type": "string"
},
"quote": {
"type": "string"
},
"shareability": {
"enum": [
"low",
"medium",
"high"
],
"type": "string"
},
"timestamp": {
"type": "string"
}
},
"required": [
"quote",
"shareability"
],
"type": "object"
},
"type": "array"
},
"summary": {
"type": "string"
}
},
"required": [
"highlights",
"summary"
],
"type": "object"
}E-commerce(3)
product-tagging
"format": "product-tagging"Products shown with search queries
{
"properties": {
"products": {
"items": {
"properties": {
"brandGuess": {
"type": [
"string",
"null"
]
},
"category": {
"type": "string"
},
"confidence": {
"enum": [
"low",
"medium",
"high"
],
"type": "string"
},
"name": {
"type": "string"
},
"productDescription": {
"type": "string"
},
"searchQuery": {
"type": "string"
},
"timestamp": {
"type": "string"
}
},
"required": [
"name",
"category",
"searchQuery",
"confidence"
],
"type": "object"
},
"type": "array"
},
"summary": {
"type": "string"
}
},
"required": [
"summary",
"products"
],
"type": "object"
}shop-the-look
"format": "shop-the-look"Fashion items and outfit search queries
{
"properties": {
"outfitItems": {
"items": {
"properties": {
"brandGuess": {
"type": [
"string",
"null"
]
},
"category": {
"type": "string"
},
"color": {
"type": [
"string",
"null"
]
},
"item": {
"type": "string"
},
"searchQuery": {
"type": "string"
},
"timestamp": {
"type": "string"
}
},
"required": [
"item",
"category",
"searchQuery"
],
"type": "object"
},
"type": "array"
},
"searchQueries": {
"items": {
"type": "string"
},
"type": "array"
},
"styleNotes": {
"type": "string"
}
},
"required": [
"styleNotes",
"searchQueries",
"outfitItems"
],
"type": "object"
}review-summary
"format": "review-summary"Pros/cons from product review videos
{
"properties": {
"cons": {
"items": {
"type": "string"
},
"type": "array"
},
"productName": {
"type": [
"string",
"null"
]
},
"pros": {
"items": {
"type": "string"
},
"type": "array"
},
"ratingGuess": {
"type": [
"string",
"null"
]
},
"verdict": {
"type": "string"
}
},
"required": [
"pros",
"cons",
"verdict"
],
"type": "object"
}Health(2)
workout-plan
"format": "workout-plan"Exercises with sets, reps, rest
Note: the worker strips reasoning from the Gemini output before persisting, so it never appears in result.
{
"properties": {
"exercises": {
"items": {
"properties": {
"name": {
"type": "string"
},
"notes": {
"type": "string"
},
"reps": {
"type": "string"
},
"rest": {
"type": "string"
},
"sets": {
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"type": "array"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"exercises"
],
"type": "object"
}health-claims
"format": "health-claims"Medical claims flagged for fact-checking
{
"properties": {
"claims": {
"items": {
"properties": {
"category": {
"type": "string"
},
"needsFactCheck": {
"type": "boolean"
},
"suggestedChecks": {
"items": {
"type": "string"
},
"type": "array"
},
"text": {
"type": "string"
},
"timestamp": {
"type": "string"
}
},
"required": [
"text",
"category",
"needsFactCheck"
],
"type": "object"
},
"type": "array"
},
"overallRisk": {
"enum": [
"low",
"medium",
"high"
],
"type": "string"
},
"summary": {
"type": "string"
}
},
"required": [
"summary",
"overallRisk",
"claims"
],
"type": "object"
}Education(3)
flashcards
"format": "flashcards"Study flashcards from educational content
{
"properties": {
"cards": {
"items": {
"properties": {
"back": {
"type": "string"
},
"front": {
"type": "string"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"front",
"back"
],
"type": "object"
},
"type": "array"
},
"deckTitle": {
"type": "string"
}
},
"required": [
"deckTitle",
"cards"
],
"type": "object"
}language-learning
"format": "language-learning"Phrases, vocabulary, grammar patterns
{
"properties": {
"grammarNotes": {
"items": {
"type": "string"
},
"type": "array"
},
"phrases": {
"items": {
"properties": {
"text": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"translation": {
"type": "string"
}
},
"required": [
"text",
"translation"
],
"type": "object"
},
"type": "array"
},
"targetLanguage": {
"type": "string"
},
"vocabulary": {
"items": {
"properties": {
"meaning": {
"type": "string"
},
"partOfSpeech": {
"type": "string"
},
"word": {
"type": "string"
}
},
"required": [
"word",
"meaning"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"phrases",
"vocabulary",
"grammarNotes"
],
"type": "object"
}News(3)
ugc-verification
"format": "ugc-verification"Scene/location hints for citizen journalism checks
{
"properties": {
"eventHints": {
"items": {
"type": "string"
},
"type": "array"
},
"locationHints": {
"items": {
"type": "string"
},
"type": "array"
},
"sceneDescription": {
"type": "string"
},
"verificationSteps": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"sceneDescription",
"locationHints",
"eventHints",
"verificationSteps"
],
"type": "object"
}breaking-news-signal
"format": "breaking-news-signal"Newsworthiness signal from one clip
{
"properties": {
"needsFactCheck": {
"type": "boolean"
},
"newsworthiness": {
"enum": [
"low",
"medium",
"high"
],
"type": "string"
},
"summary": {
"type": "string"
},
"topics": {
"items": {
"type": "string"
},
"type": "array"
},
"urgency": {
"enum": [
"low",
"medium",
"high"
],
"type": "string"
}
},
"required": [
"newsworthiness",
"urgency",
"topics",
"summary",
"needsFactCheck"
],
"type": "object"
}eyewitness-timeline
"format": "eyewitness-timeline"Structured timeline of factual claims
{
"properties": {
"events": {
"items": {
"properties": {
"category": {
"type": "string"
},
"claim": {
"type": "string"
},
"source": {
"enum": [
"visual",
"speech",
"both"
],
"type": "string"
},
"time": {
"type": "string"
}
},
"required": [
"claim",
"category",
"source"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"events"
],
"type": "object"
}Music(3)
song-context
"format": "song-context"Background music / performance for licensing
{
"properties": {
"detectedAudio": {
"items": {
"properties": {
"description": {
"type": "string"
},
"licensingNotes": {
"type": "string"
},
"role": {
"enum": [
"background",
"performance",
"unknown"
],
"type": "string"
},
"timestamp": {
"type": "string"
}
},
"required": [
"role",
"description"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"detectedAudio"
],
"type": "object"
}lyric-hook
"format": "lyric-hook"Lip-sync, hooks, rights notes
{
"properties": {
"hooks": {
"items": {
"properties": {
"description": {
"type": "string"
},
"label": {
"type": "string"
},
"timestamp": {
"type": "string"
}
},
"required": [
"label",
"description"
],
"type": "object"
},
"type": "array"
},
"lyricExcerpt": {
"type": [
"string",
"null"
]
},
"performanceType": {
"enum": [
"lip_sync",
"live_performance",
"background_track",
"unknown"
],
"type": "string"
},
"rightsNotes": {
"type": "string"
}
},
"required": [
"performanceType",
"hooks",
"rightsNotes"
],
"type": "object"
}sound-trend
"format": "sound-trend"Audio description and viral potential
{
"properties": {
"audioDescription": {
"type": "string"
},
"trendTags": {
"items": {
"type": "string"
},
"type": "array"
},
"viralPotential": {
"enum": [
"low",
"medium",
"high"
],
"type": "string"
}
},
"required": [
"audioDescription",
"viralPotential",
"trendTags"
],
"type": "object"
}Sports(3)
technique-analysis
"format": "technique-analysis"Coaching cues for technique clips
Note: the worker strips reasoning from the Gemini output before persisting, so it never appears in result.
{
"properties": {
"cues": {
"items": {
"type": "string"
},
"type": "array"
},
"improvements": {
"items": {
"type": "string"
},
"type": "array"
},
"sport": {
"type": "string"
},
"strengths": {
"items": {
"type": "string"
},
"type": "array"
},
"technique": {
"type": "string"
}
},
"required": [
"sport",
"technique",
"cues",
"strengths",
"improvements"
],
"type": "object"
}highlight-reel
"format": "highlight-reel"Action-dense clip timestamps
{
"properties": {
"clips": {
"items": {
"properties": {
"actionScore": {
"type": "integer"
},
"end": {
"type": "string"
},
"label": {
"type": "string"
},
"start": {
"type": "string"
}
},
"required": [
"start",
"end",
"actionScore",
"label"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"clips"
],
"type": "object"
}scouting-report
"format": "scouting-report"Athlete performance notes for coaches
{
"properties": {
"athlete": {
"type": [
"string",
"null"
]
},
"metrics": {
"items": {
"properties": {
"name": {
"type": "string"
},
"notes": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"name",
"value"
],
"type": "object"
},
"type": "array"
},
"recommendation": {
"enum": [
"follow_up",
"pass",
"highlight"
],
"type": "string"
},
"sport": {
"type": "string"
},
"summary": {
"type": "string"
}
},
"required": [
"sport",
"metrics",
"summary",
"recommendation"
],
"type": "object"
}Travel(2)
destination-guide
"format": "destination-guide"Itinerary, tips, costs from travel vlogs
{
"properties": {
"costMentions": {
"items": {
"type": "string"
},
"type": "array"
},
"destination": {
"type": "string"
},
"itinerary": {
"items": {
"properties": {
"activity": {
"type": "string"
},
"notes": {
"type": "string"
},
"place": {
"type": "string"
},
"timestamp": {
"type": "string"
}
},
"required": [
"place",
"activity"
],
"type": "object"
},
"type": "array"
},
"tips": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"destination",
"itinerary",
"tips",
"costMentions"
],
"type": "object"
}restaurant-discovery
"format": "restaurant-discovery"Dishes, prices, atmosphere from food reviews
{
"properties": {
"atmosphere": {
"type": "string"
},
"dishes": {
"items": {
"properties": {
"description": {
"type": "string"
},
"name": {
"type": "string"
},
"priceMention": {
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"type": "array"
},
"priceMentions": {
"items": {
"type": "string"
},
"type": "array"
},
"venueName": {
"type": [
"string",
"null"
]
}
},
"required": [
"dishes",
"priceMentions",
"atmosphere"
],
"type": "object"
}// LIMITATIONS
Formats analyse a single short-form video. E-commerce formats return searchQuery strings, not purchase URLs. Health, news, and verification formats flag claims for review — they do not assert that claims are true. Feed-scale monitoring is achieved by orchestrating many jobs.