Download OpenAPI specification:
TruffleTV's API enables advanced, privacy-first contextual targeting for Connected TV (CTV) advertising. Key features include scene-level precision, multimodal AI analysis, emotional resonance targeting, dynamic ad creative optimization, flexible taxonomy-free targeting, in-video object and facial analysis, brand and logo recognition, activity and behaviour recognition, advanced speech and sound analysis, product recognition, attention and gaze tracking, cross-platform content matching, and holistic multimodal analysis.
Analyze a video asset using multimodal AI (visual, audio, text) to extract scene-level context, emotional resonance, abstract concepts, and more for targeting.
| contentId required | string |
| videoUrl required | string <uri> |
required | object |
{- "contentId": "string",
- "metadata": {
- "title": "string",
- "description": "string",
- "genre": [
- "string"
]
}
}| id required | string |
{- "contentId": "string",
- "scenes": [
- {
- "sceneId": "string",
- "startTime": "string",
- "endTime": "string",
- "multimodalInsights": {
- "visualTags": [
- "string"
], - "audioTags": [
- "string"
], - "textSummary": "string",
- "detectedBrands": [
- "string"
], - "detectedProducts": [
- "string"
]
}, - "emotionalResonance": {
- "emotion": "joy",
- "confidence": 0.1
}, - "abstractConcepts": [
- "family bonding"
]
}
]
}Analyze a video asset to detect and localize objects frame-by-frame or scene-by-scene. Returns bounding boxes, object classes, and timestamps for each detected object.
| contentId required | string |
| videoUrl required | string <uri> |
| detectionClasses | Array of strings Optional list of object classes to detect (e.g., ["car", "logo"]) |
{- "contentId": "string",
- "detectionClasses": [
- "string"
]
}| id required | string |
{- "contentId": "string",
- "detectedObjects": [
- {
- "objectId": "string",
- "class": "car",
- "confidence": 0.1,
- "boundingBox": {
- "xMin": 0.1,
- "yMin": 0.1,
- "xMax": 0.1,
- "yMax": 0.1
}, - "timeOffset": "12.5s",
- "instanceId": 0
}
]
}Analyze a video asset to detect faces, their bounding boxes, and facial attributes such as emotion, age group, and presence of glasses or headwear.
| contentId required | string |
| videoUrl required | string <uri> |
| includeAttributes | boolean Default: true Whether to include facial attributes (emotion, glasses, etc.) |
{- "contentId": "string",
- "includeAttributes": true
}| id required | string |
{- "contentId": "string",
- "detectedFaces": [
- {
- "faceId": "string",
- "boundingBox": {
- "xMin": 0.1,
- "yMin": 0.1,
- "xMax": 0.1,
- "yMax": 0.1
}, - "timeOffset": "12.5s",
- "attributes": {
- "emotion": "happy",
- "glasses": true,
- "headwear": true,
- "ageGroup": "adult",
- "gender": "female"
}
}
]
}Analyze a video asset to detect and localize brands/logos, providing bounding boxes, brand names, and confidence scores for each occurrence.
| contentId required | string |
| videoUrl required | string <uri> |
{- "contentId": "string",
}| id required | string |
{- "contentId": "string",
- "detectedBrands": [
- {
- "brandName": "string",
- "confidence": 0.1,
- "boundingBox": {
- "xMin": 0,
- "yMin": 0,
- "xMax": 0,
- "yMax": 0
}, - "timeOffset": "12.5s"
}
]
}Identifies actions such as product use, engagement, or custom behaviors in video scenes using advanced action recognition models.
| contentId required | string |
| videoUrl required | string <uri> |
| actionTypes | Array of strings Optional list of action types to detect (e.g., ["product_use", "engagement"]) |
{- "contentId": "string",
- "actionTypes": [
- "string"
]
}Transcribes speech, detects brand mentions, analyzes sentiment, and recognizes key sounds for contextual targeting and brand safety.
| contentId required | string |
| audioUrl required | string <uri> |
{- "contentId": "string",
}| id required | string |
{- "contentId": "string",
- "transcript": "string",
- "brandMentions": [
- {
- "brandName": "string",
- "timeOffset": "string"
}
], - "sentiment": "positive",
- "keySounds": [
- "applause"
]
}Identifies and localizes specific product models in video scenes for shoppable ad experiences.
| contentId required | string |
| videoUrl required | string <uri> |
{- "contentId": "string",
}{- "contentId": "string",
- "detectedProducts": [
- {
- "productName": "string",
- "productModel": "string",
- "confidence": 0.1,
- "boundingBox": {
- "xMin": 0,
- "yMin": 0,
- "xMax": 0,
- "yMax": 0
}, - "timeOffset": "string"
}
]
}Analyzes video content to predict viewer attention, generate heatmaps, and provide gaze/focus metrics for optimizing ad placement and layout.
| contentId required | string |
| videoUrl required | string <uri> |
{- "contentId": "string",
}Matches and tracks video content across multiple platforms/channels to monitor reuse, reach, and performance.
| contentId required | string |
| videoUrl required | string <uri> |
| platforms | Array of strings Optional list of platforms/channels to match against |
{- "contentId": "string",
- "platforms": [
- "string"
]
}| id required | string |
{- "contentId": "string",
- "matches": [
- {
- "platform": "string",
- "matchScore": 0.1,
- "matchedSegment": {
- "startTime": "string",
- "endTime": "string"
}, - "performanceMetrics": {
- "views": 0,
- "engagement": 0.1
}
}
]
}Query for scenes or content segments matching abstract concepts (e.g., "family bonding"), emotional states, or logical context, without relying on predefined taxonomies.
| concept required | string Abstract concept or context to target (e.g., "family bonding", "competition") |
| emotion | string Target emotional state (optional) |
| confidenceThreshold | number <float> Default: 0.7 |
{- "concept": "string",
- "emotion": "string",
- "confidenceThreshold": 0.7
}{- "matches": [
- {
- "contentId": "string",
- "sceneId": "string",
- "startTime": "string",
- "endTime": "string",
- "confidence": 0.1,
- "matchedConcepts": [
- "string"
], - "matchedEmotion": "string"
}
]
}Automatically adapt ad creatives to fit the detected tone, context, and emotional resonance of a given scene.
| creativeId required | string |
required | object |
{- "creativeId": "string",
- "sceneContext": {
- "sceneId": "string",
- "multimodalInsights": {
- "visualTags": [
- "string"
], - "audioTags": [
- "string"
], - "emotion": "string"
}
}
}{- "creativeId": "string",
- "recommendedVariants": [
- {
- "variantId": "string",
- "description": "string",
- "adaptationType": "tone-matching",
}
]
}