Models

List and generate AI models (mannequins) for product photography.

GET /api/external/models

Returns a list of available AI models (mannequins).

Headers

HeaderRequiredDescription
X-Api-KeyYesYour API key in the format mk_live_xxx.secret

Query Parameters

FieldTypeRequiredDescription
statusFilterstringNoFilter by status: all (default) or approved

Response

{
  "models": [
    {
      "id": "model_abc123",
      "name": "Female Model - Casual",
      "thumbnail": "https://cdn.example.com/models/thumb_abc123.jpg",
      "status": "DONE",
      "voting": "APPROVED",
      "createdAt": "2026-03-20T14:00:00.000Z"
    }
  ],
  "count": 1
}

Error Responses

CodeMeaning
401Missing or invalid API key
500Internal server error

Notes

  • No credits are consumed by this endpoint.

Example

curl -X GET "https://app.qamera.ai/api/external/models?statusFilter=approved" \
  -H "X-Api-Key: mk_live_abc123.secret456"

POST /api/external/models/register-ideas

Registers a new AI model generation job. Credits are reserved immediately and consumed after processing completes.

Headers

HeaderRequiredDescription
X-Api-KeyYesYour API key in the format mk_live_xxx.secret
Content-TypeYesapplication/json

Request Body

FieldTypeRequiredDescription
preferencesstringYesText description of the desired model appearance and characteristics
countnumberNoNumber of models to generate (default: 10, max: 20)

Response

{
  "createdRecordIds": ["model_001", "model_002", "model_003"],
  "batchId": "batch_abc123",
  "orderId": "order_xyz789",
  "reservationId": "res_def456",
  "creditsReserved": 30
}

Error Responses

CodeMeaning
400Invalid request body or missing preferences
401Missing or invalid API key
402Insufficient credits
500Internal server error

Notes

  • Processing is asynchronous. The job is published to a message queue and processed by a worker.
  • Track the status of generated models using the GET endpoint.
  • Credits are reserved at creation, consumed after successful processing, and refunded on failure.
  • Each request generates a correlationId for log tracing.
  • Maximum of 20 models per request.

Example

curl -X POST "https://app.qamera.ai/api/external/models/register-ideas" \
  -H "X-Api-Key: mk_live_abc123.secret456" \
  -H "Content-Type: application/json" \
  -d '{
    "preferences": "Young female model, athletic build, natural makeup, suitable for sportswear photography",
    "count": 5
  }'