A URL is the whole integration

No SDK, no build step, no component. If your platform can render an image from a URL, you are finished.

The integration is an <img> tag. There is nothing to install, nothing to initialise, and no client library version to keep up with.

/v1/{key}/body/male/front.webp?primary=pectorals&w=320

That is the entire API surface for an image. Figure, side, which muscles to highlight, how wide, and whether to crop — all in the path and the query string. The full shape is in the quickstart.

Why it is built this way

Because the alternative does not get adopted. An indie developer evaluating an asset library on a Sunday will paste a URL into a template. Adding a dependency, wiring up a build plugin and reading a migration guide is work they will not do.

It also means the parts of your stack that are hardest to add a dependency to — an email template, a React Native view, a server-rendered page, a Figma mock, a CSS background-image — are exactly as easy as everything else.

What follows from it

  • Your platform does not matter. There is no SDK to be missing for it.
  • Nothing to upgrade. Improvements to the artwork reach URLs you embedded months ago.
  • Caching works normally, because these are ordinary image responses. Put a CDN in front of them if you like.
  • The format is in the path, never in a header. These URLs sit in public page source and are cached by browsers and every edge in between. An image that varied on Accept would be a cache key nobody could reason about.

See it in the documentation →