ImagesWP
Image delivery API · v1

Your image pipeline is now a query string.

Upload your images or search ours, then serve any of them at any width, crop, quality and format by editing the URL. No build step, no variant storage, no worker to babysit.

5,000 requests a month on the free tier. No card.

GET
https://cdn.imageswp.com/v1/img_7f3a. ?w= &fit= &q=
Suspension bridge at sunset, rendered by the ImagesWP transform pipeline at the width, fit and quality selected above. img_7f3a · ImagesWP Open License
Output 1440 × 900
Content-Type image/avif
Transferred 26.0KB
Load time ms

83% smaller than the same frame as JPEG at q85.

Bytes and load time are measured in your browser, against the file that just loaded. cache: HIT · edge: iad1
34
Edge locations
12 ms
p50 cache hit
180 ms
p95 cold transform
Unlimited
Transforms per image
What it does

Three jobs, done at the edge.

Storage, transformation and delivery arrive as one product with one key. The parts you would normally glue together yourself are already glued.

Transform on request

Ask for ?w=800&fit=cover&format=avif and the edge renders that frame once, then serves it from cache. You never pre-generate a variant, never store one, and never write a resize job.

Negotiate the format

Send format=auto and every client gets the smallest thing it can decode — AVIF where it is supported, WebP next, JPEG as the floor. One URL in your markup, three formats on the wire.

Search a library you can ship

240,000 photographs from the ImagesWP collection, cleared for commercial use with attribution optional. Same key, same delivery URLs, same transform parameters as your own uploads.

GET /v1/images/search

Search it, then serve it.

Twelve frames from the collection. Filtering here runs in the page so you can feel the shape of a search response — in production the same query returns paginated JSON with a delivery URL on every result.

  • Suspension bridge at sunset 01 img_7f3a Suspension bridge at sunset
  • Volcanic ridge under haze 02 img_2c91 Volcanic ridge under haze
  • Studio portrait, soft key light 03 img_9e04 Studio portrait, soft key light
  • Laptop and notebook on oak 04 img_4b7d Laptop and notebook on oak
  • Laundry lines over a lane 05 img_a15e Laundry lines over a lane
  • Geothermal lagoon, steam rising 06 img_6d22 Geothermal lagoon, steam rising
  • Backlit meadow, lens flare 07 img_c380 Backlit meadow, lens flare
  • Succulent rosettes, overhead 08 img_1f56 Succulent rosettes, overhead
  • Fuselage on black sand 09 img_8ab3 Fuselage on black sand
  • Barn under a clear night sky 10 img_5e19 Barn under a clear night sky
  • Star trails above lichen rock 11 img_b742 Star trails above lichen rock
  • Cafe window light, silhouettes 12 img_3c68 Cafe window light, silhouettes
Integration

Two calls, then you are done.

Authenticate with a bearer token, search, and put the returned URL in your markup. Transform parameters are appended to that URL — there is no second SDK to learn.

SHELL
# 1. search the collection
curl -G "https://api.imageswp.com/v1/images/search" \
  -H "Authorization: Bearer $IMAGESWP_KEY" \
  -d "q=coastline" -d "per_page=12"

# 2. serve any result at any size, no second call
https://cdn.imageswp.com/v1/img_7f3a?w=1440&fit=cover
Response · 200 OK
JSON
{
  "id": "img_7f3a",
  "title": "Suspension bridge at sunset",
  "width": 4800,
  "height": 3200,
  "dominant_color": "#c8794b",
  "blurhash": "L9C%b0IU00~qofj[ayfQ4nWB",
  "tags": ["architecture", "travel"],
  "license": "ImagesWP Open License 1.0",
  "urls": {
    "raw":   "https://cdn.imageswp.com/v1/img_7f3a",
    "thumb": "https://cdn.imageswp.com/v1/img_7f3a?w=320"
  },
  "created_at": "2026-03-14T09:22:41Z"
}
Pricing

Pay for requests and bytes. Nothing else.

Every plan includes the full transform pipeline, the whole collection, and unlimited variants per image. Cropping a photograph six ways costs the same as cropping it once.

Free

$0

For side projects, prototypes and the first week of a real one.

Get a key
  • 5,000 requests / month
  • 10 GB egress / month
  • 500 stored images
  • Full collection access
  • 1 API key
Most teams

Pro

$49 / month

For a production application with real traffic and a marketing site attached.

Get a key
  • 250,000 requests / month
  • 500 GB egress / month
  • 50,000 stored images
  • Custom delivery domain
  • Signed URLs & referrer rules
  • 10 keys, email support

Scale

$249 / month

For catalogue, marketplace and media workloads where images are the product.

Talk to us
  • 2,000,000 requests / month
  • 5 TB egress / month
  • 1,000,000 stored images
  • Multi-region origin
  • 99.95% uptime SLA
  • Unlimited keys, priority support

Overage is metered, not blocked. Past your plan allowance: $0.40 per 10,000 requests and $0.02 per GB of egress, billed monthly. Transforms are never metered — a request for the fourth crop of a photograph costs exactly what the first one did.

Questions

The things developers ask first.

If yours is not here, send us a message — an engineer answers, usually the same day.

Where do the library photographs come from?

The collection is ours. We commission photography directly or acquire it outright, then release it under the ImagesWP Open License: commercial use is cleared, attribution is optional, and no model or property release is left for you to chase. We do not resell, mirror or proxy anyone else’s catalogue. Images you upload stay yours, stay private to your account, and never enter the collection.

Do I get billed for every transform?

No. Billing counts requests and egress. A transform is rendered once, cached at the edge with Cache-Control: public, max-age=31536000, immutable, and served from cache after that. Ten crops of one photograph cost the same as ten requests for any other file.

What happens when I hit the rate limit?

You get 429 Too Many Requests with a Retry-After header in seconds. Every response — not just the rejected ones — carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, so a well-behaved client never has to guess. Delivery URLs on the CDN are not rate limited; only the JSON API is.

Can I serve images from my own domain?

Yes, on Pro and Scale. Point a CNAME at edge.imageswp.com, add the hostname in your dashboard, and we issue and renew the certificate. Delivery URLs keep the same path and parameters, so switching over is a find-and-replace on the hostname.

How do I stop other sites hotlinking my images?

Two options, and you can run both. A referrer allowlist rejects requests from origins you have not listed. Signed URLs go further: append &exp= and &sig=, computed with your signing secret, and the edge refuses anything expired or tampered with. Signing is HMAC-SHA256 over the full path and query string.

What is the uptime story?

Delivery runs from 34 edge locations with origin failover across three regions; the JSON API runs active-active in two. Scale plans carry a 99.95% monthly SLA with service credits. Status and incident history are public, and we post a written post-mortem for anything that lasts longer than five minutes.

Start building

Your first 5,000 requests are free.

Keys are issued the same day. No card, no sales call, no minimum term — you get a key, a rate limit and the docs, and you ship.