Video Inference

AI detection for videos

Video Inference

post
/video

Video AI detection - Analyze if a video is AI-generated.

Processes videos entirely in memory with zero data retention. Supports MP4, AVI, MOV formats up to 500 MB.

Authentication: OAuth JWT or Organization API Key in Authorization header.

mTLS (optional): If your client requires mTLS, also include X-Client-Cert header.

Authorizations
AuthorizationstringRequired

Primary authentication method - Required for all endpoints except /health.

Three Authentication Methods:

1. OAuth 2.0 Client Credentials (Recommended)

Get token:

curl -X POST https://enterprise.bitmind.ai/v1/oauth/token \
  -d "grant_type=client_credentials" \
  -d "client_id=YOUR_ID" \
  -d "client_secret=YOUR_SECRET"

Use token:

Authorization: Bearer eyJhbGciOiJSUzI1NiJ9...
  • Token lifetime: 1 hour
  • Fast local JWT verification (<1ms)
  • Recommended for all M2M integrations

2. OAuth + mTLS (High Security)

Get token (certificate replaces secret):

curl -X POST https://enterprise.bitmind.ai/v1/oauth/token \
  -H "X-Client-Cert: $(base64 -w 0 client.crt)" \
  -d "grant_type=client_credentials" \
  -d "client_id=YOUR_ID"

Use token + certificate:

Authorization: Bearer eyJhbGc...
X-Client-Cert: LS0tLS1CRUdJTi...
  • Certificate authenticates token request (no client_secret)
  • Certificate also required on all API calls
  • Required for government/healthcare/financial clients
  • Complies with RFC 8705

3. Organization API Key (Legacy)

Authorization: Bearer enterprise-YOUR_API_KEY
  • Long-lived until revoked
  • No token refresh needed
  • Simple but less secure than OAuth
Header parameters
X-Client-Certstring · byteOptional

For mTLS clients only: Base64-encoded client certificate. Required only when your client has requires_mtls=true.

Body
videostring · binaryRequired

Video file

Responses
200

Video inference results

application/json
post
/video
POST /video HTTP/1.1
Host: enterprise.bitmind.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 18

{
  "video": "binary"
}
{
  "isAI": false,
  "confidence": 0.2891,
  "processingTime": 1.234
}

Last updated