> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hoox.video/llms.txt
> Use this file to discover all available pages before exploring further.

# Avatar Status

> Check the generation status of a specific avatar look

## Overview

This endpoint allows you to check the generation status of a specific avatar look. Use this to monitor the progress of avatar creation or editing operations.

## Authentication

<Info>
  This endpoint requires API key authentication. Include your API key in the `Authorization` header.
</Info>

## Query Parameters

<ParamField query="avatar_id" type="string" required>
  Unique identifier of the avatar.
</ParamField>

<ParamField query="look_id" type="string" required>
  Unique identifier of the look to check.
</ParamField>

## Response

<ResponseField name="avatar_id" type="string">
  Unique identifier of the avatar.
</ResponseField>

<ResponseField name="look_id" type="string">
  Unique identifier of the look.
</ResponseField>

<ResponseField name="status" type="string">
  Current status: `pending`, `processing`, `completed`, or `failed`.
</ResponseField>

<ResponseField name="result" type="object">
  Result object (only present when status is `completed`).

  <Expandable title="properties">
    <ResponseField name="id" type="string">
      Unique identifier of the look.
    </ResponseField>

    <ResponseField name="avatar_name" type="string">
      Name of the avatar.
    </ResponseField>

    <ResponseField name="look_name" type="string">
      Name of the avatar look.
    </ResponseField>

    <ResponseField name="gender" type="string">
      Gender of the avatar (`male` or `female`).
    </ResponseField>

    <ResponseField name="place" type="string">
      Setting or location of the look.
    </ResponseField>

    <ResponseField name="accessories" type="array">
      Visible accessories or props in the look.
    </ResponseField>

    <ResponseField name="action" type="string">
      Main action detected for the look.
    </ResponseField>

    <ResponseField name="emotion" type="string">
      Emotion or mood detected for the look.
    </ResponseField>

    <ResponseField name="selfie" type="boolean">
      Whether the look is a selfie-style shot.
    </ResponseField>

    <ResponseField name="format" type="string">
      Format of the look (`vertical` or `horizontal`).
    </ResponseField>

    <ResponseField name="thumbnail" type="string">
      URL of the generated avatar look thumbnail.
    </ResponseField>

    <ResponseField name="model_available" type="array">
      List of available AI models for this look.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="error" type="object">
  Error object (only present when status is `failed`).

  <Expandable title="properties">
    <ResponseField name="code" type="string">
      Error code.
    </ResponseField>

    <ResponseField name="message" type="string">
      Error message.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://app.hoox.video/api/public/v1/avatar/status?avatar_id=avtr_123&look_id=look_abc" \
    -H "Authorization: Bearer your_api_key"
  ```

  ```python Python theme={null}
  import requests

  url = "https://app.hoox.video/api/public/v1/avatar/status"
  params = {"avatar_id": "avtr_123", "look_id": "look_abc"}
  headers = {"Authorization": "Bearer your_api_key"}

  response = requests.get(url, headers=headers, params=params)
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const url = new URL('https://app.hoox.video/api/public/v1/avatar/status');
  url.searchParams.set('avatar_id', 'avtr_123');
  url.searchParams.set('look_id', 'look_abc');

  const response = await fetch(url, {
    headers: {
      'Authorization': 'Bearer your_api_key'
    }
  });

  const data = await response.json();
  console.log(data);
  ```
</RequestExample>

<ResponseExample>
  ```json Pending theme={null}
  {
    "avatar_id": "avtr_123",
    "look_id": "look_abc",
    "status": "pending"
  }
  ```

  ```json Completed theme={null}
  {
    "avatar_id": "avtr_123",
    "look_id": "look_abc",
    "status": "completed",
    "result": {
      "id": "look_abc",
      "avatar_name": "Avatar name",
      "look_name": "Professional Office",
      "gender": "male",
      "place": "office",
      "accessories": ["laptop"],
      "action": "working",
      "emotion": "focused",
      "selfie": false,
      "format": "vertical",
      "thumbnail": "https://cdn.example.com/thumbnail.jpg",
      "model_available": ["premium", "ultra", "veo-3", "veo-3-fast", "veo-3-lite", "omni-flash", "ora-lite", "ora-standard", "ora-pro", "seedance-2", "seedance-2-fast", "seedance-2-1080p"]
    }
  }
  ```

  ```json Failed theme={null}
  {
    "avatar_id": "avtr_123",
    "look_id": "look_abc",
    "status": "failed",
    "error": {
      "code": "LOOK_GENERATION_FAILED",
      "message": "Generation failed"
    }
  }
  ```

  ```json Error 400 - Missing Parameters theme={null}
  {
    "error": "Validation failed",
    "details": [
      {
        "code": "MISSING_AVATAR_ID",
        "message": "avatar_id is required",
        "field": "avatar_id"
      }
    ]
  }
  ```

  ```json Error 404 - Look Not Found theme={null}
  {
    "error": "Look not found"
  }
  ```
</ResponseExample>

## Error Codes

* `INVALID_VALUE`: Missing required parameter (`avatar_id` or `look_id`)
* `Space not found`: The space associated with the API key doesn't exist
* `Avatar not found`: No avatar found with the specified `avatar_id`
* `Look not found`: No look found with the specified `look_id` for the avatar
* `LOOK_GENERATION_FAILED`: The look generation process failed (returned in status response when status is `failed`)
