Get Product Details

Retrieves detailed product information for a given product URL, including product metadata, available dimensions, and variant-level details such as pricing, availability, images, and attributes.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Retrieve full product details for any URL across CartAI's merchant network — including Shopify stores and major retailers. Returns product metadata, available variant dimensions, and per-variant pricing, availability, images, and attributes in a single call.

When to Use This Endpoint

Use /product/details when you already have a product URL and need structured data about it — variants, stock status, and prices — without scraping the page yourself.

Use caseRecommended approach
Display variant selector UIUse dimensions to build pickers; use variants[] to populate options
Check stock before showing "Add to Cart"Filter variants[] where available: true
Confirm price before checkoutRead price from the matching variant
Found a product via /product/searchPass directUrl from search results as url here to get variant-level detail
Pass a specific variant into POST /checkoutMatch user-selected attributes to a variantId, then use the variant's url

Authentication

Every request must include your API key in the request header.

x-api-key: YOUR_API_KEY_HERE
  • Never embed your API key in client-side code. Always call this endpoint from your backend.

Request Body

FieldTypeRequiredDescription
urlstring✅ YesThe product page URL on the merchant's site.
allVariantsboolean❌ NoWhen true, returns every available variant. When false or omitted, returns a default subset.

Example Request

curl --location 'https://api.cartai.ai/product/details' \
--header 'Content-Type: application/json' \
--header 'x-api-key: <your-api-key>' \
--data '{
  "url": "https://www.natori.com/products/feathers-plunge-t-shirt-bra-black",
  "allVariants": true
}'

Response Schema

A successful 200 response returns a JSON object with the following structure.

Top-level fields

FieldTypeDescription
statusstring"success" when the product was found.
messagestringHuman-readable result summary (e.g. "Product found").
dataobjectContains all product details. See data below.

data

FieldTypeDescription
productobjectCore product metadata. See product below.
commissionUrlstring (URI)Affiliate-tracked version of the product URL, if applicable. Falls back to directUrl.
directUrlstring (URI)Canonical product URL on the merchant's site.
dimensionsarray of stringsThe variant axes for this product (e.g. ["Color", "Band", "Cup"]). Used to label attributes in each variant.
variantsarray of objectsAll variants for this product. See variants[] below.

product

FieldTypeDescription
namestringProduct name as listed by the merchant.
brandstringBrand name.
retailerstringMerchant or store name.
imagestring (URI)URL of the primary product image.
urlstring (URI)Product page URL.

variants[]

Each object in variants represents a single purchasable combination of attributes.

FieldTypeDescription
variantIdstringUnique identifier for this variant on the merchant's platform.
pricenumberPrice for this specific variant.
availablebooleantrue if the variant is in stock and can be purchased. false if out of stock.
imagestring (URI)Image URL for this variant. May differ from the base product image when colors vary.
attributesobjectKey-value map of dimension name to selected value (e.g. { "Color": "Black", "Band": "32", "Cup": "C" }). Keys match the entries in dimensions.
urlstring (URI)Product page URL for this variant.
commissionUrlstring (URI)Affiliate-tracked URL for this variant, if applicable.

Example Response

{
  "status": "success",
  "message": "Product found",
  "data": {
    "product": {
      "name": "Feathers Plunge T-Shirt Bra",
      "brand": "NATORI",
      "retailer": "Natori",
      "image": "//cdn.shopify.com/s/files/1/0859/9853/4942/files/2787276_source_1711606471.jpg?v=1730239729",
      "url": "https://www.natori.com/products/feathers-plunge-t-shirt-bra-black"
    },
    "commissionUrl": "https://www.natori.com/products/feathers-plunge-t-shirt-bra-black",
    "directUrl": "https://www.natori.com/products/feathers-plunge-t-shirt-bra-black",
    "dimensions": ["Color", "Band", "Cup"],
    "variants": [
      {
        "variantId": "49175047242014",
        "price": 72.0,
        "available": true,
        "image": "//cdn.shopify.com/s/files/1/0859/9853/4942/files/2787276_source_1711606471.jpg?v=1730239729",
        "attributes": {
          "Color": "Black",
          "Band": "30",
          "Cup": "A"
        },
        "url": "https://www.natori.com/products/feathers-plunge-t-shirt-bra-black",
        "commissionUrl": "https://www.natori.com/products/feathers-plunge-t-shirt-bra-black"
      },
      {
        "variantId": "49175047373086",
        "price": 72.0,
        "available": false,
        "image": "//cdn.shopify.com/s/files/1/0859/9853/4942/files/2787276_source_1711606471.jpg?v=1730239729",
        "attributes": {
          "Color": "Black",
          "Band": "30",
          "Cup": "DD"
        },
        "url": "https://www.natori.com/products/feathers-plunge-t-shirt-bra-black",
        "commissionUrl": "https://www.natori.com/products/feathers-plunge-t-shirt-bra-black"
      }
    ]
  }
}

Notes

  • Filter variants[] by available: true before presenting options to users — out-of-stock variants are included in the response so you can display them as disabled rather than hidden.
  • dimensions defines the order and naming of keys in each variant's attributes object. Use it to dynamically render variant pickers without hardcoding dimension names.
  • Pass a variant's url (not the top-level directUrl) into POST /checkout when you want to target a specific variant for purchase.
Body Params
uri
required

The product page URL to fetch details for

boolean

When true, returns all available variants for the product

Headers
string
required
Responses

400

Bad Request

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json