DEVELOPERS

Australian grocery data. One API.

49,000+ products across Coles, Woolworths, ALDI and Harris Farm. Real prices updated weekly, cross-retailer comparison by barcode, and up to 12 months of price history. Free tier included.

-- Products
4 Retailers
7,800+ Barcode matches
11 Endpoints

Get an API key

Free tier: 30 requests/minute, 1,000/day, 30 days of price history. No credit card.

By registering, you agree to the API Terms of Use.

Quick start

Search for products
curl "https://pinch-app.com/api/products/search?q=milk&limit=3" \
  -H "Authorization: Bearer pk_live_YOUR_KEY"
Compare prices by barcode
curl "https://pinch-app.com/api/compare/9300675016902" \
  -H "Authorization: Bearer pk_live_YOUR_KEY"
Compare a basket across retailers
curl -X POST "https://pinch-app.com/api/basket/compare" \
  -H "Authorization: Bearer pk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"query":"full cream milk 2L"},{"query":"white bread"},{"query":"bananas"}]}'
Response format
{
  "data": [...],
  "meta": {
    "total": 1518,
    "limit": 3,
    "offset": 0,
    "data_source": "pinch",
    "generated_at": "2026-05-14T06:49:05.027Z"
  }
}

Endpoints

All endpoints are relative to https://pinch-app.com/api

GET /health No auth

Health check and data freshness. Returns retailer list, product counts, and last update timestamps.

GET /products/search

Full-text search across all products. Falls back to fuzzy matching for special characters.

q required Search query
retailer Filter: Woolworths, Coles, Aldi, Harris Farm
category Filter by category name
on_special true for specials only
sort relevance (default), price_asc, price_desc, unit_price_asc
limit 1-50, default 20
offset Pagination offset, default 0
GET /products/:id

Get a single product by ID. IDs are returned in search results and vary by retailer (e.g. 216872 for Woolworths, coles_1154961 for Coles).

GET /products/:id/price-history

Historical price data with stats (lowest, highest, average). History depth depends on your tier.

days Max days of history. Free: 30, Registered: 90, Partner: 365
GET /compare/:barcode

Cross-retailer price comparison by EAN-13 barcode. Returns all retailers stocking the product, sorted cheapest first. Approximately 7,800 products have barcode matches.

GET /specials

Current specials and promotions, sorted by savings amount (biggest discounts first).

retailer Filter by retailer
category Filter by category
limit 1-50, default 20
offset Pagination offset, default 0
GET /categories

List all product categories with product counts.

GET /retailers

Retailer statistics: product counts, specials counts, average prices, and last update time.

POST /basket/compare

Submit a grocery list and get the total cost at each retailer. Finds the best match per retailer for each item and computes totals and savings.

items required Array of { query: string } objects (1-20 items)
strategy single_store (default) or split_stores

Rate limits

Free Registered Partner
Per minute 30 60 120
Per day 1,000 5,000 50,000
Price history 30 days 90 days 365 days
Basket items 5 15 20
Attribution Required Optional Optional
Cost Free $99/mo Contact us

New registrations start on the Free tier. To upgrade to Registered ($99/mo), contact us or use the upgrade link after registering. For Partner access, get in touch.

MCP server for AI agents

Connect Claude, ChatGPT, or any MCP-compatible AI agent to live Australian grocery data. Choose remote (recommended) or local.

Remote MCP (recommended, no install required)
{
  "mcpServers": {
    "pinch-grocery": {
      "url": "https://pinch-app.com/api/mcp",
      "headers": {
        "Authorization": "Bearer pk_live_YOUR_KEY_HERE"
      }
    }
  }
}
Local MCP (requires Node.js)
{
  "mcpServers": {
    "pinch-grocery": {
      "command": "npx",
      "args": ["-y", "@pinch-app/mcp-server"],
      "env": {
        "PINCH_API_KEY": "pk_live_YOUR_KEY_HERE"
      }
    }
  }
}

Available tools

search_products Search grocery products with filters
get_product Get full product details by ID
compare_prices Compare prices across retailers by barcode
get_price_history Historical price data with stats
get_specials Current specials and promotions
get_cheapest Find cheapest option across all retailers
compare_basket Compare a grocery list across all retailers

Interactive API docs

Full interactive documentation with try-it-out functionality, code examples in multiple languages, and schema details: Open API docs

Authentication

All endpoints except /health require an API key. Pass it as a Bearer token in the Authorization header:

Authorization header
Authorization: Bearer pk_live_YOUR_KEY

Attribution

Every API response includes "data_source": "pinch". If you display Pinch data publicly, include a visible attribution linking back to pinch-app.com.