Integration examples

This minimal workflow uses placeholders, not real project credentials. Public requests still require a signature for the actual request body.

Submit, query, and stop

Prepare request.json:

{
  "type": 1,
  "video": "https://media.example.com/video.mp4",
  "extra": {
    "bizId": "sample-10001"
  }
}
export APP_ID="replace-with-project-id"
export REQUEST_TIMESTAMP="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
export REQUEST_AUTHORIZATION="replace-with-signature-for-this-request"
curl --request POST \
  "https://vsafe.ilivedata.com/api/v1/video/check/submit" \
  --header "Content-Type: application/json" \
  --header "X-AppId: ${APP_ID}" \
  --header "X-TimeStamp: ${REQUEST_TIMESTAMP}" \
  --header "Authorization: ${REQUEST_AUTHORIZATION}" \
  --data-binary @request.json

Save result.taskId from the response. To query, use {"taskId":"the actual returned task ID"} with /api/v1/video/check/result, then recompute the signature for the new path, body, and timestamp. See the live submission, query, and stop APIs.

Receive callbacks

Verify the fixed signature fixture before connecting a receiver; see callback verification code, fixtures, and acknowledgments.

Sample repositories for other languages

These repositories illustrate calling patterns; current documentation defines fields and behavior. Repository code is not validated release by release with this page.

Language Repository
Java GitHub
C# GitHub
Go GitHub
Python GitHub
C++ GitHub
Node.js GitHub
PHP GitHub