Sticker shop
Pop art on demand. Send a word, get back a comic burst, a speech balloon, a rubber stamp or a retro error window. No JSON to unpack: the image is the response, ready for an <img>, a README or a chat bot.
Same link, same sticker
Every sticker is drawn from its URL and nothing else. The jags of a burst, the wobble of a stamp's border and the specks in its ink look random, but they are worked out from the text, so KAPOW explodes the same way every time and a link you share shows what you saw. Images are cached for a day, so an embed does not spend your limit on every page view.
Backgrounds are transparent unless you ask for one with bg. SVG is small and sharp at any zoom, and names the hub's fonts (Inter, JetBrains Mono), falling back to the viewer's own where they are missing. PNG is drawn with the real fonts, so it looks exactly like the pictures on this page.
Endpoints
| Method | Path | What you get |
|---|---|---|
| GET | /v1/stickers | The kinds, their options, the colours and a sample link for each. JSON. |
| GET | /v1/stickers/burst | A jagged explosion with the word on top. The same word always gets the same burst. |
| GET | /v1/stickers/balloon | A speech balloon, a thought cloud or a shout, sized to the text. |
| GET | /v1/stickers/stamp | A tilted rubber stamp in worn ink, with a date if you want one. |
| GET | /v1/stickers/dialog | A retro alert window with an icon, a message and up to three buttons. |
Every sticker takes
| Name | Example | Does |
|---|---|---|
format | png | svg (default), png, or json for a description with both links. |
size | 1200 | Width in pixels, 100 to 1600. Default 600. The height follows the shape. |
color | pop | A name from the table below, or hex with or without the # (ff5c00, %23f50). Each kind has its own default. |
bg | cream | Background: a colour as above, or none (the default, transparent). |
Comic burst /burst
| Name | Does |
|---|---|
text | Up to 40 characters, set in capitals. Default KAPOW. |
color | Default orange. |
dots | Halftone dots, true or false. Default true. |
Speech balloon /balloon
| Name | Does |
|---|---|
text | Up to 160 characters. Default "Hello there!". |
shape | speech (default), thought or shout. |
tail | left (default), right or none. |
color | Default pop for speech, paper for thought, yellow for shout. |
dots | Halftone dots, true or false. Default true. |
Rubber stamp /stamp
| Name | Does |
|---|---|
text | Up to 40 characters, set in capitals. Default APPROVED. |
date | today (Bucharest, the default), none, or a day as YYYY-MM-DD. |
color | Default red. |
Retro dialog /dialog
| Name | Does |
|---|---|
title | Up to 40 characters. Default by icon: Error, Warning, Note, Question. |
text | Up to 160 characters. Default "Task failed successfully.". |
icon | error (default), warning, info or question. |
buttons | Up to 3 labels of up to 16 characters, comma separated. Default OK; empty or none for no buttons. |
color | The title bar. Default pop. |
Colours by name
| Name | Hex | Looks like |
|---|---|---|
cream |
#F5F2EB |
|
paper |
#FFFDF8 |
|
cream-alt |
#EDE9E0 |
|
border |
#E0DBD2 |
|
ink |
#141414 |
|
orange |
#FF5C00 |
|
pop |
#5CE1E6 |
|
pop-dots |
#3CC4CA |
|
white |
#FFFFFF |
|
red |
#D7263D |
|
yellow |
#FFD23F |
Calls
$ curl -o kapow.png "https://api.tasta.space/v1/stickers/burst?text=KAPOW&format=png"
$ curl "https://api.tasta.space/v1/stickers/stamp?text=RESPINS&date=2026-10-19&format=json"
<img src="https://api.tasta.space/v1/stickers/balloon?text=Hi!&tail=right" alt="Hi!">

format=json describes the sticker
Its size and both links, with every option spelled out, so the links stay the same sticker even if a default changes.
{
"data": {
"kind": "burst",
"text": "KAPOW",
"width": 600,
"height": 480,
"svg": "https://api.tasta.space/v1/stickers/burst?text=KAPOW&dots=1&color=orange&size=600&format=svg",
"png": "https://api.tasta.space/v1/stickers/burst?text=KAPOW&dots=1&color=orange&size=600&format=png",
"options": {
"text": "KAPOW",
"dots": "1",
"color": "orange",
"size": "600"
}
}
}
Errors of its own
On top of the hub's errors. Errors are JSON, whatever format you asked for.
| Status | Code | When |
|---|---|---|
| 422 | invalid_parameter | Text too long, a size outside 100 to 1600, a colour we do not stock, a shape, tail, icon or date that does not exist, a fourth button. The message says which. |
Gallery
Burst in pop cyan
https://api.tasta.space/v1/stickers/burst?text=BOOM&color=pop
Burst, no dots, as PNG
https://api.tasta.space/v1/stickers/burst?text=It+works!&dots=0&format=png
Speech balloon, tail right
https://api.tasta.space/v1/stickers/balloon?text=Ship+it+on+a+Friday?&tail=right
Thought cloud
https://api.tasta.space/v1/stickers/balloon?shape=thought&text=Did+I+leave+the+oven+on?
Stamp with a date
https://api.tasta.space/v1/stickers/stamp?text=RESPINS&date=2026-10-19
Stamp in ink, no date
https://api.tasta.space/v1/stickers/stamp?text=Ștampilat&date=none&color=ink
Dialog with two buttons
https://api.tasta.space/v1/stickers/dialog?title=Error&text=Task+failed+successfully&buttons=OK,Panic
Warning on cream, as PNG
https://api.tasta.space/v1/stickers/dialog?icon=warning&text=Your+coffee+is+getting+cold.&buttons=Drink+it,Ignore&color=orange&bg=cream&format=png
Describe one, as JSON
https://api.tasta.space/v1/stickers/burst?text=KAPOW&format=json
Try it
Notes
There is no data behind this API: every sticker is drawn here, from the URL, with the hub's own shapes. The fonts are Inter and JetBrains Mono, both under the SIL Open Font License 1.1, which covers the fonts and not the pictures made with them.
The dialog looks like no real operating system on purpose: no close boxes, no traffic lights, no title bar gradients. It is a joke window, and it should never pass for a real warning.
Text is drawn as you send it, so a stamp says what you typed, diacritics included: ȘTAMPILAT, RESPINS, ÎN LUCRU.