Public JSON API

VikiTron APIFree IP lookup, one HTTP call away

A public, unauthenticated JSON API for IP address geolocation, ASN, ISP, timezone and threat flags. Free to use with a per-IP rate limit.

Free · Rate-limited

The API is free to use. No API key or sign-up is required. Every calling IP is limited to 500 requests per 15 minutes. Beyond the limit the API responds with HTTP 429 until the window resets.

Base URL

All requests go to the same origin as this site:

text
https://vikitron.com

Authentication

None. Endpoints are public and CORS is open (Access-Control-Allow-Origin: *) so the API can be called directly from a browser, a server or a CLI. Rate limiting is applied per calling IP address.

Response format

Every endpoint returns pretty-printed JSON with Content-Type: application/json; charset=utf-8. Successful responses are cacheable (Cache-Control: public, max-age=60, s-maxage=300); error responses are not.

IP address lookup

The IP lookup endpoint returns geolocation, network (ASN, ISP, organisation), timezone and threat flags (mobile, proxy, hosting, Tor) for an IPv4 or IPv6 address.

Canonical routes

MethodPathDescription
GET/lookupReturns IP details for the caller (uses the request's source IP).
GET/lookup/{ip}Returns IP details for the given IPv4 or IPv6 address.

Content-negotiated shortcuts

The site's public URLs double as API routes: when the client sends Accept: application/json or a CLI user-agent (curl, wget, httpie, python-requests, …), the same JSON payload is served instead of the HTML page.

MethodPathDescription
GET/Same as /lookup when Accept: application/json (or a CLI user-agent such as curl).
GET/{ip}Same as /lookup/{ip} under the same content-negotiation rules.
GET/ip-lookup/{ip}Legacy alias, kept for backwards compatibility.

Path parameters

ipstring · required for /lookup/{ip}

IPv4 (e.g. 8.8.8.8) or IPv6 (e.g. 2001:4860:4860::8888) address. Loopback (127.0.0.1, ::1) is accepted and normalised.

Example request

bash
curl https://vikitron.com/lookup/8.8.8.8

Example response

json
{
  "ip": "8.8.8.8",
  "hostname": "dns.google",
  "timezone": "America/Chicago",
  "timezoneLabel": "Central Time - Chicago",
  "timezoneGmt": "-06:00",
  "asNumber": "15169",
  "asName": "GOOGLE",
  "asOrganisation": "Google LLC",
  "city": "Mountain View",
  "country": "US",
  "countryRegion": "CA",
  "zip": "94043",
  "latitude": 37.4056,
  "longitude": -122.0775,
  "isp": "Google LLC",
  "organisation": "Google Public DNS",
  "mobile": false,
  "proxy": false,
  "hosting": true,
  "tor": false
}

Response fields

FieldTypeDescription
ip
stringCanonical form of the queried IP address.
hostnameoptional
stringReverse DNS (PTR) record, when available.
timezone
stringIANA timezone identifier, e.g. Europe/Prague.
timezoneLabel
stringHuman-readable timezone label with city.
timezoneGmt
stringCurrent UTC offset in ±HH:MM form.
asNumberoptional
stringAutonomous System number (as a string), e.g. "15169".
asNameoptional
stringShort AS name from the RIR registry.
asOrganisationoptional
stringFull organisation name attached to the AS.
cityoptional
stringCity-level geolocation, best-effort.
countryoptional
stringISO 3166-1 alpha-2 country code.
countryRegionoptional
stringISO 3166-2 subdivision (state / region) code.
zipoptional
stringPostal code, when available.
latitudeoptional
numberApproximate latitude for the geolocation.
longitudeoptional
numberApproximate longitude for the geolocation.
ispoptional
stringInternet Service Provider name.
organisationoptional
stringOrganisation associated with the IP block.
mobile
booleanTrue if the IP belongs to a mobile carrier.
proxy
booleanTrue if the IP is on known proxy / VPN lists.
hosting
booleanTrue if the IP belongs to a hosting / cloud provider.
tor
booleanTrue if the IP is a known Tor exit node.

Errors

Errors are returned with an appropriate HTTP status and a JSON body of the form:

json
{
  "error": "Invalid IP address",
  "ip": "999.999.999.999"
}
StatusWhen
400The path parameter is not a valid IPv4 or IPv6 address.
429The calling IP exceeded 500 requests in the current 15-minute window.
502The upstream lookup service is temporarily unavailable — safe to retry.

Rate limits

Every calling IP address may make up to 500 requests per 15 minutes. Requests over the limit are rejected with HTTP 429. Because successful responses are cacheable for 60 seconds, most integrations will comfortably fit inside the limit — if you consistently need more, please get in touch.

What’s next

Only the IP lookup endpoint is exposed as an API today. DNS records, SSL certificate, robots.txt and subdomain endpoints that back the free tools will be documented here as their public shapes are frozen. Have a suggestion? Let us know.