Programmable clip workflows.
Upload a source file, receive a project ID, then poll status or use a completion webhook. Build clip workflows with Auto or Questions & answers. Check job availability before submitting a recording.
# Set W2L_API_KEY in your environment. Keep it server-side.
curl --fail-with-body https://www.web2labs.com/api/v1/projects/upload \
-H "X-API-Key: $W2L_API_KEY" \
-F 'studioJobId=best-moments' \
-F 'mode=clips' \
-F '[email protected]' \
-F 'configuration={"subtitle":true,"renderConfig":{"autoRenderAfterEdit":true}}'
# Save data.projectId and data.pollUrl from the response.
# Poll every 5 seconds using the returned project ID.
curl --fail-with-body https://www.web2labs.com/api/v1/projects/PROJECT_ID/status \
-H "X-API-Key: $W2L_API_KEY"
# After completed, fetch results; downloads also need X-API-Key.
curl --fail-with-body https://www.web2labs.com/api/v1/projects/PROJECT_ID/results \
-H "X-API-Key: $W2L_API_KEY"Sign in to generate a key. Reading the docs and reference does not require an account.
Sign in to view your Creator Credit balance. API and Studio usage spend the same balance.
How a job flows
Use bounded polling for progress and failures; a completion webhook can notify your service when delivery finishes.Upload
Send a multipart request with your source file
no chargeProcess
Studio runs the selected configuration asynchronously
meteredObserve
Poll the status URL or receive your project webhook
asyncDeliver
Read results, then fetch authenticated download URLs
on completionBuild a reliable integration
Know what to send, when to wait, and how to recover.01 / Choose an available job
Call GET /api/v1/preset-availability with your key. Use a job whose availability is AVAILABLE and check its supported source categories.
The quickstart requests Auto with studioJobId=best-moments and mode=clips. Q&A uses questions-and-answers. Full-video editing, script matching and unreleased jobs remain Coming Soon.
These are clip workflows: a completed response may have mainVideo: null. Download the entries in data.clips (shorts is a compatibility alias). No fixed clip count is promised.
02 / Poll with a deadline
Save the project ID immediately. Poll status about every 5 seconds, with a deadline appropriate to your recording. Fetch results after completed; stop and inspect error after failed.
A non-null pausedReason needs attention in Studio, such as a credit top-up and resume. manual may require review. Do not wait forever or submit the same recording again.
API keys share an account limit: Creator 60 requests/minute, other tiers 30. Status also has a 10 requests/10 seconds limit. On 429, wait for Retry-After and add jitter. Polling counts against both limits.
03 / Verify completion webhooks
Send webhookUrl (public HTTPS) and a random webhookSecret of 16–512 characters with your upload. Never reuse your API key as the secret.
Verify X-Web2Labs-Webhook-Signature: sha256= plus the hex HMAC-SHA256 of timestamp + "." + rawBody. Use the timestamp header, a constant-time comparison and a short replay window.
Deduplicate by X-Web2Labs-Webhook-Id, queue the work, then return 2xx promptly. Delivery attempts up to 3 times, with a 10-second timeout each. Only project.completed is emitted; keep polling as a recovery path.
04 / Keep your delivered files
Result URLs are authenticated API URLs. Send X-API-Key on every download and store the files in your own storage before retentionTimeRemaining.expiresAt. This service is not permanent file hosting.
Check the JSON error code as well as HTTP status: 400 invalid input, 401 invalid or expired key, 402 insufficient credits, 409 conflicting state, 410 unavailable assets, 503 unavailable worker.
Upload creation has no idempotency-key support. After an uncertain response, reconcile your project list before another POST. Use chunked upload for large files; the full reference documents initialization and each chunk.
Need higher throughput, a customer processing agreement or deployment-specific assurances? Credit purchases do not increase request limits. Contact us about your integration
Reference
Full OpenAPI/api/v1/preset-availabilityDiscover available jobs and supported sources/api/v1/projects/uploadUpload a recording for an available clip job/api/v1/projects/{id}/statusPoll project status and progress/api/v1/projects/{id}/resultsList completed output assets/api/v1/projects/{id}/download/shorts/{clipId}Download an authorized clip with your API key/api/v1/creditsRead the unified Creator Credit balance/api/v1/pricingRead the current pricing contractHTTP clients
The REST contract works with standard HTTP tools; no Web2Labs SDK is required.Node.js 22+ · no Web2Labs SDK requiredpip install requestsNo Web2Labs SDK requiredCredit contract
One spendable currency across Studio and API. Read the live detail from GET /api/v1/pricing.| Operation | Credits | Rate |
|---|---|---|
| Source video processing | 1 | 1 cr/source min |
| Drafts, uploads, and activation | Free | free |
| Webhook delivery | Free | free |
| Jobs refused before delivery | Free | fully refunded |
Top up credits
Paid plans can buy the same non-expiring Creator Credit bundles used in Studio.Bundles are temporarily unavailable.
