😺 PromoCat

Public API

Base URL: https://promocat.mypromosearch.au. Every endpoint below requires an API key — ask the site owner for one.

Authentication

Send your key as a bearer token on every request:

Authorization: Bearer pk_your_key_here

GET /api/v1/products

Paginated list of active products. Access is limited to the suppliers allowed for your API key (keys with no restriction see all suppliers). Query params (all optional): page, limit (max 100), category (matches GWS or supplier category), search, supplier (a supplier's slug within your allowed set). Each product includes category (GWS category when set, otherwise supplier category), supplier_category, and gws_category. decoration_options is a structured breakdown of branding/decoration methods (each with a unit price and setup price), where decoration stays as a plain-text summary of the same data.

curl "https://promocat.mypromosearch.au/api/v1/products?category=Bags" \
  -H "Authorization: Bearer pk_your_key_here"
{
  "total": 1,
  "page": 1,
  "totalPages": 1,
  "data": [
    {
      "id": "6273e0a9-...",
      "name": "Branded Tote Bag",
      "slug": "branded-tote-bag",
      "sku": "TOTE-001",
      "brand": "Acme",
      "price": 12.5,
      "category": "Bags",
      "supplier_category": "Tote Bags",
      "gws_category": "Bags",
      "colours": "Navy, Black",
      "dimensions": "38 x 42 cm",
      "material": "Cotton canvas",
      "decoration": "Screen Print, Embroidery",
      "decoration_options": [
        {"type": "DO", "label": "Screen Print", "description": "One colour screen print", "unit_price": 0.85, "setup_price": 45.0},
        {"type": "DE", "label": "Embroidery", "description": "Up to 8000 stitches", "unit_price": 1.2, "setup_price": 60.0}
      ],
      "quantity_breaks": [
        {"qty": 50, "price": 0.98},
        {"qty": 100, "price": 0.88},
        {"qty": 250, "price": 0.77}
      ],
      "stock": 500,
      "image_url": null,
      "supplier": "Acme Promo Co",
      "is_active": true
    }
  ]
}

GET /api/v1/products/<slug>

Single product by slug. Increments its view count.

curl "https://promocat.mypromosearch.au/api/v1/products/branded-tote-bag" \
  -H "Authorization: Bearer pk_your_key_here"

POST /api/v1/events

Report that a product you pulled from the API led to a click or an order on your end. event_type is "order" or "click".

curl -X POST "https://promocat.mypromosearch.au/api/v1/events" \
  -H "Authorization: Bearer pk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"product_id": "6273e0a9-...", "event_type": "order"}'

Try it

Test GET /api/v1/products with your own key, right here.