KanutusDocs
EN
kanutus.com Sign in / Create accountSign in

Avatars

GET/v1/avatars

List the published Kanutus avatars: each person comes in variations (angles and settings) with the behavior clips you can pick

Permission: voices:read

Response 200

NameTypeDescription
data requiredobject[]
data[].id requiredstring
data[].name requiredstring
data[].gender required"female" | "male" | "other" | null
data[].age_band required"25-35" | "36-50" | "51-65" | null
data[].style required"formal" | "casual" | null
data[].poster_url requiredstring | nullCover image (the first variation's photo when there is no dedicated cover)
data[].variations requiredobject[]
data[].variations[].code requiredstringa1–a3: same setting, different angles · v1–v3: another setting and outfit
data[].variations[].kind required"angle" | "scene"
data[].variations[].photo_url requiredstring | nullStill photo of this variation
data[].variations[].video_types required"talk-neutral" | "talk-agree" | "idle-aside" | "idle-monitor" | "talk-explain" | "talk-question"[]Behavior clips you can pick for this variation (talk-neutral first)
data[].variations[].preview_urls requiredobjectShort preview clip per video type (null = no preview yet; show the photo)
data[].suggested_voices requiredobjectSuggested voice per language, e.g. {"pt": "…", "en": "…"}

Example

curl
curl "https://api.kanutus.com/v1/avatars" \
  -H "Authorization: Bearer $KANUTUS_API_KEY"
Try it

Runs from your browser against the real API. Use a kt_test_ key: nothing is charged. The key stays in this tab only.

GET /v1/avatars

Responses by status

200 Published avatars
200
{
  "data": [
    {
      "id": "string",
      "name": "Avatar 07",
      "gender": "female",
      "age_band": "25-35",
      "style": "formal",
      "poster_url": "https://example.com",
      "variations": [
        {
          "code": "a1",
          "kind": "angle",
          "photo_url": "https://example.com",
          "video_types": [
            "talk-neutral"
          ],
          "preview_urls": {}
        }
      ],
      "suggested_voices": {}
    }
  ]
}
400 Invalid request
400 application/problem+json
{
  "type": "https://docs.kanutus.com/errors",
  "title": "<code>",
  "status": 400,
  "code": "<code>",
  "message": "…",
  "request_id": "req_…"
}

See all error codes

401 Missing, invalid, expired or revoked credential
401 application/problem+json
{
  "type": "https://docs.kanutus.com/errors",
  "title": "<code>",
  "status": 401,
  "code": "<code>",
  "message": "…",
  "request_id": "req_…"
}

See all error codes

403 Missing permission, blocked or not allowed
403 application/problem+json
{
  "type": "https://docs.kanutus.com/errors",
  "title": "<code>",
  "status": 403,
  "code": "<code>",
  "message": "…",
  "request_id": "req_…"
}

See all error codes

429 Rate limit exceeded (see RateLimit-* and Retry-After headers)
429 application/problem+json
{
  "type": "https://docs.kanutus.com/errors",
  "title": "<code>",
  "status": 429,
  "code": "<code>",
  "message": "…",
  "request_id": "req_…"
}

See all error codes