Docs v1 (legacy)
Logo Lava v1 reference
The original API from 2019, kept online for the sites that still use it.
B Klug, updated October 25, 2026
v1 still works and will keep working, but it gets no new features. New projects should use v2. See migrating from v1, or start at the v2 docs.
The v1 endpoint is a single URL that returns a PNG. It reads the name and a few options, picks a font from its list, a background colour from its list and a text colour that contrasts with it, and sometimes places an icon at the left. This page is written from the v1 source code. Items that I could not confirm from the code are marked.
https://api.logolava.com/v1/?text=Juniper+Vale&seed=1140956701&w=640&h=240Parameters
| Parameter | Default | What it does |
|---|---|---|
text, txt | sampletext | The name to draw. More than 100 characters is replaced by "text too long". If both are present, txt wins. A name written as two capitalised words joined, like JuniperVale, is split into two parts that color2 can colour differently. I could not confirm the exact layout. |
w, h | 300, 100 | Width and height in pixels. Keep them between 16 and 1920 by 1080. The code tries to enforce those limits, but I could not confirm how it behaves just outside them. |
seed | random | A whole number. The same options and seed draw the same image. Without one, the image is random. |
scheme | none | light or dark restricts the random background to light or dark colours. black and white use that colour. |
bg | random | A six digit hex colour, with or without #, or transparent. |
color | auto | A six digit hex colour for the text. Without it, a colour with enough contrast is chosen. |
color2 | auto | The colour of one part of a name written as two joined words. See text. |
font | random | A font number or a font name. See the font list. |
style | readable and styled | Which fonts to draw from: readable, styled, fancy, notreadable, notstyled, notfancy or all. |
icon | random | An icon number, which forces an icon. See the icon list. |
iconstyle | 2 | Limits the random icon choice to icons at or below this style number. |
randicon | 0.35 | The chance, from 0 to 1, that a random icon is used when you did not set icon. Use 0 for none. |
grad | off | Turns the background into a gradient. Values in the code are horizontal, vertical, ellipse, ellipse2, circlecorner, circlecenter, circle2, square, rectangle and diamond. I could not confirm that every one gives a pleasing result. |
gradcolor | #000 | The second colour of the gradient. |
margin | 0.05 | The empty border as a fraction of the width and height. |
nobr | false | true keeps the name on one line. |
shadow | none | A number of pixels for a soft shadow under the text. |
showmargin | false | true draws the text box in dark red, for debugging layout. |
api_key | none | Your API key. See below. |
The code reads a few more options that are internal and not meant for use.
Keys
A request with no Referer header, such as one made from a script or a terminal, works without a key. A request that comes from a web page on another site needs a valid api_key. Without one, the image shows the words "api key needed". A key that is wrong or that has not been confirmed by email shows "api key invalid". The error is drawn into the image, and the HTTP status is still 200. Keys are the ones you get on the sign up page.
Compared with v2
Version 1 returns PNG only, has no JSON form and no catalogue endpoints, and has no documented rate limit that I could confirm. Version 2 has all of those. The changes parameter by parameter are listed on the migration page.