{
 "openapi": "3.0.3",
 "info": {
  "title": "Band Atlas API",
  "version": "1.0.0",
  "description": "Will a cellular IoT module or device work on a given country's networks? Band Atlas answers network by network for 46 countries and 155 networks: 4G/5G bands with their evidence (cross-checked by two independent sources, or single-source), 2G/3G switch-off dates, 5G SA, RedCap, LTE-M and NB-IoT, and verdicts for 39 modules and devices with the bands each one lacks. Static JSON, free, no key, CORS enabled, refreshed with every data update. Data is CC BY 4.0: please credit \"Hyper Nexus · Band Atlas\".",
  "termsOfService": "https://www.aiotrf.com/en/ai/band-atlas/data/",
  "contact": {
   "name": "Hyper Nexus",
   "url": "https://www.aiotrf.com/en/ai/band-atlas/developers/",
   "email": "wangf@aiotrf.com"
  },
  "license": {
   "name": "CC BY 4.0",
   "url": "https://creativecommons.org/licenses/by/4.0/"
  }
 },
 "externalDocs": {
  "description": "Developer guide, data downloads and the change feed",
  "url": "https://www.aiotrf.com/en/ai/band-atlas/developers/"
 },
 "servers": [
  {
   "url": "https://www.aiotrf.com/ai/band-atlas/api/v1"
  }
 ],
 "tags": [
  {
   "name": "countries",
   "description": "Networks of a country"
  },
  {
   "name": "devices",
   "description": "Modules and devices"
  },
  {
   "name": "checks",
   "description": "Will this device work in this country"
  }
 ],
 "paths": {
  "/index.json": {
   "get": {
    "tags": [
     "countries",
     "devices"
    ],
    "operationId": "listCountriesAndDevices",
    "summary": "List every country and device covered, with links",
    "responses": {
     "200": {
      "description": "Countries, devices and endpoints",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Index"
        }
       }
      }
     }
    }
   }
  },
  "/countries/{cc}.json": {
   "get": {
    "tags": [
     "countries"
    ],
    "operationId": "getCountryNetworks",
    "summary": "A country's networks: bands with evidence, 2G/3G, SA, RedCap, LTE-M and NB-IoT",
    "parameters": [
     {
      "name": "cc",
      "in": "path",
      "required": true,
      "description": "ISO 3166-1 alpha-2 country code, lower case",
      "schema": {
       "type": "string",
       "enum": [
        "gb",
        "us",
        "kr",
        "cn",
        "jp",
        "de",
        "fr",
        "ae",
        "sa",
        "qa",
        "kw",
        "il",
        "ca",
        "mx",
        "br",
        "es",
        "it",
        "nl",
        "pl",
        "tr",
        "in",
        "sg",
        "id",
        "au",
        "nz",
        "vn",
        "th",
        "my",
        "ph",
        "co",
        "pe",
        "cl",
        "ar",
        "za",
        "om",
        "bh",
        "hk",
        "tw",
        "ie",
        "be",
        "ch",
        "at",
        "pt",
        "se",
        "dk",
        "no"
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The country's networks",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Country"
        }
       }
      }
     },
     "404": {
      "description": "Country not covered"
     }
    }
   }
  },
  "/models/{id}.json": {
   "get": {
    "tags": [
     "devices"
    ],
    "operationId": "getDevice",
    "summary": "A module or device: its bands, and how many networks rate it good, limited or no in each country",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "description": "Device id",
      "schema": {
       "type": "string",
       "enum": [
        "e5576-320",
        "e5577-320",
        "m7350",
        "m7450",
        "rm520n-gl",
        "eg912u-gl",
        "bg77",
        "bg770a-gl",
        "eg25-g",
        "sim7600g-h",
        "bg95-m3",
        "eg915u-eu",
        "sara-r510m8s",
        "nrf9160",
        "ec25-e",
        "ec200u-eu",
        "a7670e",
        "sim7080g",
        "bg96",
        "eg21-g",
        "lara-r6001d",
        "me910c1-ww",
        "rg255c-gl",
        "trb140-0",
        "trb140-1",
        "rutx12-0",
        "rutx12-1",
        "fmc130-me3",
        "fmc130-mcib0",
        "ec25-af",
        "ec25-eux",
        "ec25-mx",
        "ec25-au",
        "e3372h-320",
        "usr-g771-e",
        "usr-dr154-e",
        "mf833v",
        "dongle-400",
        "f40"
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The device",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Device"
        }
       }
      }
     },
     "404": {
      "description": "Device not covered"
     }
    }
   }
  },
  "/check/{id}/{cc}.json": {
   "get": {
    "tags": [
     "checks"
    ],
    "operationId": "checkDeviceInCountry",
    "summary": "Will this device work in this country? A verdict on every network, with the bands it lacks",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "description": "Device id",
      "schema": {
       "type": "string",
       "enum": [
        "e5576-320",
        "e5577-320",
        "m7350",
        "m7450",
        "rm520n-gl",
        "eg912u-gl",
        "bg77",
        "bg770a-gl",
        "eg25-g",
        "sim7600g-h",
        "bg95-m3",
        "eg915u-eu",
        "sara-r510m8s",
        "nrf9160",
        "ec25-e",
        "ec200u-eu",
        "a7670e",
        "sim7080g",
        "bg96",
        "eg21-g",
        "lara-r6001d",
        "me910c1-ww",
        "rg255c-gl",
        "trb140-0",
        "trb140-1",
        "rutx12-0",
        "rutx12-1",
        "fmc130-me3",
        "fmc130-mcib0",
        "ec25-af",
        "ec25-eux",
        "ec25-mx",
        "ec25-au",
        "e3372h-320",
        "usr-g771-e",
        "usr-dr154-e",
        "mf833v",
        "dongle-400",
        "f40"
       ]
      }
     },
     {
      "name": "cc",
      "in": "path",
      "required": true,
      "description": "ISO 3166-1 alpha-2 country code, lower case",
      "schema": {
       "type": "string",
       "enum": [
        "gb",
        "us",
        "kr",
        "cn",
        "jp",
        "de",
        "fr",
        "ae",
        "sa",
        "qa",
        "kw",
        "il",
        "ca",
        "mx",
        "br",
        "es",
        "it",
        "nl",
        "pl",
        "tr",
        "in",
        "sg",
        "id",
        "au",
        "nz",
        "vn",
        "th",
        "my",
        "ph",
        "co",
        "pe",
        "cl",
        "ar",
        "za",
        "om",
        "bh",
        "hk",
        "tw",
        "ie",
        "be",
        "ch",
        "at",
        "pt",
        "se",
        "dk",
        "no"
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Verdicts",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Check"
        },
        "example": {
         "model": {
          "id": "mf833v",
          "name": "MF833V"
         },
         "country": {
          "cc": "TW",
          "name": "Taiwan, China"
         },
         "summary": {
          "good": 1,
          "limited": 2,
          "no": 0
         },
         "networks": [
          {
           "id": "tw-chunghwatelecom",
           "name": "Chunghwa Telecom",
           "verdict": "good",
           "basis": "cross-checked",
           "lte_bands_lacking": [],
           "nr_bands_lacking": []
          },
          {
           "id": "tw-fareastone",
           "name": "FarEasTone",
           "verdict": "limited",
           "basis": "cross-checked",
           "lte_bands_lacking": [
            "B28"
           ],
           "nr_bands_lacking": []
          },
          {
           "id": "tw-taiwanmobile",
           "name": "Taiwan Mobile",
           "verdict": "limited",
           "basis": "cross-checked",
           "lte_bands_lacking": [
            "B28"
           ],
           "nr_bands_lacking": []
          }
         ],
         "single_source": false,
         "page": "https://www.aiotrf.com/en/ai/band-atlas/models/mf833v/tw/"
        }
       }
      }
     },
     "404": {
      "description": "Device or country not covered"
     }
    }
   }
  }
 },
 "components": {
  "schemas": {
   "Status": {
    "type": "object",
    "properties": {
     "state": {
      "type": "string",
      "description": "off, planned, ending, never, none (no claim), yes, unlisted, rolling, b2b, nsa, trial, unclear or unknown"
     },
     "date": {
      "type": "string",
      "nullable": true,
      "description": "YYYY, YYYY-MM or YYYY-MM-DD"
     }
    }
   },
   "Band": {
    "type": "object",
    "properties": {
     "band": {
      "type": "string",
      "example": "B20"
     },
     "confidence": {
      "type": "string",
      "enum": [
       "cross-checked",
       "single-source"
      ]
     },
     "sources": {
      "type": "array",
      "items": {
       "type": "string"
      }
     }
    }
   },
   "Network": {
    "type": "object",
    "properties": {
     "id": {
      "type": "string"
     },
     "name": {
      "type": "string"
     },
     "group": {
      "type": "string",
      "nullable": true
     },
     "core_bands": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "lte": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Band"
      }
     },
     "nr": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Band"
      }
     },
     "status": {
      "type": "object",
      "additionalProperties": {
       "$ref": "#/components/schemas/Status"
      },
      "description": "g2, g3, sa, redcap, ltem, nbiot"
     }
    }
   },
   "Country": {
    "type": "object",
    "properties": {
     "cc": {
      "type": "string"
     },
     "name": {
      "type": "object",
      "properties": {
       "zh": {
        "type": "string"
       },
       "en": {
        "type": "string"
       }
      }
     },
     "checked": {
      "type": "string"
     },
     "single_source": {
      "type": "boolean"
     },
     "networks": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Network"
      }
     },
     "sources": {
      "type": "object",
      "additionalProperties": {
       "type": "object"
      }
     },
     "pages": {
      "type": "object"
     },
     "license": {
      "type": "string"
     }
    }
   },
   "Device": {
    "type": "object",
    "properties": {
     "id": {
      "type": "string"
     },
     "name": {
      "type": "string"
     },
     "vendor": {
      "type": "string",
      "nullable": true
     },
     "kind": {
      "type": "string"
     },
     "lte": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "nr": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "countries": {
      "type": "object",
      "additionalProperties": {
       "type": "object",
       "properties": {
        "good": {
         "type": "integer"
        },
        "limited": {
         "type": "integer"
        },
        "no": {
         "type": "integer"
        }
       }
      }
     },
     "page": {
      "type": "string"
     }
    }
   },
   "NetworkVerdict": {
    "type": "object",
    "properties": {
     "id": {
      "type": "string"
     },
     "name": {
      "type": "string"
     },
     "verdict": {
      "type": "string",
      "enum": [
       "good",
       "limited",
       "no"
      ]
     },
     "basis": {
      "type": "string",
      "enum": [
       "cross-checked",
       "single-source"
      ]
     },
     "lte_bands_lacking": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "nr_bands_lacking": {
      "type": "array",
      "items": {
       "type": "string"
      }
     }
    }
   },
   "Check": {
    "type": "object",
    "properties": {
     "model": {
      "type": "object",
      "properties": {
       "id": {
        "type": "string"
       },
       "name": {
        "type": "string"
       }
      }
     },
     "country": {
      "type": "object",
      "properties": {
       "cc": {
        "type": "string"
       },
       "name": {
        "type": "string"
       }
      }
     },
     "summary": {
      "type": "object",
      "properties": {
       "good": {
        "type": "integer"
       },
       "limited": {
        "type": "integer"
       },
       "no": {
        "type": "integer"
       }
      }
     },
     "networks": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/NetworkVerdict"
      }
     },
     "single_source": {
      "type": "boolean"
     },
     "page": {
      "type": "string"
     }
    }
   },
   "Index": {
    "type": "object",
    "properties": {
     "name": {
      "type": "string"
     },
     "version": {
      "type": "string"
     },
     "updated": {
      "type": "string"
     },
     "license": {
      "type": "string"
     },
     "openapi": {
      "type": "string"
     },
     "countries": {
      "type": "array",
      "items": {
       "type": "object"
      }
     },
     "models": {
      "type": "array",
      "items": {
       "type": "object"
      }
     },
     "check": {
      "type": "string"
     }
    }
   }
  }
 }
}