Skip to main content
inventory:write The inventory:write scope allows you to trigger AI-powered description generation for vehicles in your inventory. You can generate a description for a single vehicle by VIN or submit a batch of up to 50 VINs at once.

Endpoints

MethodPathDescription
POST/public/inventory/{vin}/descriptionGenerate description for a single vehicle
POST/public/inventory/descriptions/batchGenerate descriptions in batch

Generate description

POST /public/inventory/{vin}/description
Triggers AI description generation for a specific vehicle. The process runs asynchronously. Use the Get AI description endpoint or the inventory.description.completed webhook event to check when the description is ready.

Path parameters

NameTypeRequiredDescription
vinstringYesVehicle Identification Number

Request body

No request body is required.

Example

curl -X POST https://api.app.hrizn.io/v1/public/inventory/1HGBH41JXMN109186/description \
  -H "X-API-Key: hzk_your_key_here"

Response — 202 Accepted

{
  "data": {
    "vin": "1HGBH41JXMN109186",
    "status": "generating"
  }
}

Status codes

CodeDescription
202Description generation started
400VIN is required
401Missing or invalid API key
403API key does not have inventory:write scope
404Vehicle not found or belongs to a different site
429Rate limit exceeded
500Internal server error

Generate descriptions in batch

POST /public/inventory/descriptions/batch
Triggers AI description generation for multiple vehicles in a single request. Each VIN is processed independently — if one fails, the others still succeed.

Request body

FieldTypeRequiredDescription
vinsarray of stringsYesVINs to generate descriptions for (1-50 items, each 11-17 characters)

Example

curl -X POST https://api.app.hrizn.io/v1/public/inventory/descriptions/batch \
  -H "X-API-Key: hzk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "vins": [
      "1HGBH41JXMN109186",
      "2T1BU4EE5DC012345",
      "5YJSA1E26MF123456"
    ]
  }'

Response — 202 Accepted

{
  "data": {
    "items": [
      {
        "vin": "1HGBH41JXMN109186",
        "status": "generating"
      },
      {
        "vin": "2T1BU4EE5DC012345",
        "status": "generating"
      },
      {
        "vin": "5YJSA1E26MF123456",
        "status": "generating"
      }
    ]
  }
}

Response — Partial failure

{
  "data": {
    "items": [
      {
        "vin": "1HGBH41JXMN109186",
        "status": "generating"
      },
      {
        "vin": "INVALIDVIN123",
        "status": "failed",
        "error": "Vehicle not found or generation failed"
      }
    ]
  }
}
Failed items will have status: "failed" with an error message. This does not affect the other items in the batch.

Status codes

CodeDescription
202Batch accepted (check individual item statuses)
400Validation error (empty array, exceeds 50 VINs, or invalid VIN format)
401Missing or invalid API key
403API key does not have inventory:write scope
429Rate limit exceeded
500Internal server error

Error response — Missing scope

If your API key does not include inventory:write, any request to these endpoints returns:
{
  "error": {
    "code": "forbidden",
    "message": "This API key requires one of the following scopes: inventory:write",
    "details": {
      "required_scopes": ["inventory:write"]
    }
  }
}
Last modified on March 1, 2026