Availability API

Free REST API for our service-by-country availability database. Updated automatically. Use it to power compliance checks, regional feature flags, or any app that needs to know "is X available in Y."

Data quality, honestly

Every row in our response includes a source_type field so you know exactly where the data came from:

If your use case requires only first-party scraped data, filter for source_type=official_scraped in your code. Paid tier customers can request all-scraped-only data as a feed.

Quickstart

# All availability rows (default 500 max, up to 5000)
curl https://isitavailablein.com/api/v1/availability

# Filter by service
curl 'https://isitavailablein.com/api/v1/availability?service=chatgpt'

# Filter by country (ISO2)
curl 'https://isitavailablein.com/api/v1/availability?country=NP'

# Filter by status
curl 'https://isitavailablein.com/api/v1/availability?status=no'

# Combine filters + CSV format
curl 'https://isitavailablein.com/api/v1/availability?country=CN&status=no&format=csv'

Response schema (JSON)

{
  "meta": {
    "count": 1,
    "limit": 500,
    "generated_at": "2026-05-23T...",
    "docs": "https://isitavailablein.com/api-docs"
  },
  "filters": { "service": "chatgpt", "country": "CN", "status": null, "format": "json" },
  "data": [
    {
      "service_slug": "chatgpt",
      "service_name": "ChatGPT",
      "service_category": "AI",
      "country_iso2": "CN",
      "country_name": "China",
      "status": "no",            // yes | no | partial | vpn_only
      "signup_friction": null,    // easy | medium | hard | blocked | null
      "payment_ok": null,         // yes | no | workaround | null
      "phone_verify_ok": null,    // yes | no | workaround | null
      "workaround": null,         // free-text instruction
      "last_verified": "2026-04-22",
      "source": "openai-official"
    }
  ]
}

Query parameters

ParamTypeDefaultDescription
servicestring (slug)e.g. chatgpt, netflix. See /services for full list.
countryISO2 stringe.g. NP, US, CN
statusenumyes, no, partial, vpn_only
formatjson or csvjsonCSV uses standard comma-quoting
limitinteger500Max 5000

Rate limits

Free tier: 1,000 requests per day per IP. CORS is open so the API is callable from browsers (used by our public embed widget too). Responses are CDN-cached for ~10 minutes.

Paid tier — coming for SaaS & compliance teams

Need higher rate limits, an SLA, historical data, change webhooks, or a signed data dump for compliance audit? We're rolling out a paid tier for fintech / SaaS teams who need authoritative service-availability data.

Interested? Get in touch with your use case and we'll set up a call.

Code samples

JavaScript (browser or Node)

const res = await fetch('https://isitavailablein.com/api/v1/availability?service=chatgpt&country=CN');
const { data } = await res.json();
console.log(data[0].status); // "no"

Python

import requests
r = requests.get('https://isitavailablein.com/api/v1/availability',
                 params={'service': 'chatgpt', 'country': 'CN'})
print(r.json()['data'][0]['status'])

Attribution

The free tier asks (but doesn't require) that you link back to isitavailablein.com as the data source. A canonical attribution line:

Data: IsItAvailableIn (isitavailablein.com)

License

Free tier output is provided AS-IS for non-mission-critical use. For compliance, contractual or financial decisions, use the paid tier with an SLA + signed data attestation.