Image conversion, built for code.
A simple REST API to convert images between 9 formats — PNG, JPEG, WebP, AVIF and more. Drop it into your platform, pipeline, or coding agent in minutes.
Base URL
https://profilepilot.io/api/v1
Authentication
Every request (except /health and
/formats) requires an API key. Create and manage keys in your
dashboard.
Pass it in the Authorization header (or X-API-Key):
Authorization: Bearer ick_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# or
X-API-Key: ick_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxKeep your key secret. It's shown only once at creation. Treat it like a password — never commit it to source control.
Quick start
Convert a single PNG to WebP. The response is the raw converted image by default.
curl -X POST "https://profilepilot.io/api/v1/convert" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "files[]=@photo.png" \
-F "format=webp" \
-F "quality=85" \
-o photo.webp
Endpoints
/api/v1/convert
Convert one or more uploaded images to a target format. Send as multipart/form-data.
Parameters
| Field | Type | Description |
|---|---|---|
| files[] | file | One or more image files. (Single field file also accepted.) Required. |
| format | string | Target format: jpeg, jpg, png, webp, avif, heic, tiff, bmp, ico. Required. |
| quality | int | 1–100 for lossy formats. Default 85. |
| strip_metadata | bool | Send 1 to remove EXIF/metadata. |
| response | string | binary (default, single file) or json for base64. Also settable as ?response=json. |
Returns
A single file with the default binary response returns the raw image bytes with the matching Content-Type. Batch requests (or ?response=json) return JSON:
{
"success": true,
"data": [
{
"filename": "photo.webp",
"format": "webp",
"bytes": 18244,
"width": 1200,
"height": 800,
"base64": "UklGR... (encoded image)"
}
]
}/api/v1/usage
Your current plan, monthly quota, and remaining conversions.
{
"success": true,
"data": {
"plan": "Free",
"monthly_quota": 100,
"used_this_month": 12,
"remaining": 88,
"rate_limit_per_min": 10,
"max_batch": 5
}
}/api/v1/formats
·
GET
/api/v1/health
Public (no key needed). /formats lists supported input/output formats and quality range; /health reports service status and encoder capabilities.
Response format
Successful JSON responses always include "success": true and a data object.
Errors return "success": false with a human-readable error message and the appropriate HTTP status code.
Error codes
| Status | Meaning |
|---|---|
| 400 | Bad request — missing/invalid format, no files, or batch too large. |
| 401 | Unauthorized — missing, invalid, or revoked API key. |
| 402 | Payment required — monthly quota exceeded. Upgrade your plan. |
| 415 | Unsupported media — the uploaded file is not a valid image. |
| 429 | Too many requests — per-minute rate limit hit. Retry after 60s. |
| 500 | Server error — conversion failed unexpectedly. |
Plans & pricing
Start free, upgrade as you grow. API plans are separate from the web converter plans.
Ready to integrate?
Start converting images via API in minutes — get your free key and make your first request today.