Installgraph API

The Installgraph API tells you which apps a Shopify store runs and which stores run an app, over 10 JSON endpoints at https://api.installgraph.com; 1 credit unlocks 1 store, and a company email gets up to 50 free credits.

View as MarkdownOpenAPI specAll docs for LLMs

Quickstart

You need a work email address. A browser is enough; a terminal is optional. This takes about two minutes.

1. Get a key

Start free with your email and open the sign-in link we send. Your key is step 1 on your dashboard; copy it then, as it is shown once. With a company email you start with 25 free credits, and 25 more once the link is clicked (once per company domain). Keep the key in an environment variable:

export INSTALLGRAPH_API_KEY="sfs_…"

2. Count before you pay

Counts are free. How many UK stores run Klaviyo?

curl "https://api.installgraph.com/v1/apps/klaviyo/companies/count?country=GB" \
  -H "Authorization: Bearer $INSTALLGRAPH_API_KEY"
{ "data": { "app": "klaviyo", "count": 1284 }, "meta": { "creditsUsed": 0, "creditsRemaining": 50 } }

3. Pull the rows you need

Each store in the page costs 1 credit. limit caps the spend.

curl "https://api.installgraph.com/v1/apps/klaviyo/companies?country=GB&limit=10" \
  -H "Authorization: Bearer $INSTALLGRAPH_API_KEY"

The same call in JavaScript (Node 18+) and Python:

const res = await fetch("https://api.installgraph.com/v1/apps/klaviyo/companies?country=GB&limit=10", {
  headers: { Authorization: `Bearer ${process.env.INSTALLGRAPH_API_KEY}` },
});
const { data, pagination, meta } = await res.json();
console.log(data.map((s) => s.domain), meta.creditsRemaining);
import os, requests

res = requests.get(
    "https://api.installgraph.com/v1/apps/klaviyo/companies",
    params={"country": "GB", "limit": 10},
    headers={"Authorization": f"Bearer {os.environ['INSTALLGRAPH_API_KEY']}"},
)
body = res.json()
print([s["domain"] for s in body["data"]], body["meta"]["creditsRemaining"])

No code: a CSV in your browser

Add .csv to any endpoint and your key as ?key=, and open the URL. The browser downloads a spreadsheet, charged the same as the JSON:

https://api.installgraph.com/v1/apps/klaviyo/companies.csv?country=GB&limit=10&key=sfs_…

Nested fields become columns (industry.category), and lists are joined with "; ". limit (up to 500) still caps the spend; the next page's cursor is in the X-Next-Cursor response header.

To look up one store instead: GET /v1/companies/{domain}.

Conventions

  • Base URL: https://api.installgraph.com. Every path starts with /v1. HTTPS only.
  • Auth: Authorization: Bearer sfs_… (or X-API-Key) from code, or ?key=sfs_… on a URL in a browser. See Authentication.
  • CSV: add .csv to any endpoint's path for a spreadsheet instead of JSON.
  • Responses: JSON. A success is { "data", "meta" }; lists add "pagination". An error is { "error": { "code", "message", "requestId" } }. See Errors.
  • Times are ISO 8601 in UTC (2026-11-02T03:40:12.000Z). Countries are ISO 3166-1 alpha-2 (GB).
  • Missing values are null, never omitted: every documented field is always present.
  • Freshness: each store's homepage is scanned once a week. See Data model.
  • Stability: within v1, fields and error codes are added but never renamed or removed. Ignore fields you do not recognise.

Endpoints

Endpoint What it returns Cost
GET /v1/companies/{domain} A store's current stack 1 credit
GET /v1/apps/{slug}/companies Stores running an app 1 credit per store
GET /v1/apps/{slug}/companies/count How many stores run an app (free) Free
GET /v1/events Installs and removals 1 credit per store
GET /v1/apps The app catalogue Free
GET /v1/industries The industry taxonomy, regions and order-value bands Free
GET /v1/public/stats App popularity by category, region and industry Free
GET /v1/usage Your balance and recent usage Free
GET /v1/pricing Prices, packs and rules (no key) Free
POST /v1/billing/purchase Buy a credit pack on the saved card Pack price

Guides

Machine-readable

Support

Quote the requestId from the response (also in the X-Request-Id header). For more than $1,000 or 40,000 stores in 30 days, the full dataset, or a weekly changes feed: Talk to us.