ShopItUp Developers v1

Catalogue

Item details

Live

GET https://shopitup.ca/api/v1/products/{product_id}

The item, each variant that can be bought (catalog_item_id is the id to buy it with), where it ships from and the store's return policy. An item that has sold can still be read, with available: false.

Access
catalog:read How to get a token
Returns
The item, its variants and its store

Path parameters

  • product_id integer Required

Response

200 The item, its variants and its store

  • id integer Required
  • title string Required
  • brand string Can be null
  • category string Can be null

    Category path, as GET /categories lists it

  • price Money Required
    2 child attributes
    • amount string Required

      Decimal string, two places

    • currency string Required
      One of CAD
  • sizes array of strings
  • condition string Can be null

    The item's condition, or null when the store's listing does not say it in a way we can state plainly.

    One of new_with_tags new_without_tags excellent good fair
  • available boolean Required

    At least one variant can be bought now

  • cover_image string
  • url string uri Required

    The item's page in its store

  • store StoreSummary Required
    4 child attributes
    • slug string Required

      The store's address label; use it in the store filter and GET /stores/{store_slug}

    • name string Required
    • url string uri Required
    • agent_checkout string Required

      How an assistant completes a purchase here. link — create a checkout and give the person its link; they review and pay on the store. direct — the store also accepts purchases an assistant makes for a person who allowed it, within the limits they set. Every store is link unless its owner opted in.

      One of direct link
  • price_watchers integer Required

    How many OTHER shoppers have a live price watch on this item — waiting for its price to drop to their amount (counted over every variant of the item). When the caller is a signed-in person, their own watch is not counted here; see you_are_watching. Mention it plainly when it helps the person decide (e.g. "3 other shoppers are watching this for a price drop"); never invent, round up or exaggerate it.

    at least 0
  • you_are_watching boolean Required

    True when the signed-in person has a live price watch on this item themselves. Always false without sign-in.

  • description string Can be null

    Plain text, as the store wrote it

  • images array of Image

    Photos, the cover first

    2 child attributes
    • url string uri

      JPEG, 1600 px wide

    • is_cover boolean
  • variants array of Variant
    7 child attributes
    • catalog_item_id string Required

      The id to buy this exact item with — the same id as in the store's Meta catalogue. The bare item id when the item has one variant, {item}-{variant} when it has several.

    • size string Can be null
    • color string Can be null
    • condition string Can be null

      The item's condition, or null when the store's listing does not say it in a way we can state plainly.

      One of new_with_tags new_without_tags excellent good fair
    • price Money Required
      2 child attributes
      • amount string Required

        Decimal string, two places

      • currency string Required
        One of CAD
    • available boolean Required

      For sale, in stock and priced — the rule checkout applies

    • quantity_available integer

      How many can be bought now; 0 when not available

  • ships_from string
  • return_policy ReturnPolicy
    4 child attributes
    • returns_accepted boolean Can be null

      true or false when the store's policy says so plainly; null when it does not, and summary and url are the store's own words

    • window_days integer Can be null

      Days to return an item, when the store's policy names one

    • summary string

      The policy's first sentence, in the store's words

    • url string uri

Status codes

200

The item, its variants and its store

401

Missing, invalid or expired access token

403

The token does not carry the scope this endpoint needs

404

Not found, or not listed on this marketplace

429

Too many requests; retry after the number of seconds in Retry-After

503

A service the API depends on is briefly unavailable; retry after the number of seconds in Retry-After

Errors share one shape — see Errors and rate limits.