Référence API

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 directly
  • GET /v1/avatar/link: stores the generated avatar in configured object storage and returns signed-link metadata
  • GET /avatar/<kind>/<identity>/webp: path-style public avatar URL
  • GET /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é manquante
  • 408: délai dépassé pendant la génération ou le stockage
  • 429: limite de débit dépassée
  • 500: échec du rendu ou du stockage

OpenAPI

Pour les clients générés ou l'outillage, utilisez /docs/openapi.json.