Skip to content
VectorFast Render docs

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

FieldFormat
name1–64 characters
colors.background, foreground, muted, accent, accentForeground, surfaceHex colors such as #111827
fonts.heading.family, fonts.body.familyA Google Fonts family name such as Inter. Custom font uploads are not available yet.
logoSet 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 version n + 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_…@2 always looks the same.
  • If two updates race, one returns 409 brand_kit_conflict; read the kit and retry.
  • DELETE removes 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.png

You can also send multipart/form-data with the image in a file field.

RuleValue
FormatsPNG, JPEG, or SVG; the bytes must match the Content-Type
SizeUp to 5 MB and 4096×4096 pixels
Rate limit3 uploads a minute and 10 an hour per API key
ResultA new kit version with logo URLs for the SVG and a 2x PNG
  1. The image is decoded; anything wider or taller than 1024 pixels is scaled down first.
  2. It is traced into SVG paths with the same engine as the free browser vectorizer.
  3. Cleanup removes tiny fragments, merges near-identical colors, and simplifies coordinates. The untouched trace is kept as well, so cleanup can be reviewed.
  4. 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

PlanBrand kits
Free1
Starter3
Growth10
Scale30

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