Unwired Labs (incl. OpenCelliD) · Schema
Geolocation
CompanyLocation APIGeolocationMappingOpenCelliD
Properties
| Name | Type | Description |
|---|---|---|
| token | string | |
| id | string | ID of the device, in case you are in a per-device plan. This could be any unique string such as an IMEI, IMSI, phone number or a hash of any of the previous values, etc. Maximum accepted length is 20 |
| radio | object | |
| mcc | integer | "Mobile Country Code of your operator’s network represented by an integer (Optional). Range: 0 to 999." |
| mnc | integer | Mobile Network Code of your operator’s network represented by an integer (Optional). Range: 0 to 999. On CDMA, provide the System ID or SID, with range: 1 to 32767. |
| cells | array | An array of cell ID objects |
| wifi | array | An array of WiFi objects visible to the device. |
| fallbacks | object | |
| address | object | |
| ip | string | IP address of device. |
| bt | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/unwired-labs/json-schema/unwired-labs-geolocation-schema-schema.json",
"title": "Geolocation",
"x-generated": "2026-10-28",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/_original/unwired-labs-openapi-openapi.yml#/components/schemas/geolocation_schema",
"properties": {
"token": {
"title": "token",
"type": "string"
},
"id": {
"description": "ID of the device, in case you are in a per-device plan. This could be any unique string such as an IMEI, IMSI, phone number or a hash of any of the previous values, etc. Maximum accepted length is 20 chars, and values should only be alphanumeric (a-z, 0-9)",
"title": "id",
"type": "string"
},
"radio": {
"$ref": "#/$defs/radio_schema"
},
"mcc": {
"description": "\"Mobile Country Code of your operator’s network represented by an integer (Optional). Range: 0 to 999.\"",
"format": "int64",
"title": "mcc",
"type": "integer"
},
"mnc": {
"description": "Mobile Network Code of your operator’s network represented by an integer (Optional). Range: 0 to 999. On CDMA, provide the System ID or SID, with range: 1 to 32767.",
"format": "int64",
"title": "mnc",
"type": "integer"
},
"cells": {
"description": "An array of cell ID objects",
"items": {
"$ref": "#/$defs/cell_schema"
},
"type": "array"
},
"wifi": {
"description": "An array of WiFi objects visible to the device.",
"items": {
"$ref": "#/$defs/wifi_schema"
},
"type": "array"
},
"fallbacks": {
"$ref": "#/$defs/fallback_schema"
},
"address": {
"$ref": "#/$defs/geolocation_address_schema"
},
"ip": {
"description": "IP address of device.",
"title": "ip address",
"type": "string"
},
"bt": {
"$ref": "#/$defs/bt_schema"
}
},
"type": "object",
"$defs": {
"all_schema": {
"description": "Enable or disable all fallbacks.",
"enum": [
0,
1
],
"format": "int32",
"type": "integer"
},
"bt_schema": {
"default": 1,
"description": "Specify level of strictness to apply to Borders",
"enum": [
0,
1,
2
],
"format": "int32",
"title": "Border Threshold",
"type": "integer"
},
"cell_schema": {
"description": "You can send 1 to 7 cell ID objects. If your device supports scanning for more than 7 cell objects, reach out to us and we’ll increase this limit on your account. The first cell object has to be that of the serving cell, i.e. the tower the device is connected to. The others are neighbouring cell objects that are visible to the device. Except lac and cid all other parameters mentioned below are optional. Parameters vary depending on the radio type. Supported radio types and their corresponding parameters are",
"properties": {
"lac": {
"description": "the Location Area Code of your operator’s network.",
"format": "int64",
"maximum": 65533,
"minimum": 1,
"type": "integer"
},
"cid": {
"description": "Cell ID",
"format": "int64",
"maximum": 268435455,
"minimum": 0,
"type": "integer"
},
"radio": {
"$ref": "#/$defs/radio_schema"
},
"mcc": {
"description": "\"Mobile Country Code of your operator’s network represented by an integer (Optional). Range: 0 to 999.\"",
"format": "int64",
"title": "mcc",
"type": "integer"
},
"mnc": {
"description": "Mobile Network Code of your operator’s network represented by an integer (Optional). Range: 0 to 999. On CDMA, provide the System ID or SID, with range: 1 to 32767.",
"format": "int64",
"title": "mnc",
"type": "integer"
},
"signal": {
"description": "Signal Strength (RSSI)",
"format": "int64",
"maximum": -25,
"minimum": -121,
"type": "integer"
},
"psc": {
"description": "Primary Scrambling Code",
"format": "int64",
"maximum": 503,
"minimum": 0,
"type": "integer"
},
"asu": {
"description": "Arbitrary Strength Unit",
"format": "int64",
"maximum": 97,
"minimum": -5,
"type": "integer"
},
"ta": {
"description": "Timing Advance",
"format": "int64",
"maximum": 63,
"minimum": 0,
"type": "integer"
}
},
"required": [
"token"
],
"title": "cell",
"type": "object"
},
"fallback_schema": {
"description": "An array of fallback options to enable or disable.",
"properties": {
"all": {
"$ref": "#/$defs/all_schema"
},
"ipf": {
"$ref": "#/$defs/ipf_schema"
},
"lacf": {
"$ref": "#/$defs/lacf_schema"
},
"scf": {
"$ref": "#/$defs/scf_schema"
}
},
"title": "fallback",
"type": "object"
},
"geolocation_address_schema": {
"description": "The physical address of the returned location",
"enum": [
0,
1,
2
],
"format": "int64",
"title": "physical address",
"type": "integer"
},
"ipf_schema": {
"description": "Enable IP address fallback. Specify IP address of the device in the “ip” field if it’s different from the device making the API call.",
"enum": [
0,
1
],
"format": "int32",
"type": "integer"
},
"lacf_schema": {
"description": "Enable LAC fallback. If we are unable to locate a cell, we will return an approzimate location based on nearby cells in our database.",
"enum": [
0,
1,
2
],
"format": "int32",
"type": "integer"
},
"radio_schema": {
"description": "Radio type of the device. Supported values are ‘gsm’, ‘cdma’, ‘umts’ and ‘lte’. This field should be included for more accurate results.",
"enum": [
"\"gsm\"",
"\"utms\"",
"\"cdma\"",
"\"lte\""
],
"title": "radio",
"type": "string"
},
"scf_schema": {
"description": "Enable Short CID fallback. Adds support for devices that can only see 16-bit (short) CID of an UMTS 28-bit UTRAN CID.",
"enum": [
0,
1
],
"format": "int32",
"type": "integer"
},
"wifi_schema": {
"description": "You can send a minimum of 2 and a maximum of 15 WiFi objects in 1 request. If WiFi is not available, wifi object can be omitted all together. In accordance with our industry’s privacy standards we require a minimum of 2 valid nearby Access Points to be sent. If your use-case allows only 1 AP, reach out to us.",
"properties": {
"bssid": {
"description": "Basic Service Set Identifier or MAC address of the Access Point. Typical format of a MAC address is xx-xx-xx-xx-xx-xx. However, the delimiter can be any of these when sent to the API: : or - or .",
"type": "string"
},
"channel": {
"description": "Channel the WiFi network is operating in (optional)",
"format": "int64",
"type": "integer"
},
"frequency": {
"description": "Frequency the WiFi network is operating in (MHz) (optional)",
"format": "int64",
"type": "integer"
},
"signal": {
"description": "Signal Strength (RSSI)",
"format": "int64",
"maximum": -25,
"minimum": -121,
"type": "integer"
},
"signalToNoiseRatio": {
"description": "The current signal to noise ratio, measured in dB (optional)",
"format": "int64",
"type": "integer"
}
},
"title": "wifi",
"type": "object"
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/unwired-labs-geolocation-schema"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.