Fast to integrate
One POST request with your image — get a processed photo back in seconds. No SDK to install.
Key-based auth
A single Bearer token scoped to your account. Regenerate or revoke it anytime from your dashboard.
Same models as the app
The exact plate-detection and blurring models powering CarFlow AI — production-grade, not a demo.
No separate billing
API calls draw from your existing credit balance, billed the same way as the app.
Documentation
Blur license plates
Endpoint
POST
https://api.carflowai.com/v1/blur-platescurl -X POST https://api.carflowai.com/v1/blur-plates \-H "Authorization: Bearer sk_live_your_key" \-F "[email protected]" \-F "style=blur" \-o result.jpg
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
image | file | Yes | The car photo to process. |
style | string | No | blur (default), pixelate, white, or black. |
Response
| Status | Content-Type | Body |
|---|---|---|
| 200 | image/jpeg | The processed photo, as raw image bytes. |
| 4xx / 500 | application/json | { error, code } — see Error codes below. |
Replace plate with a custom design
Endpoint
POST
https://api.carflowai.com/v1/plate-logocurl -X POST https://api.carflowai.com/v1/plate-logo \-H "Authorization: Bearer sk_live_your_key" \-F "[email protected]" \-F "[email protected]" \-o result.jpg# Or reuse a design you already saved in your Assets library instead of# re-uploading it every call — pass its id, not a file:curl -X POST https://api.carflowai.com/v1/plate-logo \-H "Authorization: Bearer sk_live_your_key" \-F "[email protected]" \-F "logoAssetId=your-saved-asset-id" \-o result.jpg
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
image | file | Yes | The car photo to process. |
logoorlogoAssetId | file or string | Yes — exactly one of the two | The plate design. Either upload the file directly (logo), or reference one already saved in your Assets library by id (logoAssetId) to avoid re-uploading it every call. |
Response
| Status | Content-Type | Body |
|---|---|---|
| 200 | image/jpeg | The processed photo, as raw image bytes. |
| 4xx / 500 | application/json | { error, code } — see Error codes below. |
Add a shadow under the car
Endpoint
POST
https://api.carflowai.com/v1/car-shadowcurl -X POST https://api.carflowai.com/v1/car-shadow \-H "Authorization: Bearer sk_live_your_key" \-F "[email protected]" \-F "reflection=false" \-o result.png
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
image | file | Yes | The car photo. A transparent PNG cutout is used as is; any other photo is cut out first. |
reflection | boolean | No | true adds a floor reflection under the shadow (beta). Default false. |
Response
| Status | Content-Type | Body |
|---|---|---|
| 200 | image/png | The processed photo, as raw image bytes. |
| 4xx / 500 | application/json | { error, code } — see Error codes below. |
Cut out car
Coming soonEndpoint
POST
https://api.carflowai.com/v1/xxxxxxxxxxxcurl -X POST https://api.carflowai.com/v1/cutout \-H "Authorization: Bearer sk_live_your_key" \-F "[email protected]" \-o result.png
Logo on photo
Coming soonEndpoint
POST
https://api.carflowai.com/v1/xxxxxxxxxxxcurl -X POST https://api.carflowai.com/v1/logo-overlay \-H "Authorization: Bearer sk_live_your_key" \-F "[email protected]" \-F "logoAssetId=your-saved-asset-id" \-o result.jpg
Blur plates on video
Coming soonEndpoint
POST
https://api.carflowai.com/v1/xxxxxxxxxxxcurl -X POST https://api.carflowai.com/v1/blur-video \-H "Authorization: Bearer sk_live_your_key" \-F "[email protected]" \-o result.mp4
Error codes
| 401 | invalid_api_key | Missing, invalid, or revoked API key |
| 402 | insufficient_credits | Not enough credits and no pay-as-you-go enabled |
| 429 | rate_limited | More than 60 requests/minute for this key |
| 400 | unknown_tool / missing_image / invalid_params | Unknown tool, missing image, or invalid parameters |
| 500 | processing_failed | Processing failed on our side — not charged |
Pay-as-you-go billing is coming soon — for now, API calls are billed from your existing credit balance.