Restorations
/v1/restorations The /v1/restorations resource lets you create and manage photo restoration jobs. Jobs are processed asynchronously — submit a job, then poll for its status or receive a webhook when it completes.
Create a restoration
Request body
| Field | Type | Required | Description |
|---|---|---|---|
image_url | string | Yes | Public HTTPS URL of the photo to restore (max 20 MB) |
preset | string | No | Restoration preset: standard | enhance | colorize | portrait. Default: standard. |
resolution | string | No | Output resolution: 1k | 2k | 4k. Default: 1k. |
remove_frame | boolean | No | Remove photo frame/border before restoring. Default: false. |
colorize | boolean | No | Apply AI colorization. Default: false. |
callback_url | string | No | HTTPS webhook URL to call when the job completes. Must be publicly reachable. |
idempotency_key | string | No | Client-supplied key (max 255 chars). Re-sending the same key returns the existing restoration instead of creating a duplicate. |
Example request
Response — 202 Accepted
List restorations
Returns your 50 most recent restorations, newest first.
Example
Response — 200 OK
Get a restoration
Returns the current state of a single restoration job.
Status values
| Status | Description |
|---|---|
analyzing | Job created, queued for processing |
processing | AI model is running |
complete | Complete — output_url is populated |
failed | Processing failed — credits refunded |
expired | Output deleted per retention policy |
Delete a restoration
Deletes the restoration record and its associated blob storage. Only restorations in complete or failed status can be deleted. Credits are not refunded for deletions.
Response — 200 OK
Webhooks
If you supply a callback_url when creating a restoration, PicRenew will POST a JSON payload to that URL when the job reaches a terminal status ( complete or failed). The request includes a 10-second timeout.
Payload
Your endpoint should return a 2xx status. PicRenew retries up to 3 times with exponential backoff on non-2xx or network errors.
Output expiry
Restoration outputs are stored for 90 days for free accounts. Subscriber accounts have permanent storage. Expired restorations show status expired and have a null output_url.