Skip to main content

Base URL

https://api.vidjutsu.ai

Authentication

Most endpoints require an API key passed as a Bearer token in the Authorization header:
curl https://api.vidjutsu.ai/v1/accounts \
  -H "Authorization: Bearer vj_live_your_key_here"
Get your API key by subscribing with any card via Stripe.

Endpoints

Intelligence

Each intelligence endpoint has its own daily rate-limit bucket. Buckets are independent.
MethodEndpointDescriptionCalls / day
POST/v1/watchAI watches video, freeform prompt50
POST/v1/extractPull frames, audio, metadata100
POST/v1/transcribeSpeech-to-text with word timing30
POST/v1/checkValidate spec against rules100
POST/v1/compliance/videoScan a video against platform TOS20
POST/v1/compliance/promptScan text against platform TOS100
POST/v1/overlayBurn text overlay onto a video50
GET/v1/check/rulesLoad per-client custom rulesunmetered
PUT/v1/check/rulesSave per-client custom rulesunmetered

Storage

Storage endpoints are unmetered under your subscription.
MethodEndpointDescription
POST/v1/accountsCreate an account record
PUT/v1/accountsUpdate an account record
GET/v1/accountsList accounts (supports tag filtering)
DELETE/v1/accountsDelete an account
POST/v1/postsCreate a post record (200/day)
PUT/v1/postsUpdate a post record
GET/v1/postsList posts (supports tag filtering)
DELETE/v1/postsDelete a post
POST/v1/uploadUpload media to CDN (100/day)
POST/v1/upload/urlUpload from external URL
POST/v1/referencesCreate a reference record
PUT/v1/referencesUpdate a reference record
GET/v1/referencesList references (supports tag filtering)
DELETE/v1/referencesDelete a reference
POST/v1/assetsCreate an asset record
PUT/v1/assetsUpdate an asset record
GET/v1/assetsList assets (supports tag filtering)
DELETE/v1/assetsDelete an asset

Billing & Keys

MethodEndpointDescription
POST/v1/subscribeStart a subscription checkout session
GET/v1/credits/statusPoll checkout status, retrieve API key
GET/v1/usageRemaining daily capacity per endpoint
GET/v1/pricingCurrent pricing + limits table
POST/v1/api_keys/rotateRotate your API key
POST/v1/api_keys/recoverRecover a lost API key
GET/v1/infoAPI discovery + endpoint catalog

Tags

Accounts and posts support AWS-style key-value tags for organization and filtering:
{
  "tags": [
    { "key": "brand", "value": "summer-launch" },
    { "key": "region", "value": "northeast" }
  ]
}
Filter on GET requests: ?tag.brand=summer-launch

Response codes

CodeDescription
200Success (read operations, edits)
201Created (new records)
202Accepted (async operation started)
400Missing or invalid parameters
401Missing or invalid API key
403Subscription inactive or expired (subscription_required)
429Daily rate limit reached

Error format

All errors return a consistent JSON structure. On 429, the response includes retryAfter (seconds until the bucket resets at 00:00 UTC):
{
  "error": "rate_limited",
  "message": "Daily limit reached for watch (50/day). Resets at midnight UTC.",
  "limit": 50,
  "retryAfter": 14523
}

Synchronous responses

All intelligence endpoints return synchronous 200 responses with the result in the body. No polling required.

CORS

The API allows cross-origin requests from any origin. Allowed headers: Content-Type, Authorization.

Versioning

Responses include the VidJutsu-Version header indicating the current API version.