List cells in an area
Find cells within a geographic bounding box.
Community coverage
Results include matching cells in our community-contributed dataset. Sparse or empty results do not mean an area has no mobile service. See Coverage and missing cells.
Getting the list of cells in a specified area
GET https://opencellid.org/cell/getInAreaParameters
| Name | Type | Required | Description |
|---|---|---|---|
key | string | Yes | API key assigned to the user |
BBOX | string | Yes | Bounding box as latmin,lonmin,latmax,lonmax (latitude, longitude order). |
mcc | integer | No | Mobile country code; If you want to restrict the result to a specific country |
mnc | integer | No | Mobile network code or system identifier; If you want to restrict the result |
lac | integer | No | Local area code, tracking area code or network id; If you want to restrict the result |
radio | string | No | You can specifiy GSM, UMTS, LTE, NR, NBIOT or CDMA as the radio of returned cells. Otherwise cells with any radios will be returned. |
limit | integer | No | A number defining maximum size of the returned list. Default and maximum value is 50. Use together with offset for paginating through large result sets. |
offset | integer | No | The number of items to skip before beginning to return results. Default is 0. Use together with limit for pagination (e.g., for page 2 with 20 items per page, use offset=20). Note: Since the database is updated minutely, the order of cells may change between API calls. For more consistent results when paginating through large datasets, consider using smaller bounding boxes when the getInAreaSize endpoint indicates a large number of cells. |
format | string | No | You can specify kml, xml, csv or json as output. Default is kml. In csv type of output, there is a first line defining the content of the list. |
Example request
Replace YOUR_API_KEY with your key.
curl "https://opencellid.org/cell/getInArea?key=YOUR_API_KEY&BBOX=52.0,21.0,52.5,21.5&format=json"Use Count cells in an area to get the total count.
Response
Successful requests return HTTP 200. See Errors for error statuses and response formats.
Coordinates are rounded to up to 3 decimal places (2 for MCCs 404–406). Trailing zeros may be omitted. samples uses a positive upstream sample count when available, otherwise 1.
XML
<?xml version="1.0"?>
<rsp stat="ok"><cell lat="39.569" lon="-105.003" mcc="310" mnc="410" lac="7033" cellid="17811" averageSignalStrength="0" range="1898" samples="1" changeable="1" radio="GSM" rnc="0" cid="0" tac="0" sid="0" nid="0" bid="0"/></rsp>CSV
lat,lon,mcc,mnc,lac,cellid,averageSignalStrength,range,samples,changeable,radio,rnc,cid,tac,sid,nid,bid
39.569,-105.003,310,410,7033,17811,,1898,1,1,GSM,,,,,,JSON
{
"count": 1,
"cells": [
{
"lat": 39.569,
"lon": -105.003,
"mcc": 310,
"mnc": 410,
"lac": 7033,
"cellid": 17811,
"averageSignalStrength": 0,
"range": 1898,
"samples": 1,
"changeable": 1,
"radio": "GSM",
"rnc": 0,
"cid": 0,
"tac": 0,
"sid": 0,
"nid": 0,
"bid": 0
}
]
}When no cells match, the request still succeeds with HTTP 200. JSON returns {"count":0,"cells":[]}.
Availability
Each user receives 1,000 API request credits per day. For more credits or commercial plans, see Access and limits.
