---
title: "Shop products"
method: GET
path: "/v1/products"
tags: ["Shop"]
---

# Shop products

`GET /v1/products`

## Request

- Base URL: `https://api.nogpets.com`
- URL: `https://api.nogpets.com/v1/products`
- Auth: none required

Active products with variants and stock, and the delivery options. `SHOP_OFF` (409) while the shop is closed.

## Query parameters

- `category` 'FOOD' | 'TOYS' | 'BEDS' | 'ACCESSORIES' | 'CARE'
- `petType` 'DOG' | 'CAT'
- `q` string

## Response `200`

Products and delivery options

- Catalogue
  - `products` Product[], required
    - `id` string, required
    - `name` string, required
    - `slug` string
    - `category` string, required
    - `blurb` string
    - `petTypes` string[]
    - `priceCents` integer, required
    - `compareAtCents` integer, nullable
    - `variants` Variant[]
      - `id` string, required
      - `label` string, required
      - `priceCents` integer, required
      - `inStock` boolean, required
    - `inStock` boolean, required
    - `deliverWithVisit` boolean
    - `image` string, uri, nullable
    - `contents` object[]: A box's contents (bundles only); it's in stock when every item is.
      - `productId` string, required
      - `name` string, required
      - `variantLabel` string
      - `qty` integer, required
  - `shipping` ShippingMethod[], required
    - `id` string, required
    - `label` string, required
    - `feeCents` integer, required
    - `eta` string
    - `postalCodes` string[]
  - `freeShippingOverCents` integer, nullable
  - `note` string

## Other responses

- `409`: A rule said no: `NO_COVERAGE`, `NO_AVAILABILITY`, `SLOT_TAKEN`, `TOO_LATE`, `CONFIRM_REQUIRED` (with `details.summary`), `NOTHING_TO_PAY`, `SHOP_OFF`, `STOCK`, `SHIPPING`, `DISCOUNT`, `CASH`, `FAILED_PRECONDITION`; business sign-up: `UNDER_REVIEW`, `APPROVED`, `NOT_READY`, `TOO_MANY`, `LISTING_TAKEN`, `PAYFAST_ZA_ONLY`. `NO_COVERAGE` carries `details.leadId`, `details.message` (tell the person) and `details.next`.
- `429`: Too many requests (`RATE_LIMIT`). `Retry-After` says when to try again.

---

[API](https://skmtc.dev/nogpets/apis/nogpets-api.md) · [All operations](https://skmtc.dev/nogpets/apis/nogpets-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nogpets/apis/nogpets-api/revisions/a202c1012173?raw)
