Upload Avatar Images From URLs (async)

Upload images directly to a select avatar profile with the given avatar_id.

Upload Avatar Images (Direct) Documentation

This endpoint POST /v1/avatar-profiles/{avatar_id}/images/upload uploads one or more images from public URLs to an existing avatar profile.

API Request

The API endpoint handles the task asynchronously using a fast queue-based system, and the request immediately returns a request_id. Use the request_id to poll the status of the generation and return the result after the task is completed.

Sending Request

bash
curl -X POST "https://api.zoice.com/v1/avatar-profiles/b92d8dd4-f3fa-4624.../images/upload/urls" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ZOICE_API_KEY" \
  -d '{
	"image_urls": [
      "https://storage.zoice.com/api/assets/image-ddc61733-0ed9-...png",
	  "https://storage.zoice.com/api/assets/image-eec62743-fec9-...png"
    ]
}'

Response Format

json
{
  "request_id": 'd1f47b9c-6387-49d0-a403-...',
  "status": 'processing'
}

Polling and Output

After submitting an asynchronous API request, you can use the request_id obtained from the response to further poll for the status of the generation and ultimately retrieve the result after the completion. Use the /v1/fetch/request_id endpoint to perform this operation.

Polling Request

bash
curl -X GET "https://api.zoice.com/v1/fetch/{request_id}" \
  -H "Authorization: Bearer $ZOICE_API_KEY"

Polling Response

json
{
  "status": "success",
  "type": "avatar_images",
  "output": [
    {
      "image_id": "img_hOUj...",
      "is_uploaded": true,
      "image_url": "https://storage.zoice.com/api/assets/image-fec81743-2fc9-...png",
      "created_at": "2026-10-02T05:31:33.537Z"
    },
	 {
      "image_id": "img_rPSk...",
      "is_uploaded": true,
      "image_url": "https://storage.zoice.com/api/assets/image-beO84345-4gb5-...png",
      "created_at": "2026-10-02T05:31:33.537Z"
    }
  ]
}