Data API
Tool prices in rupees, price changes and tool scores, as JSON. Last updated 11 Nov 2026.
The same data as the open files on /data/, with a key, filters and pages, for your scripts, sheets and AI tools. Read only: GET, JSON, CORS open, so it works from a browser too. The data is refreshed with every site build; each answer says the date it was last checked (as_of).
Endpoints
| Address | What you get |
|---|---|
/api/v1/tools | Every tool: category, cheapest paid price in rupees, how we got it, free plan or not, the day we checked, the vendor's pricing page. Filter with category or q. |
/api/v1/tools/<slug> | One tool: its price row, its score row and every price change we saw for it. |
/api/v1/price-changes?since=2026-11-01 | Price and plan changes on or after a date: old line, new line, the page it was read on. Filter with slug or q. |
/api/v1/scores | Every tool's score out of 100 and its eight inputs. Our own measure from a public formula, not a user rating. |
Lists come in pages: limit 1 to 500 (default 100) and offset. Each list answer has total, so you know when to stop.
Examples
curl -H "Authorization: Bearer $PGAI_KEY" \ "https://productgrowth.in/api/v1/tools?category=payments&limit=20"
curl -H "Authorization: Bearer $PGAI_KEY" \ "https://productgrowth.in/api/v1/price-changes?since=2026-11-01"
const r = await fetch("https://productgrowth.in/api/v1/tools/hubspot", {
headers: { Authorization: "Bearer " + process.env.PGAI_KEY },
});
const tool = await r.json(); // { ok, slug, price, score, price_changes, as_of }
An answer looks like this (cut short):
{ "ok": true, "dataset": "Tool scores", "as_of": "2026-10-29",
"licence": "CC BY 4.0", "attribution": "Cite productgrowth.in",
"total": 360, "offset": 0, "limit": 100,
"rows": [ { "slug": "aadhaar-bridge", "name": "Aadhaar Bridge", "score_points": 10, … } ] }
Key
Sign in, open your account → Products → Key for AI agents and make a key. It is free. Send it as Authorization: Bearer pgai_… (or an x-api-key header). It is the same key as the read API for AI agents. Keep it private; delete it there if it leaks. A new key works within a minute.
Limits
| Calls a day, per key | |
|---|---|
| Free key | 100 |
| Data API plan | 10,000 on every key you own |
The day resets at midnight UTC (5:30 am IST). Each answer carries X-RateLimit-Remaining. Over the limit you get 429, a plain message, a Retry-After header and, on a free key, the link to the plan. Only answers with data count; errors do not.
Data API plan
₹1,999 a month, GST included. 7 days free, then ₹1,999 a month until you cancel. Cancel before day 8 and you pay nothing.
10,000 calls a day on each of your keys. Cancel any time from your account. Changed your mind after the first charge? Within 7 days of your first payment, write to hello@productgrowth.in for a refund. Refunds
Errors
| Code | Means |
|---|---|
| 401 | No key, or the key is not valid (deleted, or mistyped). |
| 404 | No such address, or no tool with that slug. |
| 400 | since is not a date like 2026-11-01. |
| 429 | The key's calls for today are used, or more than 60 calls a minute from one address. |
| 503 | Keys are busy or not switched on. Try again in a minute. |
Terms
The data is CC BY 4.0: use it, also in paid products, and cite productgrowth.in with a link to the tool's page (the page field). Prices are what the vendor's own page said on the day we checked; check before you buy. Do not resell the raw feed as a feed. Questions: write to us.