# 1. Licensed field families (`licensedFamilies`)
In @ipscope/api, every API key carries an explicit licensedFamilies entitlement list configured by your plan or custom database profile. When you call GET /v1/ip/:ip or POST /v1/ip/batch, filterByLicensedFamilies() automatically projects the IpLookupResponse to the families licensed on your key:
| Family ID (`licensedFamilies`) | Projected JSON fields in `IpLookupResponse` | Description |
|---|---|---|
network | matched_network, network.asn, network.organization | Matched CIDR prefix and BGP origin ASN / organization. |
geo_country | geo.country_code, geo.declared_country_code, geo.physical_country_code, geo.is_virtual_location, geo.location_type, geo.confidence | Country-level routing reality and declared vs. physical separation. |
geo_city | Adds geo.subdivision, geo.city, geo.accuracy_radius_km, geo.timezone | City, first-level subdivision, accuracy radius, and IANA timezone. |
connection | connection.connection_type, is_residential, is_mobile, is_business, is_hosting | Access network classification (residential, mobile, business, hosting). |
hosting | security.is_hosting, connection.is_hosting | Datacenter, cloud, and colocation hosting flags. |
anonymity | security.is_vpn, is_tor_exit, is_proxy, is_hosting, anonymizer_type, confidence, reason_codes | VPN, Tor exit, proxy, and relay detection with explainable reason_codes. |
security_extensions | security_extensions.abuse_velocity_score, is_known_scanner, observation_recency_hours | Honeypot abuse velocity score (0–100), scanner flag, and observation recency. |
meta | dataset_version, updated_at | Snapshot version provenance and publication timestamp. |
# 2. MMDB & artifact catalog (`GET /v1/mmdb/products` & `POST /v1/mmdb/quote`)
https://api.ipscope.io/v1/mmdb/productshttps://api.ipscope.io/v1/mmdb/quoteGET /v1/mmdb/products returns the complete catalog of selectable artifact formats (mmdb, csv, parquet), field families, update cadences (daily, weekly, every_30_days), dynamic pricing rules, and preset SKUs. POST /v1/mmdb/quote computes a deterministic integer-minor-unit price quote and profileSchemaHash for any custom combination.
curl -sS -X POST "https://api.ipscope.io/v1/mmdb/quote" \
-H "Authorization: Bearer $IPSCOPE_KEY" \
-H "Content-Type: application/json" \
-d '{"formats":["mmdb","parquet"],"field_families":["network","geo_country","geo_city","anonymity"],"cadence":"daily"}'Deterministic integer-minor-unit quote and profileSchemaHash.
{
"currency": "USD",
"amountMinor": 19900,
"profileSchemaHash": "psh_8a91c4e20b1f",
"formats": [
"mmdb",
"parquet"
],
"field_families": [
"network",
"geo_country",
"geo_city",
"anonymity"
],
"cadence": "daily"
}# 3. Releases, tokens, checksums & downloads (`/v1/mmdb/releases/*`)
https://api.ipscope.io/v1/mmdb/releaseshttps://api.ipscope.io/v1/mmdb/releases/{id}/download-tokenhttps://api.ipscope.io/v1/mmdb/releases/{id}/checksumshttps://api.ipscope.io/v1/mmdb/releases/{id}/downloadhttps://api.ipscope.io/v1/mmdb/snapshots/diffAll release and artifact delivery endpoints require the download scope. Pass either a specific release ID (rel_...) or latest as {id}.
curl -sS "https://api.ipscope.io/v1/mmdb/releases" \
-H "Authorization: Bearer $IPSCOPE_KEY"Published MMDB, CSV, and Parquet release manifests and SHA-256 digests.
{
"count": 1,
"releases": [
{
"releaseId": "rel_20261027_0000",
"snapshotVersion": "2026-10-27T00:00:00Z.crawl-1793088000000",
"createdAt": "2026-10-27T00:00:00Z",
"status": "published",
"artifacts": [
{
"format": "mmdb",
"filename": "ipscope-complete.mmdb",
"sizeBytes": 148291584,
"sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
},
{
"format": "parquet",
"filename": "ipscope-complete.parquet",
"sizeBytes": 112408192,
"sha256": "4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a"
}
]
}
]
}