image_search

Profile Pilot

api API & Developers

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.

dns

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_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
warning

Keep 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

POST /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)"
    }
  ]
}
GET /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
  }
}
GET /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.

sell View API Pricing

Ready to integrate?

Start converting images via API in minutes — get your free key and make your first request today.