Documentación
Esta es la referencia orientada a producto para la API pública. La misma identidad, tenant, versión de estilo, familia de avatar, opciones de estilo, tamaño y salida WebP están pensados para permanecer estables dentro de una versión major.
Endpoints principales
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 operativos
GET /healthz es público para load balancers y comprobaciones de disponibilidad. GET /metrics está limitado a loopback y devuelve 404 para peers no locales.
Soporte de namespaces
Usa tenant y style_version para mantener separados los espacios de identidad visual entre productos o fases de despliegue.
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
IDs anónimos
Envía un id interno estable o un hash unidireccional de la aplicación en lugar de datos personales sin procesar.
printf '%s' '[email protected]' | sha256sum | cut -d' ' -f1
Límites de tasa
El servicio público aplica límites de tasa en el origin, con límites más estrictos en /v1/avatar/link, solicitudes directas de avatar con persist=true y /og.png porque las escrituras de almacenamiento de objetos y el renderizado Open Graph son más costosos que el renderizado directo.
Timeouts
La generación de avatares y las operaciones de almacenamiento están acotadas por timeouts del servidor para que las solicitudes costosas no puedan monopolizar el origin indefinidamente.
Errores
400: kind inválido, algoritmo o formato no soportado, tamaño o identidad ausente408: timeout de generación o almacenamiento429: límite de tasa excedido500: fallo de renderizado o almacenamiento
OpenAPI
Para clientes generados o herramientas, usa /docs/openapi.json.