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
View JSON Schema on GitHub

JSON Schema

unwired-labs-geolocation-schema-schema.json Raw ↑
{
  "$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.
All 92 tools →

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.