Quick start
Minimal request — flat logo, brand colors, 64×64 px:
Embed in HTML:
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'
Copy
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'
Copy
curl 'https://api.footeri.co/v1/brands?category=messengers'
Copy
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'
Copy
curl -o instagram.png 'https://api.footeri.co/v1/icons/instagram.png?shape=circle'
Copy
curl -o telegram.png 'https://api.footeri.co/v1/icons/telegram.png?size=64&shape=round&radius=12&color=black&border'
Copy
curl -o x.png 'https://api.footeri.co/v1/icons/x.png?size=128&shape=square&color=3ef941'
Copy
curl -o telegram2x.png 'https://api.footeri.co/v1/icons/telegram.png?size=32&shape=circle&retina'
Copy
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.