Docs
Ceci est la référence produit de l'API publique. La même identité, le même tenant, la même version de style, la même famille d'avatar, les mêmes options, la même taille et la sortie WebP sont destinés à rester stables dans une version majeure.
Endpoints principaux
GET /v1/avatar: returns an avatar asset directlyGET /v1/avatar/link: stores the generated avatar in configured object storage and returns signed-link metadataGET /avatar/<kind>/<identity>/webp: path-style public avatar URLGET /docs/openapi.json: machine-readable API description
Endpoints opérationnels
GET /healthz est public pour les load balancers et les contrôles de disponibilité. GET /metrics est limité au loopback et renvoie 404 aux pairs non locaux.
Prise en charge des namespaces
Utilisez tenant et style_version pour séparer les espaces d'identité visuelle entre produits ou phases de déploiement.
GET https://hashavatar.app/v1/[email protected]&tenant=acme&style_version=v2&algorithm=sha512&kind=wizard&background=white&accessory=hat&color=deep-sea-blue&expression=cool&shape=squircle&format=webp&size=256
Identifiants anonymes
Envoyez un identifiant interne stable ou un hash applicatif à sens unique au lieu de données personnelles brutes.
printf '%s' '[email protected]' | sha256sum | cut -d' ' -f1
Limites de débit
Le service public applique des limites côté origine, avec des limites plus strictes sur /v1/avatar/link, les requêtes directes avec persist=true et /og.png, car les écritures de stockage objet et le rendu Open Graph sont plus coûteux que le rendu direct.
Délais
La génération d'avatars et les opérations de stockage sont bornées par des délais serveur afin que les requêtes coûteuses ne monopolisent pas l'origine indéfiniment.
Erreurs
400: kind invalide, algorithme ou format non pris en charge, taille invalide ou identité manquante408: délai dépassé pendant la génération ou le stockage429: limite de débit dépassée500: échec du rendu ou du stockage
OpenAPI
Pour les clients générés ou l'outillage, utilisez /docs/openapi.json.