Quickstart

API quickstart

Base URL https://api.ollanode.com. Every request is scoped to your project by the bearer token.

1 ยท Authenticate

Exchange username/password for a bearer session token (12h). Use it as Authorization: Bearer <token> on every call. Machine clients use an API key instead (Settings โ†’ API Keys).

curl -X POST https://api.ollanode.com/v1/auth/login \
  -H 'content-type: application/json' \
  -d '{"username":"demo","password":"********"}'
# โ†’ { "token": "...", "user": { ... } }

2 ยท Create a video

Create a record (then upload), or pass source_url to ingest from the web automatically.

curl -X POST https://api.ollanode.com/v1/videos \
  -H "authorization: Bearer $TOKEN" -H 'content-type: application/json' \
  -d '{"title":"launch.mp4","source_url":"https://.../launch.mp4"}'

3 ยท Direct upload

For local files: request a presigned URL, PUT the bytes, then mark it complete.

# 1) presigned target
curl -X POST https://api.ollanode.com/v1/videos/$VIDEO_ID/upload-url \
  -H "authorization: Bearer $TOKEN" -d '{"content_type":"video/mp4"}'
# 2) upload the bytes
curl -X PUT "$PRESIGNED_URL" -H 'content-type: video/mp4' --data-binary @launch.mp4
# 3) start processing
curl -X POST https://api.ollanode.com/v1/videos/$VIDEO_ID/upload-complete -H "authorization: Bearer $TOKEN"

4 ยท Play it back

When status is "ready", fetch a playback URL (token-gated for signed videos) or embed the player.

curl https://api.ollanode.com/v1/videos/$VIDEO_ID/playback -H "authorization: Bearer $TOKEN"
# โ†’ { "master_url": "...m3u8", "token": "...", "subtitles": [...] }

<iframe src="https://api.ollanode.com/embed/$VIDEO_ID?token=$TOKEN"></iframe>

5 ยท Webhooks

Subscribe to events (video.asset.ready, video.asset.errored). Deliveries are HMAC-signed and retried.

curl -X POST https://api.ollanode.com/v1/webhooks \
  -H "authorization: Bearer $TOKEN" -H 'content-type: application/json' \
  -d '{"url":"https://you/hook","events":["video.asset.ready"]}'

Full endpoint reference: videos, zones (CDN), api-keys, users, webhooks, analytics, usage โ€” all under /v1.