HTTP API · v1 · No API key

PNG icon API for social & messenger brands

Need Instagram, Telegram, or X in a footer or newsletter? Request a PNG with one GET. Size, shape, and color live in the query string—drop the URL into <img>, a CMS field, or email HTML. Open CORS. No signup. Icons update at the source so you do not redeploy a folder of files.

Open Icon Picker About Footerico

Quick start

Minimal request — flat logo, brand colors, 64×64 px:

Embed in HTML:

Telegram icon preview

Live preview from the URL above.

Endpoints

GET/v1/categories Categories

Returns the catalog category list (id, label) for building tabs or filters in a third-party UI.

No query or path parameters.

Examples

curl 'https://api.footeri.co/v1/categories'
GET/v1/brands Brand catalog

Returns brands for a picker or grid. Each item includes id, name, category, tags, discontinued, and an absolute iconUrl for the default PNG. Discontinued brands are omitted by default.

Parameter Type Description
category string Filter by topic. One of social-networks · messengers · files · others. Omit for all categories.

Examples

curl 'https://api.footeri.co/v1/brands'
curl 'https://api.footeri.co/v1/brands?category=messengers'
GET/v1/icons/{brandId}.png Render PNG

Returns a single styled PNG for a bundled brand. Defaults can be omitted from the query string.

Parameter Type Description
brandId string (path) Kebab-case brand id (e.g. telegram, instagram). See brand list or GET /v1/brands.
size integer Optional. Logical px: public free sizes 16, 32, 64, 128 (any integer 16–128 accepted). Omit for default 64 (64×64 PNG). With retina, PNG pixels are min(size × 2, 256).
shape enum Background shape: circle · round · square. Omit for a flat logo.
color enum | hex Style color: brand · black · gray · white, or 6-digit hex without # (e.g. 3ef941). Default brand.
radius integer Corner radius in px at the current size (1 … floor(size/2)-1). Only when shape=round. Default ~10 @ 64px.
border flag Outline around the shape. Requires a shape. Use ?border or border=true.
retina flag Render a 2× PNG for high-DPI displays. Query size stays logical. Use ?retina or retina=true.

Examples

curl -o telegram.png 'https://api.footeri.co/v1/icons/telegram.png'
curl -o instagram.png 'https://api.footeri.co/v1/icons/instagram.png?shape=circle'
curl -o telegram.png 'https://api.footeri.co/v1/icons/telegram.png?size=64&shape=round&radius=12&color=black&border'
curl -o x.png 'https://api.footeri.co/v1/icons/x.png?size=128&shape=square&color=3ef941'
curl -o telegram2x.png 'https://api.footeri.co/v1/icons/telegram.png?size=32&shape=circle&retina'

Live PNG examples

Same URLs as above, with a live preview from the API.

HTTP methods

Method Description
GET Return PNG body with headers.
HEAD Same headers as GET without a body.
OPTIONS CORS preflight. Returns 204 with allowed methods.

Other methods receive 405 Method Not Allowed.

Errors

Error responses use text/plain; charset=utf-8.

Status When
400Invalid query parameters
404Unknown brandId or unknown path
405Method not allowed
500Internal error

Example 400 messages

  • category must be one of: social-networks, messengers, files, others
  • size must be an integer between 16 and 128
  • shape must be one of: circle, round, square
  • border requires shape other than none
  • color must be brand, black, gray, white, or RRGGBB hex (6 digits, no #)
  • radius is only valid when shape=round

CORS

Responses include Access-Control-Allow-Origin: * for GET and OPTIONS, so icons work from any origin in <img src="…"> or fetch from browser apps.

Limitations

  • Public free size steps: 16, 32, 64, 128 (any integer 16–128 is accepted). Omit size → default 64. With retina, the PNG can be up to 256 px.
  • Catalog JSON: /v1/categories and /v1/brands. PNG: /v1/icons/{brandId}.png — no batch render.
  • Output format is PNG only.

Brand IDs

Use these ids in the path, or fetch GET /v1/brands. Reference this table or the Icon Picker.

ID Name Category