carrier-explode Explode and decode carrier data GitHub About

API

The API serves what this site shows as JSON, at no charge and without a key: https://api.carrierexplode.com. Its OpenAPI 3.1 document is https://api.carrierexplode.com/openapi.json.

What it serves

  • A version in the platform-neutral model: the SIMs that select it, its APNs (a password only as hasPassword), and its concepts, such as whether VoLTE is on, each with the native settings it was read from.
  • A version’s settings: every native key decoded, by path (carrier.plist:SupportsVoLTE, config:carrier_volte_available_bool).
  • Features per phone: on, available, or no, for every carrier source of the current build.
  • Builds, what each changed, and the modems each ships; Pixel modem configurations decoded, and their band combinations.
  • Carriers across platforms, linked by the SIMs they claim, and countries.

URLs

Every route is under /v1, platform first, as on this site. <platform> is ios, ipados, watchos or android; <kind> is carriers, countries (Apple only) or defaults.

RouteWhat
/v1/platforms, /v1/featuresWhat the API covers
/v1/<platform>/<kind>A platform’s sources
/v1/<platform>/<kind>/<name>A source and its lines
/v1/<platform>/<kind>/<name>/versionsA line’s versions, newest first
/v1/<platform>/<kind>/<name>/<version>A version, decoded
/v1/<platform>/<kind>/<name>/<version>/settingsIts native settings
/v1/android/<kind>/<name>/<version>/modemsThe modem configurations its SIMs select
/v1/<platform>/builds, …/builds/<build>Builds (ios, android)
…/builds/<build>/changes, …/builds/<build>/modemsWhat a build changed, and its modems
/v1/<platform>/phones, …/phones/<device>/featuresThe current build’s phones, and each carrier’s features on one
/v1/carriers, /v1/carriers/<id>Carriers
/v1/countries, /v1/countries/<iso>Countries
/v1/android/modem-configs/<sha>, /v1/android/combos/<key>A modem configuration, and its band combinations

<version> is a slug from the versions list (72.0, 64.1@23a341) or latest. Android settings differ per Pixel, so a version is on a device’s line: ?line=tokay, the newest Pixel by default. A model-specific Apple bundle’s line is its product type.

Paging

A list answers a page at a time, limit items (100 by default, at most 500), with next naming the next page: follow next.url, or pass next.cursor as cursor. next is null on the last page.

A query has one spelling: parameters in order, defaults left out. Another spelling redirects to it, and an unknown parameter is an error. An error is JSON too: error.status and error.message.

Caching

Answers are cached at the edge until the next index is published, which drops the ones it changes. A version named by its slug never changes; latest follows the line. Answers carry an ETag, so a repeat request can be a 304.

Rate limits

Per IP address, per minute, shared with this site, and counted at each Cloudflare location:

  • 120 requests to the index: lists, sources, builds, phones, carriers, countries.
  • 60 requests that read a decoded record: a version, its settings, a build’s modems, a modem configuration or its band combinations.

An answer from the cache does not count. Past a limit, the API answers 429 with Retry-After.

Please be respectful, and send a User-Agent that names your product. If you intend to use the service at high volume, please contact Alec at <alec> @ simplyalec.com first.

Examples

  • /v1/ios/carriers?limit=50: the first 50 iPhone carrier bundles.
  • /v1/ios/carriers/ATT_US/latest: AT&T’s newest iPhone bundle, decoded.
  • /v1/android/carriers/tmobile_us/latest/settings?line=tokay: every CarrierSettings key T-Mobile’s file sets on one Pixel.
  • /v1/ios/phones/iPhone18,1/features: each carrier’s features on one iPhone.