Logo Lava

Docs Logo endpoint

The logo endpoint

One URL, one logo. The file extension picks the format and the query string describes the design.

B Klug, updated October 25, 2026

Every logo comes from https://api.logolava.com/v2/logo. Only text is needed. Everything else is optional, and anything you leave out is chosen for you. The request is a plain GET, so you can open it in a browser to see the result.

https://api.logolava.com/v2/logo.png?text=Juniper+%26+Vale&seed=1140956701&layout=horizontal

Formats

The extension chooses the format. You can also pass format=webp, and if both are present the extension wins. These sizes are for one 640 by 240 logo (Juniper & Vale, seed 1140956701), measured on October 25, 2026. Other designs differ.

ExtensionUse it forSize of that logo
.pngThe default. Works everywhere, supports transparency.10.3 KB
.svgPrint, scaling, and editing in a vector tool.9.5 KB
.webpSmaller than PNG, supports transparency.6.1 KB
.avifSmallest, for browsers that support it.4.7 KB
.jpgWhen a format with no transparency is required.14.7 KB
.jsonThe design as data, plus the image URLs.Under 2 KB

The SVG draws the name as outlines, so it looks the same on a machine without the font. Add svgtext=1 if you also want the name present as text in the file, for example so a screen reader or a search can find it.

Size and scale

The canvas defaults to 640 by 240. Set w and h in pixels, from 16 to 2048 each. A value outside that range is brought back inside it, and the response says so in an X-LogoLava-Warning header. scale multiplies the pixel size for sharper screens: 1, 1.5, 2, 3 or 4. A PNG at scale=2 is 1280 by 480 for the default canvas, and scale=4 is 2560 by 960. If the result would pass 16.8 million pixels, the scale is lowered and a warning says so.

Scale and format change the file, never the design. The same text and seed give the same logo at any size.

Transparent background

Pass bg=transparent for a logo with no background colour. PNG, WebP, AVIF and SVG keep the transparency. JPG cannot, so use one of the others when you need it.

The JSON form

logo.json returns the design instead of an image. This is the response for the request above:

{
  "ok": true,
  "gen": 1,
  "seed": 1140956701,
  "text": "Juniper & Vale",
  "params": { "layout": "horizontal" },
  "meta": {
    "font": "albert-sans-800",
    "palette": "sand-22",
    "symbol": "prism-09",
    "layout": "horizontal",
    "background": "solid",
    "container": "squircle"
  },
  "canvas": { "w": 640, "h": 240 },
  "design": "eyJ2IjoxLCJnZW4iOjEsInNl...",
  "urls": {
    "png": "https://api.logolava.com/v2/logo.png?text=Juniper+%26+Vale&layout=horizontal&seed=1140956701",
    "png2x": "https://api.logolava.com/v2/logo.png?...&scale=2",
    "svg": "https://api.logolava.com/v2/logo.svg?..."
  },
  "warnings": []
}

The example shortens some fields. The real response also lists the second font, the case mode, the word list and the tones the engine used. params holds only the parameters you passed that were valid, and urls gives the canonical address of the same logo in each format.

design is the whole design encoded as base64url. Send it back as logo.png?design=<token> and the service redraws exactly that logo with no other parameters. Redrawing from a token gave an identical PNG when tested. A token that is not valid returns a 400 with a JSON error.

Response headers

HeaderMeaning
X-LogoLava-SeedThe seed used. Read it when you did not send one and want to keep the logo.
X-LogoLava-GenThe generation of the drawing engine. See seeds.
X-LogoLava-Cachehit or miss for the server's image cache.
X-LogoLava-WarningValues that were adjusted or replaced, separated by ; . Absent when nothing was changed.
X-LogoLava-AIOnly with ai=1: fresh, hit, fallback:<reason> or off.
Cache-ControlOne year and immutable when a seed is set; no-store without one.
ETagSent with seeded images. A repeat request with If-None-Match gets a 304.

Bad input and errors

The service prefers to give you a logo over an error. An unknown value for a known parameter, such as layout=sideways, is replaced and listed in X-LogoLava-Warning. A parameter name it does not know is ignored without a warning, so check spelling against the parameter list if an option seems to do nothing. A bad design token returns 400, an unknown extension 404, and a wrong api_key 401. When you are over a limit the answer is 429 with a Retry-After header. Errors for image formats come back as an image, and errors for .json come back as JSON.

Next: Parameters