---
title: "Upload a photo and start a colorization or restoration"
method: POST
path: "/api/v1/jobs"
---

# Upload a photo and start a colorization or restoration

`POST /api/v1/jobs`

## Request

- Base URL: `https://api.recolorthepast.com`
- URL: `https://api.recolorthepast.com/api/v1/jobs`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://recolorthepast.com/oauth/authorize`, token URL `https://api.recolorthepast.com/oauth/token`, scopes: `photos`)

mode=preview renders a free, watermarked preview; mode=paid renders the full-resolution result and spends credits (see creditsCost).

## Response `201`

Job queued

- CreateJobResponse
  - `jobId` string, uuid, required
  - `imageId` string, uuid, required
  - `mode` 'preview' | 'paid', required
  - `status` 'queued' | 'leased' | 'processing' | 'succeeded' | 'failed', required
  - `creditsCost` integer, required

## Other responses

- `400`: Invalid upload or settings (e.g. feature_disabled, image_too_large)
- `401`: Missing, invalid or revoked credential
- `402`: insufficient_credits, preview_limit or spend_limit_reached (the credential's monthly cap)
- `403`: delegated_forbidden or insufficient_scope
- `413`: upload_too_large
- `429`: rate_limited

---

[API](https://skmtc.dev/recolorthepast/apis/recolor-the-past-ai-tools-and-developer-api.md) · [All operations](https://skmtc.dev/recolorthepast/apis/recolor-the-past-ai-tools-and-developer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/recolorthepast/apis/recolor-the-past-ai-tools-and-developer-api/revisions/c42019712c73?raw)
