---
title: "Upload Video"
method: POST
path: "/v2/videos"
tags: ["Video Emotion API"]
---

# Upload Video

`POST /v2/videos`

Analyze emotions and facial expressions from video content.

Submit a video from multiple sources and receive detailed emotion analysis
of all detected faces throughout the video timeline.

**Input Sources:**
- **YouTube**: Provide any YouTube video URL
- **Cloud Storage**: Dropbox, Google Drive, or other cloud service links
- **Social Media**: Instagram, Facebook, Twitter (X) videos
- **Direct URL**: Any publicly accessible video link
- **File Upload**: Upload video files directly from your device

**Analyze Specific Segments:**
Focus on specific portions using `start_millis` and `end_millis` parameters.
This helps target key moments and optimize credit usage.

**How It Works:**
1. Submit your video and receive an immediate response with a video ID
2. Video is queued for processing (typically completes within minutes)
3. Optionally receive a webhook notification via `callback_url` when complete
4. Retrieve results using the video ID

**Supported Formats:**
MP4, AVI, MOV, WebM, MPEG

**Credit Usage:**
Processing is billed at a **base** rate of 1 credit per second of analyzed
video duration (Professional and Enterprise plans: 0.5 credits per second).
This base rate is **discounted** when speech-analysis stages are disabled —
turning off `transcription`, `diarization`, and/or `text_emotion`
lowers the per-second rate (the discount is anchored to the audio-track share
of the rate). A reduced `processing_fps` tier discounts the rate separately.
Discounts are applied before the credit is computed on the floored duration
(rounded to whole seconds).

## Response `200`

Successful Response

- VideoEmotionResponseV2 — V2 response model for video emotion detection with URL source tracking. Supports: - YouTube URLs - Cloud storage URLs (Dropbox, direct URLs, etc.) - Social Media URLs (Instagram Reels, Facebook videos/reels, Twitter/X status videos) - Time parameters for all URL types - URL source tracking Attributes: id (str): Unique ID of the video. title (str): Title of the video. status (str): Processing status (queue, processing, done, etc.). duration (int): Duration in seconds (trimmed duration if time params provided). media_source (str): Source type ("youtube", "dropbox", "instagram", "facebook", "twitter", "public_url", "file_upload"). media_source_url (str): Full URL as provided by user. user_id (str): ID of the user who uploaded the video. created_at (Optional[str]): Timestamp when video was created.
  - `id` string, required
  - `title` string, required
  - `status` string, required
  - `duration` integer, required
  - `media_source` string, required
  - `media_source_url` string, required
  - `user_id` string, required
  - `created_at` string, nullable
  - `processing_fps` integer, nullable
  - `diarization` boolean, nullable
  - `text_emotion` boolean, nullable
  - `transcription` boolean, nullable
  - `speaker_count` integer, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/imentiv/apis/welcome-to-imentiv-ai.md) · [All operations](https://skmtc.net/imentiv/apis/welcome-to-imentiv-ai/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/imentiv/welcome-to-imentiv-ai/revisions/350e9cbcb623/schema)
