API reference

Free HTTP endpoints for builders. No key, no signup, no SDK — just curl.

Base URL https://dibbed.devNo authenticationFreeOpenAPI spec ↓

POST/api/icons

Send an image, get back icons.zip with every size and format your platforms need — the same output as the browser icon generator, generated server-side so you can script it.

Request body

Raw image bytes — image/png, image/jpeg, or image/webp. Max 10 MB and 1024×1024 px — icons are generated at 1024 max, so larger sources gain nothing. Square sources between 512 and 1024px are the sweet spot; for bigger files, resize first or use the browser generator, which handles any size locally.

Query parameters

ParameterTypeDefaultDescription
platformsstring"web"Comma-separated sets to include: web, pwa, android, ios. Unknown values are ignored.
bgstring"ffffff"Hex background (no #) used where transparency isn't allowed: iOS icons and maskable PWA icons.

Responses

StatusContent-TypeDescription
200application/zipicons.zip, sent with a Content-Disposition attachment header.
400text/plainEmpty body, or no valid platform in ?platforms=.
405text/plainMethod is not POST. The body is usage help.
413text/plainImage larger than 10 MB or 1024×1024 px.
422text/plainBody is not a decodable PNG, JPEG, or WebP.

What's in the ZIP

PlatformFiles
webfavicon.ico (16/32/48) · favicon-16x16/32x32/48x48.png · apple-touch-icon.png (180)
pwaicon-192/512.png · maskable variants of both · site.webmanifest
androidmipmap-mdpi → mipmap-xxxhdpi/ic_launcher.png (48–192)
iosAppIcon.appiconset/ (17 sizes + Contents.json), drag-droppable into Xcode
alwaysREADME.txt with the exact <head> tags to paste
cURL
curl -X POST --data-binary @logo.png \
  "https://dibbed.dev/api/icons?platforms=web,pwa,android,ios&bg=0ea5e9" \
  -o icons.zip
JavaScript
const res = await fetch(
  "https://dibbed.dev/api/icons?platforms=web,pwa",
  { method: "POST", body: await file.arrayBuffer() },
);
const zip = await res.blob(); // application/zip
GitHub Actions
- name: Rebuild icon pack
  run: |
    curl -sf -X POST --data-binary @assets/logo.png \
      "https://dibbed.dev/api/icons?platforms=web,pwa" -o icons.zip
    unzip -o icons.zip -d public/

Authentication & fair use

There's no API key and no account. Be reasonable — heavy automated traffic may be rate-limited. If you're building something that needs volume, email us first.

Privacy

Uploaded images are processed in memory and never written to storage or logged. If you'd rather not upload at all, the browser version does identical work locally with the Canvas API.

Changelog

  • 2026-06 — Source images are now capped at 1024×1024 px with a clear 413 (previously, very large uploads could fail opaquely under CPU limits). Icons are generated at 1024 max, so nothing is lost.
  • 2026-06 POST /api/icons launched, with an OpenAPI 3.1 spec at /api/openapi.json.

Roadmap

A JSON name-availability endpoint (the data behind the checker) is planned. Want it sooner, or need something else? help@dibbed.dev.