We’ll be back soon!
Sorry for the inconvenience but we’re performing some maintenance at the moment. If you need to you can always contact us, otherwise we’ll be back online shortly!
— The Team
Programmatically submit long-form videos, generate viral short clips, retrieve AI captioning, and seamlessly integrate automated video processing directly into your SaaS or enterprise product.
Integrate robust AI video processing directly into your core product, creator dashboard, or internal publishing pipeline.
Submit long-form YouTube URLs or direct video file upload references programmatically.
Extract high-engagement short-form video clips configured to specific target durations.
Generate vertical 9:16 clips for TikTok, Shorts, and Reels, or custom square/landscape dimensions.
Apply automated subtitle generation paired with modern visual templates and custom styling.
Poll job status or receive instant webhook notifications as processing completes.
Pass finished clip metadata directly to your social media scheduler or internal database.
Four simple steps to integrate Vshorts.ai into your application workflow.
Contact team@vshorts.ai with your business use case, expected monthly volume, and technical requirements.
Upon review, obtain secure API keys, complete documentation, base endpoints, and rate-limit details.
Send a POST request containing your target source video and custom clipping parameters.
Check status via GET requests to obtain ready-to-use MP4 URLs, thumbnails, and timing data.
Secure backend communications protocol for developers.
All API requests should be directed to the standard HTTPS base endpoint:
* This endpoint is shown for demonstration purposes. Approved customers will receive their dedicated production endpoint details.
The Vshorts.ai API uses Bearer Token authentication. Include your secret API key in the request headers:
Authorization: Bearer YOUR_VSHORTS_API_KEY
Content-Type: application/json
Submit long-form videos for automated short-clip generation.
const response = await fetch(
"https://api.vshorts.ai/v1/videos/process",
{
method: "POST",
headers: {
"Authorization": "Bearer YOUR_VSHORTS_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
source_type: "youtube",
source_url: "https://www.youtube.com/watch?v=EXAMPLE_VIDEO_ID",
clip_duration: 45,
clip_count: 3,
aspect_ratio: "9:16",
language: "auto",
template: "modern_caption",
generate_captions: true
})
}
);
if (!response.ok) {
throw new Error(`Request failed: ${response.status}`);
}
const data = await response.json();
console.log(data);
import requests
url = "https://api.vshorts.ai/v1/videos/process"
headers = {
"Authorization": "Bearer YOUR_VSHORTS_API_KEY",
"Content-Type": "application/json"
}
payload = {
"source_type": "youtube",
"source_url": "https://www.youtube.com/watch?v=EXAMPLE_VIDEO_ID",
"clip_duration": 45,
"clip_count": 3,
"aspect_ratio": "9:16",
"language": "auto",
"template": "modern_caption",
"generate_captions": True
}
response = requests.post(
url,
headers=headers,
json=payload,
timeout=60
)
response.raise_for_status()
print(response.json())
curl --request POST \
--url https://api.vshorts.ai/v1/videos/process \
--header "Authorization: Bearer YOUR_VSHORTS_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"source_type": "youtube",
"source_url": "https://www.youtube.com/watch?v=EXAMPLE_VIDEO_ID",
"clip_duration": 45,
"clip_count": 3,
"aspect_ratio": "9:16",
"language": "auto",
"template": "modern_caption",
"generate_captions": true
}'
{
"source_type": "youtube",
"source_url": "https://www.youtube.com/watch?v=EXAMPLE_VIDEO_ID",
"clip_duration": 45,
"clip_count": 3,
"aspect_ratio": "9:16",
"language": "auto",
"template": "modern_caption",
"generate_captions": true
}
{
"success": true,
"job_id": "job_vs_8f31c942",
"status": "queued",
"message": "Video processing job created successfully.",
"created_at": "2026-08-05T12:00:00Z"
}
| Field | Type | Description |
|---|---|---|
| success | boolean | Indicates if the job request was accepted successfully. |
| job_id | string | Unique identifier used to query processing progress and retrieve clips. |
| status | string | Current job state (queued, processing, completed, failed). |
| message | string | Human-readable status or confirmation message. |
| created_at | string (ISO 8601) | Timestamp indicating when the processing job was initiated. |
Retrieve live progress updates or final video download links.
const jobId = "job_vs_8f31c942";
const response = await fetch(
`https://api.vshorts.ai/v1/jobs/${jobId}`,
{
method: "GET",
headers: {
"Authorization": "Bearer YOUR_VSHORTS_API_KEY"
}
}
);
if (!response.ok) {
throw new Error(`Unable to fetch job status: ${response.status}`);
}
const job = await response.json();
console.log(job);
{
"success": true,
"job_id": "job_vs_8f31c942",
"status": "processing",
"progress": 62,
"current_step": "Generating captions",
"updated_at": "2026-08-05T12:04:22Z"
}
{
"success": true,
"job_id": "job_vs_8f31c942",
"status": "completed",
"progress": 100,
"clips": [
{
"clip_id": "clip_01",
"duration": 43.8,
"aspect_ratio": "9:16",
"download_url": "https://example.vshorts.ai/generated/clip_01.mp4",
"thumbnail_url": "https://example.vshorts.ai/generated/clip_01.jpg"
}
],
"completed_at": "2026-08-05T12:08:10Z"
}
Standardized HTTP response codes and error reporting structure.
{
"success": false,
"error": {
"code": "INVALID_VIDEO_URL",
"message": "The supplied video URL is invalid or unsupported."
},
"request_id": "req_vs_52c91f"
}
job_id records immediately in your database for asynchronous tracking.429 and temporary 5xx states.request_id value in any technical queries submitted to team@vshorts.ai.Full reference of supported parameters for custom job requests.
| Parameter | Type | Example | Description |
|---|---|---|---|
| source_type | string | "youtube" | Type of source input (youtube or upload_ref). |
| source_url | string | "https://..." | Valid video URL or accessible media reference. |
| clip_duration | integer | 45 | Target clip length in seconds (e.g. 15, 30, 45, 60). |
| clip_count | integer | 3 | Number of individual short clips to produce. |
| aspect_ratio | string | "9:16" | Target dimensions (9:16, 16:9, 1:1). |
| language | string | "auto" | Audio transcription language or automatic detection. |
| template | string | "modern_caption" | Visual preset styling applied to subtitle renders. |
| generate_captions | boolean | true | Toggle automatic animated caption overlays. |
Discover how teams leverage the Vshorts.ai API at scale.
Embed automated viral clipping capabilities directly into your creator tool suites and video editors.
Allow users to generate ready-to-publish short video content automatically within their scheduling feeds.
Transform multi-hour video podcasts into dozens of engaging vertical clips immediately after broadcast.
Generate short product demos and video highlights programmatically from webinars and long-form collateral.
Streamline agency production by automating initial cutdowns, visual framing, and subtitles.
Build custom internal web portals for quick turnarounds on enterprise video assets.
Please prepare the following application details when reaching out to our team.
Contact our engineering team to review your use case, receive production credentials, and request custom volume pricing.
Email usOur team will review your application and respond with custom integration specifications.
Legal & Compliance Disclaimer: All API endpoints, request bodies, sample responses, identifiers, URLs, rate limits, and feature parameters shown on this page are provided strictly for demonstration purposes and do not guarantee immediate availability of production functionality. Production API credentials, access tokens, and sandbox access are granted strictly following manual authorization by Vshorts.ai. API clients are required to comply with all applicable copyright laws, user privacy regulations, and third-party platform policies. Vshorts.ai reserves the right to enforce account rate limits, content moderation rules, and usage verification procedures prior to granting or continuing API access.
Sorry for the inconvenience but we’re performing some maintenance at the moment. If you need to you can always contact us, otherwise we’ll be back online shortly!
— The Team