REST API

Video search, indexing, and exports for your own product

Use VidScanner from your backend to upload footage, index visual and spoken evidence, run natural-language searches, export clips, and read usage against your plan limits.

Authentication

API requests require a server-side bearer token created from the authenticated API console. Browser session JWTs are rejected on/v1/api/*routes.

Authorization header
Authorization: Bearer vsk_live_YOUR_API_KEY

Direct uploads

Signed upload URLs keep large files out of your app server.

Multimodal search

Query visual evidence, spoken transcript, or combined matches.

Usage-aware

Plan limits, overages, and rate limits apply consistently.

Core endpoints

The public API lives under /v1/api and uses API-key auth only.

Version 1
POST
/v1/api/videos/upload-url

Create a signed URL for direct-to-storage video upload.

POST
/v1/api/videos

Finalize an uploaded video and queue indexing/transcription.

GET
/v1/api/videos

List videos in the authenticated account.

POST
/v1/api/search

Search videos by visual query, transcript query, or both.

POST
/v1/api/exports

Queue a downloadable clip export from a source video.

GET
/v1/api/usage

Return current plan usage and API rate-limit context.

Rate limits and plan capacity

API keys inherit the authenticated account plan. Rate limits are enforced per API key in fixed one-minute windows, and keys that exceed their plan receive 429 responses until the next window. Uploads, indexing, storage, exports, and overages use the same limits shown in the dashboard.

Trial
10 requests/min
20 indexed minutes, 2 GB storage, 3 exports
Starter
60 requests/min
150 indexed minutes, 25 GB storage, 25 exports
Pro
300 requests/min
750 indexed minutes, 150 GB storage, 150 exports
Business
1,200 requests/min
2,000 indexed minutes, 500 GB storage, fair-use exports

Search example

Combined search returns evidence where the visual query and audio query align in time.

curl -X POST https://vidscanner.com/v1/api/search \
  -H "Authorization: Bearer vsk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "search_mode": "combined",
    "video_query": "a red backpack entering the lobby",
    "audio_query": "visitor badge"
  }'

Upload example

After uploading bytes to the signed URL, finalize the video to queue indexing.

curl -X POST https://vidscanner.com/v1/api/videos/upload-url \
  -H "Authorization: Bearer vsk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "inspection.mp4",
    "content_type": "video/mp4",
    "size_bytes": 10485760
  }'