Introduction
The WayinVideo API enables everyone to integrate AI-powered video processing into their automation workflows. Submit a video URL or uploaded file, and receive AI-generated clips, summaries, transcripts, and more.
Key Capabilities
- AI Clipping: Submit a long video and receive all clips ranked by viral potential, with auto-detected start/end timestamps, AI-generated titles, descriptions, and hashtags. Optionally export rendered clip videos.
- Find Moments: Describe the moments you want in natural language — such as "funny moments" or "talking about some topic" — and the API finds and extracts matching clips with timestamps, titles, and descriptions. Optionally export rendered clip videos.
- Video Summarization: Generate a structured overview, hashtags, and timeline highlights from any video.
- Video Transcription: Extract transcripts with speaker identification from video or audio content.
Supported Video Sources
The API accepts URLs from the following platforms:
- YouTube
- Vimeo
- Dailymotion
- Kick
- Rumble
- Zoom
- Twitch
- TikTok
More platforms are coming soon.
You can also use locally uploaded files. See the Upload API for details.
Base URL
All API requests are made to:
https://wayinvideo-api.wayin.ai/api/v2
Request Format
The API is RESTful and accepts JSON-formatted request bodies. All requests must include the following headers:
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
x-wayinvideo-api-version: v2
Response Format
Success (HTTP 200)
When the request succeeds, the API returns HTTP status 200 and a JSON body containing only the payload in data:
{
"data": {
"project_id": "prj06928fdjqqaza",
"name": "Sample project name",
"status": "SUCCEEDED"
}
}
The structure of data varies by endpoint; see each API’s documentation for details. For error responses and other HTTP status codes, see Status Codes.
Status Lifecycle
Many endpoints return an asynchronous processing status. The lifecycle is:
CREATED → QUEUED → ONGOING → SUCCEEDED / FAILED
Use polling to check the status until it reaches SUCCEEDED or FAILED. When a task fails, the response data includes an error_message field describing the reason.