Brand kits and logos
Create versioned VectorFast Render brand kits with colors, fonts, and a logo, upload a PNG, JPEG, or SVG logo, and learn what logo vectorization does and does not do.
Short answer: a brand kit holds six colors, a heading and a body font from Google Fonts, and a logo. Every change creates a new version, and renders, cache keys, and signed URLs all refer to a version. Upload a PNG or JPEG logo and it is traced into an SVG and a 2x PNG; upload an SVG and it is sanitized.
What a brand kit contains
| Field | Format |
|---|---|
name | 1–64 characters |
colors.background, foreground, muted, accent, accentForeground, surface | Hex colors such as #111827 |
fonts.heading.family, fonts.body.family | A Google Fonts family name such as Inter. Custom font uploads are not available yet. |
logo | Set only through the logo endpoint below |
Colors and fonts you leave out on create are taken from the built-in VectorFast kit. When you set a font, VectorFast checks that Google Fonts serves it at the weights templates use and rejects the request if not.
curl https://vectorfast.ai/v1/brand-kits \
-H "Authorization: Bearer $VECTORFAST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Northwind",
"colors": { "background": "#0f172a", "foreground": "#f8fafc", "accent": "#22d3ee" },
"fonts": { "heading": { "family": "Space Grotesk" }, "body": { "family": "Inter" } }
}'Versions
PUT /v1/brand-kits/{id}creates versionn + 1; fields you leave out keep their current values.- Read a specific version with
GET /v1/brand-kits/bk_…@2. - Versions are never edited in place, so a render pinned to
bk_…@2always looks the same. - If two updates race, one returns
409 brand_kit_conflict; read the kit and retry. DELETEremoves the kit from your account. Images already cached at the edge may still be served for URLs that were issued before.
When a render omits brand_kit, VectorFast uses your oldest kit, or the read-only built-in default kit if you have none. Brand kit ids from another account always return 404.
Logo upload
curl https://vectorfast.ai/v1/brand-kits/bk_…/logo \
-H "Authorization: Bearer $VECTORFAST_API_KEY" \
-H "Content-Type: image/png" \
--data-binary @logo.pngYou can also send multipart/form-data with the image in a file field.
| Rule | Value |
|---|---|
| Formats | PNG, JPEG, or SVG; the bytes must match the Content-Type |
| Size | Up to 5 MB and 4096×4096 pixels |
| Rate limit | 3 uploads a minute and 10 an hour per API key |
| Result | A new kit version with logo URLs for the SVG and a 2x PNG |
What happens to a raster logo
- The image is decoded; anything wider or taller than 1024 pixels is scaled down first.
- It is traced into SVG paths with the same engine as the free browser vectorizer.
- Cleanup removes tiny fragments, merges near-identical colors, and simplifies coordinates. The untouched trace is kept as well, so cleanup can be reviewed.
- A 2x PNG is rendered from the SVG for templates and previews.
Tracing turns pixels into shapes. It does not recover the original vector file, rebuild live text, or separate a logo into meaningful layers. Flat, high-contrast logos trace cleanly; gradients, shadows, textures, and small lettering produce heavier SVGs that may need manual cleanup in a vector editor. Check the result before you use it in production.
SVG uploads are not traced. They are sanitized against an allowlist of static drawing elements; scripts, event handlers, external references, and animation are removed.
Logo files are served from signed /brand-assets/… URLs that only resolve while the kit exists.
Limits per plan
| Plan | Brand kits |
|---|---|
| Free | 1 |
| Starter | 3 |
| Growth | 10 |
| Scale | 30 |
Plans are not purchasable yet; during early access every account is on Free. Creating a kit past the limit returns 403 brand_kit_limit_reached.
Brand kits are managed through the REST API. The MCP server can list and read kits but not change them.
Updated 2026-10-30 · Markdown version
Template reference
The eight official VectorFast Render templates with their sizes, required parameters, and links to full parameter tables, examples, and agent prompts.
Errors
Every VectorFast Render error code with its HTTP status, what causes it, and how to fix it, for the REST API, signed image URLs, and the MCP server.