Skip to main content
Creating a review is fire-and-forget: you get a review_id back immediately, the review processes asynchronously, and Flightline notifies you the moment it reaches a terminal state. The flow is create, get notified, read the report.

1. Create a review

Attach the full case package when you create the review. A single archive is the recommended shape; individual PDFs/images are also accepted for smaller submissions.
Upload a full case archive directly with multipart/form-data:
The response returns the created review immediately, with status: "processing":
Accepted case packages: .zip, .tar, .tar.gz, and .tgz. Inside the package, include PDFs and common image files (.png, .jpg/.jpeg, .tif/.tiff, .webp, .gif, .bmp). RAR/7z archives, nested archives, executables, scripts, Office files, spreadsheets, email containers, and password-protected or corrupt archives are not accepted.

2. Get notified when it completes

Recommended: webhooks. Register a webhook endpoint once, then handle the review.completed event (plus review.failed and review.amended). When review.completed arrives, verify the signature and fetch the report. No polling required. See Webhooks for registration and signature verification.
Fallback: polling. If your environment cannot receive webhooks, poll GET /reviews/{review_id} and read status, which moves through queued, processing, then completed or failed. Use exponential backoff (for example 2s, 4s, 8s, capped around 30s) rather than a tight loop. The review is ready when report_available is true.

3. Read the report

report_pdf_url is a fresh, short-lived (5 minute) download URL for the current released report PDF; request this endpoint again to get a new one after it expires or after an amendment. The report endpoint returns 404 while the review is still processing and 422 if it failed, so results never leak before the review is finished.

In your language

Create the review, then let the review.completed webhook tell you it is ready (see Webhooks for the handler and signature check):
Prefer webhooks over polling in production: you skip the poll loop entirely and find out the moment a review finishes.