openapi: 3.0.7
info:
title: 'IPGeolocation.io: Abuse Contact ASN Lookup IP Geolocation API'
version: '3.0'
description: "Retrieve abuse contact information associated with an IPv4 address or IPv6 address.\nThe API returns the organization responsible for handling abuse complaints related\nto the queried IP address, including the abuse contact role, organization name,\nregistered address, email contacts, and phone numbers.\n\nThe abuse contact data helps organizations report malicious activities such as\nspam, phishing, DDoS attacks, IP spoofing, and other network abuse to the\nresponsible network operator.\n\nOne endpoint is available:\n\n- **Abuse lookup** (`GET /v3/abuse`) returns abuse contact information for a\n single IPv4 or IPv6 address per request.\n\nUse query parameters to control which fields are returned and which fields are\nexcluded from the response to reduce payload size when only specific data\nis required.\n\n## Authentication\n\nTwo authentication methods are supported:\n\n### API Key\n\nPass your API key as the `apiKey` query parameter on every request. You can find your\nkey in the [IPGeolocation dashboard](https://app.ipgeolocation.io/). Store it in\nserver-side environment variables. Avoid exposing it in client-side JavaScript.\n\n### Request Origin (CORS)\n\nAvailable on paid plans only. Whitelist your domain in the dashboard under the\n\"API Keys\" section. Once configured, requests from that domain (and all its subdomains)\nare accepted without passing `apiKey`. Enter your root domain (e.g. `example.com`),\nnot the full URL.\n\nEach plan has a limit on the number of extra API keys and request origins:\n\n| Plan | Extra API Keys + Request Origins |\n|---|---|\n| Starter (150K requests) | 1 |\n| Core (250K requests) | 1 |\n| Plus (500K requests) | 2 |\n| Pro (1M requests) | 2 |\n| Business (2M requests) | 3 |\n| Premium (5M requests) | 3 |\n\nAdditional keys or origins can be added for $2.50 per month each.\n\n## Response Formats\n\nThe API supports JSON (default) and XML output.\n\n- Set the `output` query parameter to `json` or `xml`.\n- Alternatively, set the `Accept` header to `application/json`, `application/xml`,\n or `text/xml`.\n\nIf neither is specified, the response is returned as JSON. XML responses use a\n`LinkedHashMap` root element.\n\n## Credit Usage\n\nCredits are charged only for successful **HTTP 200** responses. The exact number of\ncredits consumed by a request is returned in the `X-Credits-Charged` response header.\n\nA **single IP abuse contact lookup** (`GET /v3/abuse`) consumes **1 credit** per request.\n\n\n## Field Filtering\n\nUse `fields` to cherry-pick specific fields, or `excludes` to drop fields you do not\nneed. Both accept dot-notation for nested fields (e.g. `abuse.route`,\n`abuse.organization`). The `ip` field is always present regardless of filters.\n\n## Parameter Name Casing\n\nQuery parameter names are case-sensitive. Use exact names such as\n`apiKey`, `ip`, `fields`, `excludes`, and `output`.\n\n## Plan Availability and Usage Limits\n\nThe IP Abuse Contact API is available **only on paid plans**.\n\nPaid subscriptions do not have fixed daily, hourly, or monthly rate limits. \nIf the monthly quota is exceeded, requests continue and a surcharge may be applied according to the subscribed plan.\n\nFree plans cannot access the IP Abuse Contact API. Requests made with a free plan API key return **HTTP 401 Unauthorized**.\n"
contact:
name: IPGeolocation Support
url: https://ipgeolocation.io/contact.html
email: support@ipgeolocation.io
termsOfService: https://ipgeolocation.io/tos.html
license:
name: Proprietary
url: https://ipgeolocation.io/tos.html
servers:
- url: https://api.ipgeolocation.io
description: Production
security:
- ApiKeyAuth: []
tags:
- name: IP Geolocation
description: 'IP geolocation API endpoints for looking up geographic location, network routing,
ASN ownership, company attribution, timezone, currency, security threat intelligence,
abuse contact, and User-Agent data. Accepts IPv4 addresses, IPv6 addresses, and
domain names. The single lookup endpoint (`GET /v3/ipgeo`) resolves one IP or domain
per request. The bulk lookup endpoint (`POST /v3/ipgeo-bulk`) accepts up to 50,000
entries per request and requires a paid plan.
'
externalDocs:
description: IPGeolocation API documentation and integration guides
url: https://ipgeolocation.io/documentation/ip-location-api.html
paths:
/v3/ipgeo:
get:
operationId: lookupIpGeolocation
summary: IPGeolocation.io Single IP Geolocation Lookup
description: 'Returns geolocation and enrichment data for a single IPv4 address, IPv6 address,
or domain name. When `ip` is omitted, the API resolves the caller''s public IP
automatically, which is useful for client-side lookups.
The base response always includes `location`, `country_metadata`, `currency`,
`asn`, and `time_zone`. Paid plans also get `network` and `company` by default.
Use the `include` parameter to add optional modules such as `security`, `abuse`,
`user_agent`, `geo_accuracy`, `dma_code`, and hostname resolution.
Use `fields` and `excludes` to control exactly which parts of the response you
receive. This reduces payload size and can improve response times.
'
tags:
- IP Geolocation
parameters:
- $ref: '#/components/parameters/Ip'
- $ref: '#/components/parameters/Lang'
- $ref: '#/components/parameters/Include'
- $ref: '#/components/parameters/Fields'
- $ref: '#/components/parameters/Excludes'
- $ref: '#/components/parameters/Output'
responses:
'200':
description: Geolocation data for the requested IP or domain.
headers:
X-Credits-Charged:
description: Number of API credits consumed by this request.
schema:
type: number
example: 1
content:
application/json:
schema:
$ref: '#/components/schemas/IpGeolocationResponse'
examples:
paidFullResponse:
summary: Paid plan, all modules included
value:
ip: 91.128.103.196
hostname: 91.128.103.196
location:
continent_code: EU
continent_name: Europe
country_code2: SE
country_code3: SWE
country_name: Sweden
country_name_official: Kingdom of Sweden
country_capital: Stockholm
state_prov: Stockholms län
state_code: SE-AB
district: Stockholm
city: Stockholm
locality: Stockholm
accuracy_radius: '4.395'
confidence: high
dma_code: ''
zipcode: 164 40
latitude: '59.40510'
longitude: '17.95510'
is_eu: true
country_flag: https://ipgeolocation.io/static/flags/se_64.png
geoname_id: '9972319'
country_emoji: 🇸🇪
country_metadata:
calling_code: '+46'
tld: .se
languages:
- sv-SE
- se
- sma
- fi-SE
network:
connection_type: ''
route: 91.128.0.0/14
is_anycast: false
currency:
code: SEK
name: Swedish Krona
symbol: kr
asn:
as_number: AS1257
organization: Tele2 Sverige AB
country: SE
type: ISP
domain: tele2.com
date_allocated: '2024-12-13'
rir: RIPE
company:
name: Tele2 Sverige AB
type: ISP
domain: tele2.com
security:
threat_score: 0
is_tor: false
is_proxy: false
proxy_provider_names: []
proxy_confidence_score: 0
proxy_last_seen: ''
is_residential_proxy: false
is_vpn: false
vpn_provider_names: []
vpn_confidence_score: 0
vpn_last_seen: ''
is_relay: false
relay_provider_name: ''
is_anonymous: false
is_known_attacker: false
is_bot: false
is_spam: false
is_cloud_provider: false
cloud_provider_name: ''
abuse:
route: 91.128.0.0/14
country: SE
name: Swipnet Staff
organization: ''
kind: group
address: Tele2 AB/Swedish IP Network, IP Registry, Torshamnsgatan 17 164 40 Kista SWEDEN
emails:
- abuse@tele2.com
phone_numbers:
- +46 8 5626 42 10
time_zone:
name: Europe/Stockholm
offset: 1
offset_with_dst: 1
current_time: 2026-02-13 09:19:24.410+0100
current_time_unix: 1770970764.41
current_tz_abbreviation: CET
current_tz_full_name: Central European Standard Time
standard_tz_abbreviation: CET
standard_tz_full_name: Central European Standard Time
is_dst: false
dst_savings: 0
dst_exists: true
dst_tz_abbreviation: CEST
dst_tz_full_name: Central European Summer Time
dst_start:
utc_time: 2026-03-29 TIME 01:00
duration: +1.00H
gap: true
date_time_after: 2026-03-29 TIME 03:00
date_time_before: 2026-03-29 TIME 02:00
overlap: false
dst_end:
utc_time: 2026-10-25 TIME 01:00
duration: -1.00H
gap: false
date_time_after: 2026-10-25 TIME 02:00
date_time_before: 2026-10-25 TIME 03:00
overlap: true
user_agent:
user_agent_string: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0
name: Edge
type: Browser
version: '143'
version_major: '143'
device:
name: Linux Desktop
type: Desktop
brand: Unknown
cpu: Intel x86_64
engine:
name: Blink
type: Browser
version: '143'
version_major: '143'
operating_system:
name: Linux
type: Desktop
version: ??
version_major: ??
build: ??
freeMinimalResponse:
summary: Free plan default response
value:
ip: 165.227.0.0
location:
continent_code: NA
continent_name: North America
country_code2: US
country_code3: USA
country_name: United States
country_name_official: United States of America
country_capital: Washington, D.C.
state_prov: California
state_code: US-CA
district: Santa Clara County
city: Santa Clara
zipcode: '95051'
latitude: '37.35983'
longitude: '-121.98144'
is_eu: false
country_flag: https://ipgeolocation.io/static/flags/us_64.png
geoname_id: '5346804'
country_emoji: 🇺🇸
country_metadata:
calling_code: '+1'
tld: .us
languages:
- en-US
- es-US
- haw
- fr
currency:
code: USD
name: US Dollar
symbol: $
asn:
as_number: AS14061
organization: DigitalOcean, LLC
country: US
time_zone:
name: America/Los_Angeles
offset: -8
offset_with_dst: -8
current_time: 2026-02-09 09:54:51.206-0800
current_time_unix: 1770659691.206
current_tz_abbreviation: PST
current_tz_full_name: Pacific Standard Time
standard_tz_abbreviation: PST
standard_tz_full_name: Pacific Standard Time
is_dst: false
dst_savings: 0
dst_exists: true
dst_tz_abbreviation: PDT
dst_tz_full_name: Pacific Daylight Time
dst_start:
utc_time: 2026-03-08 TIME 10:00
duration: +1.00H
gap: true
date_time_after: 2026-03-08 TIME 03:00
date_time_before: 2026-03-08 TIME 02:00
overlap: false
dst_end:
utc_time: 2026-11-01 TIME 09:00
duration: -1.00H
gap: false
date_time_after: 2026-11-01 TIME 01:00
date_time_before: 2026-11-01 TIME 02:00
overlap: true
application/xml:
schema:
$ref: '#/components/schemas/IpGeolocationResponse'
examples:
paidFullResponse:
summary: Paid plan, all modules included (XML)
value: "<LinkedHashMap>\n <ip>91.128.103.196</ip>\n <hostname>91.128.103.196</hostname>\n <location>\n <continent_code>EU</continent_code>\n <continent_name>Europe</continent_name>\n <country_code2>SE</country_code2>\n <country_code3>SWE</country_code3>\n <country_name>Sweden</country_name>\n <country_name_official>Kingdom of Sweden</country_name_official>\n <country_capital>Stockholm</country_capital>\n <state_prov>Stockholms län</state_prov>\n <state_code>SE-AB</state_code>\n <district>Stockholm</district>\n <city>Stockholm</city>\n <locality>Stockholm</locality>\n <accuracy_radius>8.793</accuracy_radius>\n <confidence>high</confidence>\n <dma_code></dma_code>\n <zipcode>164 40</zipcode>\n <latitude>59.40510</latitude>\n <longitude>17.95510</longitude>\n <is_eu>true</is_eu>\n <country_flag>https://ipgeolocation.io/static/flags/se_64.png</country_flag>\n <geoname_id>9972319</geoname_id>\n <country_emoji>\U0001F1F8\U0001F1EA</country_emoji>\n </location>\n <country_metadata>\n <calling_code>+46</calling_code>\n <tld>.se</tld>\n <languages>sv-SE</languages>\n <languages>se</languages>\n <languages>sma</languages>\n <languages>fi-SE</languages>\n </country_metadata>\n <network>\n <connection_type></connection_type>\n <route>91.128.0.0/14</route>\n <is_anycast>false</is_anycast>\n </network>\n <currency>\n <code>SEK</code>\n <name>Swedish Krona</name>\n <symbol>kr</symbol>\n </currency>\n <asn>\n <as_number>AS1257</as_number>\n <organization>Tele2 Sverige AB</organization>\n <country>SE</country>\n <type>ISP</type>\n <domain>tele2.com</domain>\n <date_allocated>2002-09-19</date_allocated>\n <rir>RIPE</rir>\n </asn>\n <company>\n <name>Tele2 Sverige AB</name>\n <type>ISP</type>\n <domain>tele2.com</domain>\n </company>\n <security>\n <threat_score>0</threat_score>\n <is_tor>false</is_tor>\n <is_proxy>false</is_proxy>\n <proxy_confidence_score>0</proxy_confidence_score>\n <proxy_last_seen></proxy_last_seen>\n <is_residential_proxy>false</is_residential_proxy>\n <is_vpn>false</is_vpn>\n <vpn_confidence_score>0</vpn_confidence_score>\n <vpn_last_seen></vpn_last_seen>\n <is_relay>false</is_relay>\n <relay_provider_name></relay_provider_name>\n <is_anonymous>false</is_anonymous>\n <is_known_attacker>false</is_known_attacker>\n <is_bot>false</is_bot>\n <is_spam>false</is_spam>\n <is_cloud_provider>false</is_cloud_provider>\n <cloud_provider_name></cloud_provider_name>\n </security>\n <abuse>\n <route>91.128.0.0/14</route>\n <country>SE</country>\n <name>Swipnet Staff</name>\n <organization></organization>\n <kind>group</kind>\n <address>Tele2 AB/Swedish IP Network, IP Registry, Torshamnsgatan 17 164 40 Kista SWEDEN</address>\n <emails>abuse@tele2.com</emails>\n <phone_numbers>+46 8 5626 42 10</phone_numbers>\n </abuse>\n <time_zone>\n <name>Europe/Stockholm</name>\n <offset>1</offset>\n <offset_with_dst>1</offset_with_dst>\n <current_time>2026-03-02 13:32:39.256+0100</current_time>\n <current_time_unix>1772454759.256</current_time_unix>\n <current_tz_abbreviation>CET</current_tz_abbreviation>\n <current_tz_full_name>Central European Standard Time</current_tz_full_name>\n <standard_tz_abbreviation>CET</standard_tz_abbreviation>\n <standard_tz_full_name>Central European Standard Time</standard_tz_full_name>\n <is_dst>false</is_dst>\n <dst_savings>0</dst_savings>\n <dst_exists>true</dst_exists>\n <dst_tz_abbreviation>CEST</dst_tz_abbreviation>\n <dst_tz_full_name>Central European Summer Time</dst_tz_full_name>\n <dst_start>\n <utc_time>2026-03-29 TIME 01:00</utc_time>\n <duration>+1.00H</duration>\n <gap>true</gap>\n <date_time_after>2026-03-29 TIME 03:00</date_time_after>\n <date_time_before>2026-03-29 TIME 02:00</date_time_before>\n <overlap>false</overlap>\n </dst_start>\n <dst_end>\n <utc_time>2026-10-25 TIME 01:00</utc_time>\n <duration>-1.00H</duration>\n <gap>false</gap>\n <date_time_after>2026-10-25 TIME 02:00</date_time_after>\n <date_time_before>2026-10-25 TIME 03:00</date_time_before>\n <overlap>true</overlap>\n </dst_end>\n </time_zone>\n <user_agent>\n <user_agent_string>PostmanRuntime/7.49.1</user_agent_string>\n <name>PostmanRuntime</name>\n <type>Robot</type>\n <version>7.49.1</version>\n <version_major>7</version_major>\n <device>\n <name>Postman Runtime</name>\n <type>Robot</type>\n <brand>Postman</brand>\n <cpu>Unknown</cpu>\n </device>\n <engine>\n <name>PostmanRuntime</name>\n <type>Robot</type>\n <version>7.49.1</version>\n <version_major>7</version_major>\n </engine>\n <operating_system>\n <name>Cloud</name>\n <type>Cloud</type>\n <version>??</version>\n <version_major>??</version_major>\n <build>??</build>\n </operating_system>\n </user_agent>\n</LinkedHashMap>\n"
freeMinimalResponse:
summary: Free plan default response (XML)
value: "<LinkedHashMap>\n <ip>165.227.0.0</ip>\n <location>\n <continent_code>NA</continent_code>\n <continent_name>North America</continent_name>\n <country_code2>US</country_code2>\n <country_code3>USA</country_code3>\n <country_name>United States</country_name>\n <country_name_official>United States of America</country_name_official>\n <country_capital>Washington, D.C.</country_capital>\n <state_prov>California</state_prov>\n <state_code>US-CA</state_code>\n <district>Santa Clara County</district>\n <city>Santa Clara</city>\n <zipcode>95051</zipcode>\n <latitude>37.35983</latitude>\n <longitude>-121.98144</longitude>\n <is_eu>false</is_eu>\n <country_flag>https://ipgeolocation.io/static/flags/us_64.png</country_flag>\n <geoname_id>5346804</geoname_id>\n <country_emoji>\U0001F1FA\U0001F1F8</country_emoji>\n </location>\n <country_metadata>\n <calling_code>+1</calling_code>\n <tld>.us</tld>\n <languages>en-US</languages>\n <languages>es-US</languages>\n <languages>haw</languages>\n <languages>fr</languages>\n </country_metadata>\n <currency>\n <code>USD</code>\n <name>US Dollar</name>\n <symbol>$</symbol>\n </currency>\n <asn>\n <as_number>AS14061</as_number>\n <organization>DigitalOcean, LLC</organization>\n <country>US</country>\n </asn>\n <time_zone>\n <name>America/Los_Angeles</name>\n <offset>-8</offset>\n <offset_with_dst>-8</offset_with_dst>\n <current_time>2026-03-02 03:29:55.186-0800</current_time>\n <current_time_unix>1772450995.186</current_time_unix>\n <current_tz_abbreviation>PST</current_tz_abbreviation>\n <current_tz_full_name>Pacific Standard Time</current_tz_full_name>\n <standard_tz_abbreviation>PST</standard_tz_abbreviation>\n <standard_tz_full_name>Pacific Standard Time</standard_tz_full_name>\n <is_dst>false</is_dst>\n <dst_savings>0</dst_savings>\n <dst_exists>true</dst_exists>\n <dst_tz_abbreviation>PDT</dst_tz_abbreviation>\n <dst_tz_full_name>Pacific Daylight Time</dst_tz_full_name>\n <dst_start>\n <utc_time>2026-03-08 TIME 10:00</utc_time>\n <duration>+1.00H</duration>\n <gap>true</gap>\n <date_time_after>2026-03-08 TIME 03:00</date_time_after>\n <date_time_before>2026-03-08 TIME 02:00</date_time_before>\n <overlap>false</overlap>\n </dst_start>\n <dst_end>\n <utc_time>2026-11-01 TIME 09:00</utc_time>\n <duration>-1.00H</duration>\n <gap>false</gap>\n <date_time_after>2026-11-01 TIME 01:00</date_time_after>\n <date_time_before>2026-11-01 TIME 02:00</date_time_before>\n <overlap>true</overlap>\n </dst_end>\n </time_zone>\n</LinkedHashMap>\n"
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'423':
$ref: '#/components/responses/Locked'
'429':
$ref: '#/components/responses/TooManyRequests'
'499':
$ref: '#/components/responses/ClientClosedRequest'
'500':
$ref: '#/components/responses/InternalServerError'
'502':
$ref: '#/components/responses/BadGateway'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
'505':
$ref: '#/components/responses/HttpVersionNotSupported'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/v3/ipgeo-bulk:
post:
operationId: bulkLookupIpGeolocation
summary: IPGeolocation.io Bulk IP Geolocation Lookup
description: 'Returns geolocation and enrichment data for up to 50,000 IPv4 addresses, IPv6
addresses, or domain names in a single request. The request body must be a JSON
object with an `ips` array.
This endpoint requires a paid plan. Calling it with a free
plan API key returns HTTP 401.
The response is a JSON array with one element per IP in the request. Each element
is either a full geolocation response object or an error object with only a
`message` field. Invalid, bogon, and unresolvable entries appear as error
objects. Invalid, private, and bogon IPs are not billed.
This endpoint supports the same query parameters as the single lookup endpoint,
including `lang`, `include`, `fields`, `excludes`, and `output`.
Credits are calculated as: credits per lookup multiplied by the number of valid
IPs in the request. The total is returned in the `X-Credits-Charged` response
header. When at least one submitted ip is invalid, the `X-Successful-Record`
response header indicates how many entries were successfully resolved.
Only the `POST` method is accepted. Sending a `GET` request returns HTTP 405.
'
tags:
- IP Geolocation
parameters:
- $ref: '#/components/parameters/Lang'
- $ref: '#/components/parameters/Include'
- $ref: '#/components/parameters/Fields'
- $ref: '#/components/parameters/Excludes'
- $ref: '#/components/parameters/Output'
requestBody:
required: true
description: 'A JSON object containing an `ips` array. Each element is a string representing
an IPv4 address, IPv6 address, or domain name. The array must not be empty and
must not contain more than 50,000 entries.
'
content:
application/json:
schema:
$ref: '#/components/schemas/BulkGeolocationRequest'
examples:
mixedIps:
summary: Mixed IPv4, IPv6, and domain
value:
ips:
- 8.8.8.8
- 91.128.103.196
- 2607:fb91:16c6:8860:e531:2d1d:4944:6c7c
- ipgeolocation.io
ipv4Only:
summary: Multiple IPv4 addresses
value:
ips:
- 1.1.1.1
- 8.8.4.4
- 165.227.0.0
responses:
'200':
description: 'An array of results, one per input entry. Valid entries return full
geolocation objects. Invalid, bogon, and unresolvable entries return
objects with only a `message` field.
`X-Successful-Record` is returned only when at least one submitted entry
fails and the number of successful lookups is lower than the number of
submitted entries.
'
headers:
X-Credits-Charged:
description: 'Total number of API credits consumed. Equals credits per lookup
multiplied by the count of valid IPs.
'
schema:
type: number
example: 3
X-Successful-Record:
description: 'Number of valid IP addresses or domains that were successfully resolved in
this bulk request. Invalid, bogon, and private IPs are not counted.
This header is included only when at least one bulk entry returns an
error message and total successful lookups are fewer than submitted
entries.
'
schema:
type: number
example: 4
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BulkGeolocationResponseItem'
examples:
bulkResponse:
summary: Bulk response with one valid and one error entry
value:
- ip: 8.8.8.8
location:
continent_code: NA
continent_name: North America
country_code2: US
country_code3: USA
country_name: United States
country_name_official: United States of America
country_capital: Washington, D.C.
state_prov: California
state_code: US-CA
district: Santa Clara County
city: Mountain View
zipcode: '94043'
latitude: '37.42240'
longitude: '-122.08421'
is_eu: false
country_flag: https://ipgeolocation.io/static/flags/us_64.png
geoname_id: '5375480'
country_emoji: 🇺🇸
country_metadata:
calling_code: '+1'
tld: .us
languages:
- en-US
- es-US
- haw
- fr
network:
connection_type: ''
route: 8.8.8.0/24
is_anycast: true
currency:
code: USD
name: US Dollar
symbol: $
asn:
as_number: AS15169
organization: Google LLC
country: US
type: BUSINESS
domain: google.com
date_allocated: '2000-03-30'
rir: ARIN
company:
name: Google LLC
type: HOSTING
domain: google.com
time_zone:
name: America/Los_Angeles
offset: -8
offset_with_dst: -8
current_time: 2026-02-09 09:54:51.206-0800
current_time_unix: 1770659691.206
current_tz_abbreviation: PST
current_tz_full_name: Pacific Standard Time
standard_tz_abbreviation: PST
standard_tz_full_name: Pacific Standard Time
is_dst: false
dst_savings: 0
dst_exists: true
dst_tz_abbreviation: PDT
dst_tz_full_name: Pacific Daylight Time
dst_start:
utc_time: 2026-03-08 TIME 10:00
duration: +1.00H
gap: true
date_time_after: 2026-03-08 TIME 03:00
date_time_before: 2026-03-08 TIME 02:00
overlap: false
dst_end:
utc_time: 2026-11-01 TIME 09:00
duration: -1.00H
gap: false
date_time_after: 2026-11-01 TIME 01:00
date_time_before: 2026-11-01 TIME 02:00
overlap: true
- message: '''10.0.0.1'' is a bogon IP address.'
application/xml:
schema:
type: array
xml:
name: ArrayList
wrapped: true
items:
$ref: '#/components/schemas/BulkGeolocationResponseItem'
xml:
name: item
examples:
bulkResponse:
summary: Bulk response with one valid and one error entry (XML)
value: "<
# --- truncated at 32 KB (85 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ipgeolocation/refs/heads/main/openapi/ipgeolocation-ip-geolocation-api-openapi.yml