Brand Kit API
BRAND KIT bundle — one call, a complete starter identity: finished logo (SVG + PNG), app icon (1024px SVG + PNG), 1200x630 social/OG card, and a usable color palette with WCAG-checked text pairings. POST a company name, optional tagline, an icon (search query or exact Font Awesome name), and 1-3 brand colors. Everything matches: same mark, same colors, same fonts. Buying the pieces individually costs ~$0.08; the kit adds the palette and coherence.
Parameters
| Name | In | Description | |
|---|---|---|---|
name | body | required | Company/product name (required, max 40 chars) |
tagline | body | Optional tagline (max 60 chars) | |
query | body | Icon search text — best Font Awesome match becomes the mark | |
icon | body | Exact Font Awesome icon name (skips search) | |
colors | body | 1-3 brand colors, hex or CSS names | |
layout | body | Logo layout: bottom (default), top, left, right | |
shape | body | Mark shape: squircle (default), rounded, circle, square | |
font | body | montserrat, playfair, space-grotesk, bebas, poppins, dm-serif — omit for random | |
theme | body | Social card theme: dark (default), light, midnight | |
domain | body | Domain shown on the social card |
Example request
curl -X POST "https://api.webbersites.com/api/brand/kit" \
-H "Content-Type: application/json" \
-d '{"name":"Northwind","tagline":"Data for autonomous agents","query":"rocket","colors":["#ff6b35"],"shape":"squircle","theme":"dark","domain":"northwind.io"}'
# first call returns 402 + payment requirements; an x402 client pays and retries automaticallyExample response
{
"name": "Northwind",
"logo": {
"svg": "<svg …>",
"png_base64": "iVBOR…"
},
"icon": {
"svg": "<svg …>",
"png_base64": "iVBOR…"
},
"og_card": {
"svg": "<svg …>",
"png_base64": "iVBOR…"
},
"palette": {
"primary": "#ff6b35",
"on_primary": "#ffffff"
}
}How payment works
There is no signup and no API key. Call the endpoint; it replies 402 Payment Required with machine-readable payment requirements. Your client signs a USDC transfer authorization (EIP-3009, gasless) and retries with the X-PAYMENT header — @x402/fetch does this automatically. See the overview for a working snippet.