Attribute sets API
Attribute sets define which fields an enrichment job fills and the prompt behind each one. Read them here to discover the attributeSetId and attributeIds values that enrichment, brand, and category jobs expect.
All three endpoints are read-only. Attribute sets are created and edited in the dashboard under Settings > Attribute Sets.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /attribute-sets |
Product attribute sets |
| POST | /brand-attribute-sets |
Brand attribute sets |
| POST | /product-category-attribute-sets |
Category attribute sets |
Each takes no request body. Send an empty object.
Product attribute sets
Returns every product attribute set in the organization, sorted by name, with the attributes each one contains in display order.
Endpoint: POST /api/{organization}/attribute-sets
Example request
curl -X POST https://catalog-ai.tdcapps.com/api/your-org/attribute-sets \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{}'
Response
{
"success": true,
"data": {
"attributeSets": [
{
"id": "attrset_abc123",
"name": "Hand tools",
"organizationId": "org_abc123",
"attributeSetAttributes": [
{
"order": 0,
"attribute": {
"id": "attr_material",
"name": "Material",
"slug": "material",
"type": "text",
"prompt": "The primary material the tool body is made from.",
"categoryPrompt": null,
"isActive": true
}
}
]
}
]
}
}
Attribute fields
| Field | Type | Description |
|---|---|---|
id |
string | Use this as an entry in attributeIds when creating a job |
name |
string | Display name |
slug |
string | Stable key, useful for mapping into your own schema |
type |
string | The value type the attribute holds |
prompt |
string | The instruction the model follows for this attribute |
categoryPrompt |
string | null | Optional per-category override. Product attribute sets only |
isActive |
boolean | Inactive attributes are skipped by jobs |
Brand attribute sets
The same shape, for brand enrichment jobs. Brand attributes carry no categoryPrompt.
Endpoint: POST /api/{organization}/brand-attribute-sets
curl -X POST https://catalog-ai.tdcapps.com/api/your-org/brand-attribute-sets \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{}'
Category attribute sets
The same shape, for category enrichment jobs. Category attributes carry no categoryPrompt.
Endpoint: POST /api/{organization}/product-category-attribute-sets
curl -X POST https://catalog-ai.tdcapps.com/api/your-org/product-category-attribute-sets \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{}'
Errors
| Status | Meaning |
|---|---|
| 401 | No API key on the request |
| 403 | The key cannot reach this organization |
| 500 | Server error |
Next steps
- Enrichment API - Use an attribute set to run a job
- Attribute Sets - How to define them in the dashboard