API di avatar segnaposto
Avatar segnaposto gratuiti e senza chiave, per lo sviluppo come per la produzione. Punta un tag img a un URL e ottieni in appena qualche centinaio di byte un SVG pulito e deterministico. Niente da registrare, niente da installare.
https://blankpfp.com/api/avatar
Esempi dal vivo
Tutte le immagini qui sotto sono servite dal vivo dall’endpoint documentato in questa pagina.
Guida rapida
Inserisci l’URL direttamente in un tag img. Le dimensioni sono in pixel e la forma predefinita è un cerchio, quindi non serve altro stile.
<img src="https://blankpfp.com/api/avatar/seed/alice/200" alt="Alice" width="200" height="200">Oppure usalo come sfondo CSS:
.avatar {
width: 96px;
height: 96px;
border-radius: 50%;
background-image: url("https://blankpfp.com/api/avatar/seed/alice/96");
background-size: cover;
}In JavaScript, costruisci l’URL da ciò che identifica l’utente:
avatar.src = 'https://blankpfp.com/api/avatar/seed/' + encodeURIComponent(user.email) + '/200';Sintassi degli URL
Tutte e quattro le forme accettano un’altezza opzionale. Aggiungi .json a una qualsiasi di esse per ottenere i metadati descritti sotto invece dell’immagine.
| URL | Cosa ottieni |
|---|---|
/api/avatar/{width} |
Avatar quadrato. Lo stesso URL restituisce sempre la stessa immagine. |
/api/avatar/{width}/{height} |
Telaio non quadrato, utile per banner larghi o avatar delle storie. |
/api/avatar/seed/{seed}/{width} |
Avatar deterministico derivato da una qualsiasi stringa di seed. |
/api/avatar/id/{id}/{width} |
Avatar deterministico derivato da un id numerico, come una riga di database. |
Seed deterministici
Un seed viene trasformato in hash in uno dei colori di una tavolozza da 48 tonalità, quindi lo stesso seed restituisce sempre lo stesso avatar, senza database e senza nulla salvato su disco. Usa un nome utente, un indirizzo email o l’id di un record. I seed contenenti spazi o simboli vanno codificati in percentuale e /api/avatar/id/ è la scorciatoia per gli id numerici.
<img src="https://blankpfp.com/api/avatar/seed/alice/200" alt="alice">\n<img src="https://blankpfp.com/api/avatar/seed/bob/200" alt="bob">\n<img src="https://blankpfp.com/api/avatar/id/237/200" alt="record 237">Parametri di query
Tutti i parametri sono opzionali e combinabili. Un valore non riconosciuto restituisce un 400 con una spiegazione JSON invece di un’immagine rotta.
| Parametro | Valori accettati | Predefinito | Cosa ottieni |
|---|---|---|---|
shape |
circle | rounded | square | circle | Contorno dell’avatar. Il cerchio è il valore predefinito perché la maggior parte delle piattaforme ritaglia così le foto del profilo. |
pattern |
solid | grid | dots | diagonal | checker | solid | Texture applicata sopra lo sfondo. Utile per distinguere a colpo d’occhio i tipi di segnaposto. |
bg |
#1E3A5F | seed | Colore di sfondo. Sostituisce il colore che il seed avrebbe scelto. |
fg |
#1E3A5F | auto | Colore delle iniziali, delle linee del motivo o della sagoma; scelto automaticamente per il contrasto se omesso. |
initials |
1-2 | - | Fino a due lettere, cifre o simboli disegnati al centro. Un nome completo viene ridotto alle iniziali. |
figure |
1-15 | - | Id della sagoma (1-15) o nome, dipinto in fg su bg. Ha precedenza sulle iniziali; ?figure da solo la rimuove. |
outline |
0 | 1 | 0 | |
grayscale |
0 | 1 | 0 | Rimuove tutto il colore. Utile per stati dell’interfaccia attenuati o disattivati. |
blur |
0-10 | 0 | Raggio della sfocatura gaussiana. La sfocatura resta dentro la forma, quindi i bordi rimangono nitidi. |
random |
?random=* | - | Qualsiasi valore. Restituisce un avatar diverso per ogni valore invece di uno stabile. |
I colori esadecimali si possono scrivere con o senza il cancelletto iniziale, e la forma breve come #abc viene espansa. Senza bg lo sfondo proviene dal seed; senza fg l’inchiostro viene scelto automaticamente per restare leggibile. Una sfocatura oltre il massimo viene limitata invece di essere rifiutata, e le iniziali non superano mai due caratteri.
Sagome
Le stesse quindici sagome a busto del generatore, richiamabili per id o per nome. fg colora la sagoma e bg lo sfondo, quindi lo stesso id ha un aspetto diverso su ogni palette.
Solid fill
Hollow outline (outline=1)
Provalo
Scegli un avatar qualsiasi in questa pagina, poi modifica i parametri qui sotto. Anteprima e codice si aggiornano subito, e ciò che copi è esattamente quello che restituisce l’endpoint.
Anteprima
URL
Formati di risposta
Le immagini sono restituite come SVG, il che mantiene un avatar tipico tra 200 e 1000 byte e lo mantiene nitido a qualsiasi densità di pixel. Aggiungi .json allo stesso URL per leggere invece i colori risolti, comodo per abbinare l’interfaccia circostante all’avatar.
{
"ok": true,
"mode": "seed",
"seed": "alice",
"width": 200,
"height": 200,
"shape": "circle",
"pattern": "solid",
"figure": null,
"background": "#9CA3AF",
"foreground": "#111827",
"initials": null,
"outline": false,
"grayscale": false,
"blur": 0,
"format": "svg",
"bytes": 266,
"url": "https://blankpfp.com/api/avatar/seed/alice/200/200.svg",
"info": "https://blankpfp.com/api/avatar/seed/alice/200/200.json"
}Le richieste non valide rispondono con un 400 e un corpo JSON:
{
"ok": false,
"error": "invalid_parameters",
"errors": ["pattern: expected one of solid, grid, dots, diagonal, checker"],
"docs": "https://blankpfp.com/docs"
}Cache e limiti
Gli URL con seed sono una funzione pura dell’indirizzo, quindi vengono serviti con un’intestazione di cache immutabile di un anno e un ETag. Metti un CDN davanti alla tua app e dopo la prima richiesta le immagini non ti costano più nulla. Larghezza e altezza possono andare da 16 a 2048 pixel; i valori maggiori vengono ridotti anziché rifiutati, e la dimensione risultante torna nel JSON. Per mostrare un’immagine diversa a ogni richiesta, aggiungi ?random= seguito da un valore qualsiasi.
FAQ
Serve una chiave API o un account?
No. Non c’è registrazione, né chiave, né limite. Ogni URL di questa pagina funziona così com’è finché il sito è online.
Lo stesso URL restituirà sempre lo stesso avatar?
Sì. Un URL con seed è una funzione pura dell’indirizzo, quindi è sicuro scriverlo a mano nel markup, nel database o nei test. Anche gli URL senza seed sono stabili per indirizzo, e ?random= è il modo esplicito di rinunciarci.
Posso incorporare queste immagini e usarle commercialmente?
Sì. Le immagini sono generate sul nostro server a partire da forme vettoriali, quindi niente foto di terzi, niente domande di licenza e nessun obbligo di attribuzione. Incorporale direttamente o scaricale.
Perché SVG e quali sono i limiti di dimensione?
Un avatar SVG pesa di solito qualche centinaio di byte, si adatta a qualsiasi densità di schermo e si può ricolorare con i CSS. Larghezza e altezza possono andare da 16 a 2048 pixel; oltre viene ridotto a 2048.