Skip to content
Private preview: new accounts are by invitation only. Ask for one

Show the networks a domain moved through

GET/v1/domain/{domain}/hosting

Hosting history: the networks a domain's A/AAAA answers moved through, one run per stretch on one network (routing ASN and cloud, hosting or CDN provider), oldest first, with when it was first and last seen there and when it left. A move happened between one run's last_confirmed and its ended_at, never at an instant. Covers popular registered domains; history starts with the first observation (coverage.observation_window). Each run's network is the current release's mapping and ranges applied to its addresses, not the routing at the time. Counts one request.

Authorization

APIKey
AuthorizationBearer <token>

Your API key, which starts with sk_. Create one in the console.

In: header

Path Parameters

domain*string

A hostname such as example.com. It is lowercased, a trailing dot is dropped and Unicode labels are punycoded.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl "https://api.ipalmanac.com/v1/domain/example.com/hosting" \  -H "Authorization: Bearer $IPALMANAC_API_KEY"
{  "domain": "beta.example",  "hosting": [    {      "public": true,      "asn": 64500,      "as_name": "EXAMPLE-CLOUD - Example Cloud, Inc.",      "provider": "examplecloud",      "category": "cloud",      "addresses": 1,      "record_types": [        "A"      ],      "first_observed": "2026-10-01T04:00:00+00:00",      "last_confirmed": "2026-10-03T04:00:00+00:00",      "ended_at": "2026-10-04T04:00:00+00:00",      "current": false    },    {      "public": true,      "asn": 64501,      "as_name": "EXAMPLE-CDN - Example CDN, Inc.",      "provider": "examplecdn",      "category": "cdn",      "addresses": 1,      "record_types": [        "A"      ],      "first_observed": "2026-10-04T04:00:00+00:00",      "last_confirmed": "2026-10-06T00:00:00+00:00",      "ended_at": null,      "current": true    }  ],  "truncated": false,  "coverage": {    "observation_window": {      "first": "2026-10-01T00:00:00+00:00",      "last": "2026-10-06T01:55:00+00:00"    },    "vantage_count": 1,    "record_types": [      "A",      "AAAA"    ],    "seed": {      "source": "Majestic Million",      "names": 1000000    },    "ptr": {      "checked_ips": 87000,      "observed_ips": 588000    },    "semantics": [      "Coverage is the seed list, not the whole Internet. Empty means unobserved here, not absent.",      "is_datacenter and is_cdn are true only when the IP is inside a published provider range of that category; null means no range matched, not that the IP is not hosted.",      "provider and prefix come only from cloud, hosting and CDN ranges. A range of any other category in provider_ranges describes how the IP is used, not who hosts it."    ]  },  "attribution": [    {      "source": "Majestic Million",      "by": "Majestic",      "license": "CC BY 3.0"    },    {      "source": "IPtoASN",      "by": "Frank Denis",      "license": "PDDL 1.0"    }  ],  "release": {    "id": "20261006T020000Z",    "built_at": "2026-10-06T02:00:00+00:00"  }}