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=horizontalFormats
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.
| Extension | Use it for | Size of that logo |
|---|---|---|
.png | The default. Works everywhere, supports transparency. | 10.3 KB |
.svg | Print, scaling, and editing in a vector tool. | 9.5 KB |
.webp | Smaller than PNG, supports transparency. | 6.1 KB |
.avif | Smallest, for browsers that support it. | 4.7 KB |
.jpg | When a format with no transparency is required. | 14.7 KB |
.json | The 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
| Header | Meaning |
|---|---|
X-LogoLava-Seed | The seed used. Read it when you did not send one and want to keep the logo. |
X-LogoLava-Gen | The generation of the drawing engine. See seeds. |
X-LogoLava-Cache | hit or miss for the server's image cache. |
X-LogoLava-Warning | Values that were adjusted or replaced, separated by ; . Absent when nothing was changed. |
X-LogoLava-AI | Only with ai=1: fresh, hit, fallback:<reason> or off. |
Cache-Control | One year and immutable when a seed is set; no-store without one. |
ETag | Sent 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