- Cloud builds — connect your GitHub repository or Perforce depot and Streampixel compiles, packages, and (optionally) deploys on every push. No build machine, no scripts. If your pipeline exists only to package and upload, use this and skip the rest of this page.
- Your own CI/CD — you keep compiling on your existing pipeline (Jenkins, GitLab CI, TeamCity, Buildkite — anything that can run Unreal’s packaging step), host the packaged
.zipat a direct-download URL, and hand that URL to the Upload File API.
build.approved webhook, then distributes it to streaming servers. No manual dashboard steps.
Architecture
The CI job is fire-and-forget. Approval and distribution are handled out-of-band by a tiny webhook listener — that decoupling is what lets the build pipeline take 5 minutes or 50 minutes without holding a CI worker open.Prerequisites
Step 1 — Package the build in your pipeline
The packaging step is the same command you’d run locally, scripted on your CI worker:Step 2 — Host the .zip at a direct-download URL
Upload the archive to your storage and produce an HTTPS URL that returns the file directly — no login page, no HTML wrapper. With S3-compatible storage, a time-limited presigned URL is ideal:
Step 3 — Register the build with Streampixel
The last CI step hands the URL to the Upload File API:autoRelease: false means Streampixel won’t deploy automatically — the webhook listener (Step 4) decides when to call distribute. Also worth enforcing at the CI level: run only one shipping job at a time. Distribution is rate-limited to 1 call per 2 minutes per user, and queueing builds in your pipeline keeps you under that ceiling without retries.
Step 4 — Webhook listener
The CI job ends after upload. Streampixel processes the build asynchronously and emits webhook events:build.uploaded, downloading, extracting, saving, then approved or rejected.
When build.approved fires, you call distribute. Here is a minimal Express listener:
https://your-host.example.com/webhooks/streampixel/9f3a4c1ee21b4f2c as your project’s webhook URL in the dashboard.
Handling rate limits
The distribute endpoint is rate-limited to one call per two minutes per user. The listener above handles this naively — if you ever ship two builds within two minutes (rare in production, common during testing), the second one will fail and stay un-distributed. A robust queue:uploadId onto distributeQueue from the webhook handler instead of calling distribute inline.
Tips
Gotchas
Direct-download URL means direct-download URL
Direct-download URL means direct-download URL
Google Drive share links, Dropbox preview pages, and any URL that returns HTML before the file will fail upload. The endpoint streams the response body as a ZIP and gives up if the first bytes are not a valid archive header. Presigned URLs and public bucket URLs work; HTML wrappers do not. See file URL requirements.
Webhook URL must be public HTTPS
Webhook URL must be public HTTPS
During development, use ngrok or Cloudflare Tunnel:Register the
https://...ngrok.app/webhooks/streampixel/<token> URL in the dashboard. Keep the tunnel up while you test — Streampixel does not retry failed deliveries.No webhook signature verification
No webhook signature verification
Streampixel does not currently sign webhook payloads. Treat your webhook URL as a shared secret: include a long random token in the path, and reject requests at any other path. See Security hardening for more.
Idempotency
Idempotency
build.approved should fire once per upload, but make your handler idempotent anyway. The distributed Set above is fine for a single-process listener; use a database or Redis if you run multiple replicas.Build size and presigned URL expiry
Build size and presigned URL expiry
The default build cap is 24 GB (a soft limit — open a ticket to raise it for free if your build is genuinely larger). A 1-hour presigned URL is usually plenty, but if you ship very large builds while ingestion is queued, bump it to 6 hours.
Next steps
Cloud builds
The managed alternative — no pipeline to maintain.
Upload File API
Full request/response reference for the upload endpoint.
Webhooks
All seven webhook events and their payloads.
Distribute File API
Push an approved build to streaming servers.