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.

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
  }'