Skip to content
Scrappa Get API key
Shopify API 1 credit/request

Shopify Products API Documentation

GET https://scrappa.co/api/shopify/products

Scrappa's GET /api/shopify/products returns the public catalog of a Shopify store as JSON.

Input

store is the store domain, for example allbirds.com. collection is a collection handle and returns only products of that collection. An unknown handle answers 422. limit is 1-250 (default 30). page times limit can not exceed 25000.

What you get

Per product: id, title, handle, url, vendor, product_type, tags, description_html, dates, available, price_min, price_max, options, variants (sku, price, compare_at_price, available, grams, taxable, featured_image) and images with variant_ids. currency is the store currency or null.

Stock

Shopify publishes only a stock flag. available is true or false. There is no quantity.

Pagination

next_page is set whenever the page has products, so a short page does not end the list. An empty page ends it (next_page is null). The page you get is always the page you asked for.

Credits

1 credit per successful request. Stores without a public catalog answer 422 (CATALOG_UNAVAILABLE) and cost nothing.

Shopify Products API Documentation 1 credit/request

Endpoint

Request preview
GET
https://scrappa.co/api/shopify/products
Auth header
x-api-key
Cost
1 credit/request
store = allbirds.com
Response preview
200 OK
{
    "data": {
        "page": 1,
        "count": 1,
        "limit": 1,
        "store": "allbirds.com",
        "currency": "USD",
        "products": [
            {
                "id": 1234567890,
                "url": "https://allbirds.com/products/wool-runner",
                "tags": [
                    "mens"
                ],
...

Parameters

Start with the required fields, then add optional filters only when your use case needs them.

Runnable path

1 required parameter needed before sending a request.

3 optional filters available.

store string Required

Store domain, for example allbirds.com.

Example value allbirds.com
page integer Optional

Page number. Default 1.

Example value 1
limit integer Optional

Products per page, 1-250. Default 30.

Example value 1
collection string Optional

Collection handle to filter by.

Example value example

Response Schema

Example response fields are illustrative; inspect the JSON before integrating.

Example response fields

Scan these fields before integrating.

data meta success
JSON Response
200 OK
{
    "data": {
        "page": 1,
        "count": 1,
        "limit": 1,
        "store": "allbirds.com",
        "currency": "USD",
        "products": [
            {
                "id": 1234567890,
                "url": "https://allbirds.com/products/wool-runner",
                "tags": [
                    "mens"
                ],
                "title": "Wool Runner",
                "handle": "wool-runner",
                "images": [
                    {
                        "id": 1,
                        "alt": null,
                        "src": "https://cdn.shopify.com/example.jpg",
                        "width": 800,
                        "height": 800,
                        "position": 1,
                        "variant_ids": []
                    }
                ],
                "vendor": "Allbirds",
                "options": [
                    {
                        "name": "Size",
                        "values": [
                            "9",
                            "10"
                        ],
                        "position": 1
                    }
                ],
                "variants": [
                    {
                        "id": 1,
                        "sku": "WR-9",
                        "grams": 800,
                        "price": 98,
                        "title": "9",
                        "option1": "9",
                        "option2": null,
                        "option3": null,
                        "taxable": true,
                        "position": 1,
                        "available": true,
                        "featured_image": null,
                        "compare_at_price": null,
                        "requires_shipping": true
                    }
                ],
                "available": true,
                "price_max": 98,
                "price_min": 98,
                "created_at": "2026-01-01T00:00:00Z",
                "updated_at": "2026-10-01T00:00:00Z",
                "product_type": "Shoes",
                "published_at": "2026-01-01T00:00:00Z",
                "description_html": "<p>Everyday sneaker</p>"
            }
        ],
        "next_page": 2,
        "collection": null
    },
    "meta": {
        "credits": 1
    },
    "success": true
}

Errors

Handle these documented responses before retrying or showing customer-facing failures.

422

Validation Error

A parameter is missing or invalid, or the url points to a private, local or non-public address. Not charged.

{
    "error": {
        "code": "VALIDATION_ERROR",
        "message": "The request validation failed"
    },
    "success": false
}
503

Site Unreachable Or Blocked

The site could not be fetched after several tries, or it blocked the request. Not charged.

{
    "error": {
        "code": "UPSTREAM_UNAVAILABLE",
        "message": "The site could not be reached. Please retry shortly."
    },
    "success": false
}
422

Catalog Unavailable Or Unknown Collection

The store has no public catalog (`CATALOG_UNAVAILABLE`), or the collection handle does not exist (`UNKNOWN_COLLECTION`). Not charged.

{
    "error": {
        "code": "CATALOG_UNAVAILABLE",
        "message": "The store does not publish a public catalog."
    },
    "success": false
}

Generate Code with AI

Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.

Try It Live

Test this endpoint in our interactive playground with real data.