returns an animated gif with the subscriber card. supports query params or post json.
content-type: image/gif
always returns gif (no html fallback for crawlers).
content-type: image/gif
parameters:
name: string (required)
email?: string
amount: number | string
item: string (e.g. "pro", "builder")
type: "builder" | "pro" | "bits"
examples:
curl -sS -X POST '/api/new-sub' -H 'Content-Type: application/json' -d '{"name":"rafael guilherme","email":"rafael.guilherme@nilo.io","amount":49.99,"item":"pro","type":"pro"}' --output out.gif
composites a team member onto an out-of-office scene. one endpoint, four scene types: birthday, vacation, anniversary, summary.
content-type: image/png
parameters:
type: "birthday" | "vacation" | "anniversary" | "summary" (required)
person: string (required for birthday | vacation | anniversary)
people: comma-separated, max 12 (required for summary)
output dimensions: 1080x455 for birthday / vacation / anniversary / summary.
available environments (type):
birthday, vacation, anniversary, summary, niloversary
available people (person / people):
andres.palmiter, bailey.rosser, bruno.gomes, chase.wilbanks, chris.pavia, david.kahler, elgar.pagnussatt, elon, elon-test, fabio.polimeni, freja.roberts, heorhii.nevinhlovskyi, hugo.ferreira, isaac.mason, jawad.grar, joe.mackenzie, joshua, kuba, lu.chang, meriesa, neo, nuno.leiria, rafael.guilherme, ron, ryu.erck, stefan.ginev, stefan.heinrich, sthefani.ovalle
unknown names fall back to a placeholder silhouette.
to add/remove people, manage files in vercel blob under images/ooo/people/.
a static scene with no params — just the nilo anniversary background.
curl -sS '/api/ooo?type=niloversary' --output niloversary.png
examples:
birthday ↗ · vacation ↗ · anniversary ↗ · summary ↗
curl -sS '/api/ooo?type=birthday&person=rafael' --output birthday.png
curl -sS '/api/ooo?type=summary&people=rafael,kuba,bruno' --output summary.png
curl -sS -X POST '/api/ooo' \
-H 'Content-Type: application/json' \
-d '{"type":"summary","people":["rafael","kuba","bruno","nuno"]}' \
--output summary.png
png leaderboard (900×400). supports optional avatar images.
content-type: image/png
parameters:
n1, n2, n3: string (usernames, required)
w1, w2, w3?: number (wins, optional)
img1, img2, img3?: string (avatar urls)
examples:
curl -sS '/api/podium?n1=kuba&w1=3&n2=bruno&w2=1&n3=nuno&w3=1' --output podium.png