Quick Start

Upload an image, get a URL. The URL always serves your image from a global CDN, and query params resize, crop, or convert it on the fly.

Base URL https://test.api.img.pro/v1

Upload

Open Apps, create an App, then open its Keys page and choose New key. Save the key shown once. Send a file to POST /v1/images:

Request
bash
curl -X POST "https://test.api.img.pro/v1/images" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@photo.jpg"
Response
json
{
  "id": "abc12345",
  "url": "https://test.src.img.pro/4j2/abc12345.jpg",
  "page_url": "https://test.img.pro/abc12345",
  "sizes": {
    "small":  { "url": "https://test.src.img.pro/4j2/abc12345.jpg?size=s", "width": 426,  "height": 320 },
    "medium": { "url": "https://test.src.img.pro/4j2/abc12345.jpg?size=m", "width": 853,  "height": 640 },
    "large":  { "url": "https://test.src.img.pro/4j2/abc12345.jpg?size=l", "width": 1440, "height": 1080 }
  },
  "width": 4000,
  "height": 3000,
  "status": "ready"
}

url is the image itself: a direct CDN URL you can drop into an <img> tag. page_url is the viewer page, the link you send to a person. That’s the short version; the full shape is in The Image object.

Prefer to import from a URL? Send JSON instead of a file and the same Image object comes back:

Request
bash
curl -X POST "https://test.api.img.pro/v1/images" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/photo.jpg"}'
Keep your key server-side. The first key is fixed to your bucket. To access connected users, enable connections and issue a separate App-wide key from Keys, then use X-Img-User to select a connected user. See Authentication. New buckets default to private viewer pages; send public: true to share a public page. CDN links continue to serve private images.

Transform

Add query params to the image’s url. A named size is the quickest:

text
https://test.src.img.pro/4j2/abc12345.jpg?size=m

The sizes object gives you three ready-made variants: small, medium, and large, included on every plan. A social/OG card is one request away too (?size=social, 1200×630). For exact dimensions, formats, background removal, or effects, see Transformations.

Next steps

That’s the whole loop. Where to go from here:

  • Authentication: App keys, fixed-bucket keys, and optional connected-user selection.
  • API Reference: every endpoint: list, get, update, delete, batch, usage.
  • Transformations: the full set of URL parameters.
  • OpenAPI spec: every endpoint with schemas, for typed clients and agents.