API Reference

Product Types

Product type management and knowledge

List product types

GET
/v2/product-types

Query Parameters

q?string
category_id?string
is_active?|
limit?number
Default100
Range1 <= value <= 100
cursor?string

Cursor for pagination

sort?string
Default"name"
include?string

Comma-separated includes: 'knowledge_stats' adds knowledge_entry_count, knowledge_types, has_brand_overrides per type

Response Body

application/json

curl -X GET "https://api.covala.com/v2/product-types"
{
  "success": true,
  "data": [
    {
      "id": "string",
      "name": "string",
      "slug": "string",
      "subcategory_id": "string",
      "is_active": true,
      "level": 0,
      "path": "string"
    }
  ],
  "meta": {
    "requestId": "string",
    "timestamp": "string",
    "responseTime": 0,
    "version": "string",
    "cached": true
  },
  "pagination": {
    "total": 0,
    "limit": 0,
    "offset": 0,
    "page": 0,
    "cursor": "string",
    "hasMore": true,
    "nextCursor": "string",
    "prevCursor": "string"
  }
}

Get product type attribute schema

GET
/v2/product-types/{slug}/attributes

Path Parameters

slug*string
Match^[a-z0-9-]+$
Length1 <= length

Response Body

application/json

application/json

curl -X GET "https://api.covala.com/v2/product-types/string/attributes"
{
  "success": true,
  "data": {
    "product_type": {
      "name": "string",
      "slug": "string",
      "shopify_category_id": "string",
      "shopify_category_path": "string"
    },
    "identity_dimensions": [
      "string"
    ],
    "variant_dimensions": [
      "string"
    ],
    "valid_spec_keys": [
      "string"
    ],
    "controlled_values": {
      "property1": {
        "shopify_handle": "string",
        "shopify_name": "string",
        "values": [
          "string"
        ]
      },
      "property2": {
        "shopify_handle": "string",
        "shopify_name": "string",
        "values": [
          "string"
        ]
      }
    },
    "curated_attributes": [
      null
    ]
  }
}
{
  "success": false,
  "error": {
    "code": "string",
    "message": "string"
  }
}

Get knowledge for a product type

GET
/v2/product-types/{slug}/knowledge

Path Parameters

slug*string
Match^[a-z0-9-]+$
Length1 <= length

Query Parameters

type?string

Filter by knowledge type (maintenance_schedule, lifespan, tip, cost_of_ownership, failure_modes, buying_guide, install_checklist, error_code)

context?string

Filter by app context: 'home' returns general+home entries, 'office' returns general+office entries, omit for all

Value in"home" | "office" | "general"
code?string

Filter error codes by code value (e.g., 'E24', 'OE', '5E'). Searches structured_data->code field. Implies type=error_code

issue?string

Filter error codes by canonical issue (e.g., 'drain_failure', 'door_lock', 'temperature_sensor'). Searches structured_data->canonical_issue. Implies type=error_code

brand?string

Include brand-specific knowledge overrides. Returns entries with brand_overrides array when brand matches

Response Body

application/json

application/json

curl -X GET "https://api.covala.com/v2/product-types/string/knowledge"
{
  "success": true,
  "data": {
    "product_type": {
      "id": "string",
      "name": "string",
      "slug": "string"
    },
    "knowledge": [
      {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "type": "string",
        "title": "string",
        "content": "string",
        "data": null,
        "priority": "string",
        "source": "string",
        "source_url": "string",
        "sort_order": 0
      }
    ]
  },
  "meta": {
    "requestId": "string",
    "timestamp": "string",
    "responseTime": 0,
    "version": "string",
    "cached": true
  }
}
{
  "success": false,
  "error": {
    "code": "string",
    "message": "string",
    "userMessage": "string",
    "details": null,
    "retryable": true,
    "retryAfter": 0
  },
  "meta": {
    "requestId": "string",
    "timestamp": "string",
    "responseTime": 0,
    "version": "string",
    "cached": true
  }
}