API-reference

Dokumentation

Dette er den produktrettede reference for den offentlige API. Samme identitet, tenant, stilversion, avatarfamilie, stilindstillinger, størrelse og WebP-output er beregnet til at forblive stabile inden for en major-version.

Core endpoints

  • 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

Operationelle endpoints

GET /healthz er offentlig for load balancers og uptime checks. GET /metrics er loopback-only og returnerer 404 til ikke-lokale peers.

Namespace-understøttelse

Brug tenant og style_version til at holde visuelle identitetsrum adskilt mellem produkter eller rollout-faser.

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

Anonyme ID'er

Send en stabil intern id eller en envejs application hash i stedet for rå persondata.

printf '%s' '[email protected]' | sha256sum | cut -d' ' -f1

Rate limits

Den offentlige service anvender origin-side rate limits, med strengere limits på /v1/avatar/link, direkte avatar-requests med persist=true og /og.png, fordi objektlager-skrivninger og Open Graph-rendering er dyrere end direkte rendering.

Timeouts

Avatar-generering og lageroperationer er begrænset af server-side timeouts, så dyre requests ikke kan monopolisere origin uendeligt.

Fejl

  • 400: ugyldig kind, ikke-understøttet algoritme eller format, størrelse eller manglende identitet
  • 408: genererings- eller lager-timeout
  • 429: rate limit overskredet
  • 500: rendering- eller lagerfejl

OpenAPI

Til genererede clients eller tooling, brug /docs/openapi.json.