review=true, lyrcs.ai holds the results until an artist or rights holder approves them. After alignment completes, a job.awaiting_review webhook fires with a review_url that the distributor sends to the artist.
Flow overview
1
Submit with review=true
Distributor calls
POST /transcribe with review: true and a webhook_url.2
Transcription and alignment run
lyrcs.ai transcribes and time-aligns the audio. This takes ~90 seconds.
3
job.awaiting_review fires
A
job.awaiting_review webhook delivers a review_url and expires_at timestamp to the distributor’s webhook endpoint.4
Distributor routes review_url to artist
The distributor sends the URL to the artist by email or their own platform.
5
Artist approves
The artist visits the review URL, checks the lyrics in the lyrcs.ai Studio, and clicks Approve.
6
job.complete fires
After approval, a
job.complete webhook delivers the full results including transcript, transliteration, translation, and download URLs.Review URL
Thereview_url has the form:
- The
job.awaiting_reviewwebhook payload GET /api/v1/jobs/{id}response (underreview_url) once alignment is complete
Webhook payloads
job.awaiting_review — fires after alignment:review_required on job response
When a job was submitted withreview=true, these fields appear on GET /api/v1/jobs/{id}:
review_approved_at is set to an ISO timestamp once the artist approves.
Known limitations
- The
job.completewebhook fired after artist approval uses single-attempt delivery — it does not retry on failure, unlike the standard auto-align webhook flow which retries at +1 min, +5 min, +30 min. review_urlis null until alignment completes (typically ~90s after submission).