// VERSUS · IMAGEKIT

No DAM, no video, no SDK. A leaner, more specialized API.

ImageKit is the full platform — DAM, video, SDK per runtime, and a Pro tier that bundles bandwidth + DAM storage on one invoice. img apis is the leaner pick: no DAM, no video, no SDK. A URL API with a /info bundle (palette + BlurHash + metadata in one round-trip), /grid composition for 2–5 sources, background removal at a disclosed credit cost, an account-level default mark that auto-applies across every endpoint on Pro+, idempotent credits and bandwidth bundled flat — built for apps that already have storage and delivery solved.

You like ImageKit but you keep paying for DAM features you do not use, an SDK you do not need, and AI tagging you never enabled. You want a thin URL API: intelligence in one call, composition without templates, marks that travel with the asset, and one flat invoice.

Pick us when

Pick img apis when leanness and one flat invoice are the wedge.

  • Pure URL DX — no SDK to pin, no auth header to manage, no dashboard config before the first request.
  • You need palette + BlurHash + metadata in a single /info call, with WCAG-paired contrast on every swatch.
  • First-class /grid composition for 2–5 sources, plus /placeholder endpoints that render BlurHash or color tiles to real PNG.
  • Account-level default mark (Pro+) auto-applies across every endpoint — set the brand once, every URL ships marked.
  • Idempotent credits, cache hits cost zero, bandwidth bundled flat — bring your own R2, S3 or HTTPS source, no storage lock-in.
Pick them when

Pick ImageKit when you want a full media platform.

  • You need bundled bandwidth and DAM storage on a single invoice — ImageKit Pro bundles both.
  • You need a DAM — folders, tags, team approvals, AI auto-tagging, drafts.
  • Video transformations and adaptive streaming are part of the roadmap.
  • A first-party SDK per runtime (Node, PHP, .NET, mobile) is required.
  • Cost-per-transform at scale is the axis that matters most.
// SIDE BY SIDE

img apis vs ImageKit

Compared on billing shape and feature coverage — line by line, claim by claim.

// comparison matrix2 vendors
// feature
oursimg apis
ImageKit
Mid-tier billing modelflat plan, bandwidth bundledbandwidth + storage bundle
Transforms at mid-tierflat credit allowancebandwidth-coupled
Palette + BlurHash + metadata in one /info call
Color pairs with WCAG contrast
Smart gravity (face + entropy)
Background removal
BlurHash decode endpoint (renders to PNG/JPEG)
1-year immutable transform cache
Edge POPs serving you300+200+
Free trial200 cr / 7dfree tier
Bill is one line (no shared pool with bandwidth & storage)
Same URL never billed twice
Custom domain on cheapest plan

Spotted something off? tell us →

// FORMAT NEGOTIATION

Same negotiation. Without the install step.

Every browser already negotiates AVIF, WebP or JPEG via its Accept header. ImageKit does this through tr:f-auto behind their SDK; img apis does it through format=auto on a plain URL. Same savings, one fewer dependency in your package.json.
Lookbook · Coastline hero78%
jpeg
138KB
webp
54KB
avif
31KB
Product · Pour-over hero78%
jpeg
118KB
webp
46KB
avif
26KB
Editorial · Studio hero78%
jpeg
152KB
webp
60KB
avif
34KB
One URL · format=auto · no client, no Accept header math.
// PALETTE + BLURHASH + METADATA

Three calls, collapsed into one.

ImageKit returns metadata from /metadata, dominant color via a separate transformation, and placeholders through their DPR strategy. img apis returns all three — dimensions, palette with WCAG-paired contrast, and a ready-to-decode BlurHash string — from a single /info call that shares a 24-hour edge cache.
// URL VS SDK

A client you do not have to ship.

ImageKit's docs lead with their SDK — initialize a client, configure keys, call imagekit.url(). Useful when you have a Node backend; awkward in a templated HTML page, an email, a webhook payload, an LLM prompt. img apis is the URL, no wrapper. Whatever speaks HTTP can render it.
typescript·ImageKit · with SDK
import ImageKit from 'imagekit';

const imagekit = new ImageKit({
  publicKey: process.env.IK_PUBLIC,
  privateKey: process.env.IK_PRIVATE,
  urlEndpoint: 'https://ik.imagekit.io/your_id'
});

const url = imagekit.url({
  path: '/products/runner.jpg',
  transformation: [{ width: 480, height: 360, focus: 'face' }]
});
html·img apis · just a URL
<img src="https://imgapis.com/transform/your-bucket/runner.jpg
  ?w=480&h=360&fit=cover&gravity=face" />

<!-- That's it. No install, no client, no auth headers,
     no runtime pin. Cacheable, signable, copy-pasteable. -->
// READY TO COMPARE FOR REAL

Ship faster than ImageKit.

200 credits free for 7 days. No card, no SDK to pin — paste a URL, watch it work.