ipasis

API Docs

Quickstart

1

Get your API Key

You'll need an API key to make requests. Sign up for a free account to get one.

2

Make your first request

Make a GET request to the lookup endpoint.

Header Authentication

curl
curl -s "https://api.ipasis.com/v1/lookup?ip=8.8.8.8" -H "X-API-Key: <your_api_key>"

Query Params

curl
curl -s "https://api.ipasis.com/v1/lookup?ip=8.8.8.8&key=<your_api_key>"

Try It

Examples

JavaScript (fetch)
javascript
fetch('https://api.ipasis.com/v1/lookup?ip=8.8.8.8', {
  headers: { 'X-API-Key': '<your_api_key>' }
}).then(r => r.json()).then(console.log)
Python (requests)
python
import requests

r = requests.get('https://api.ipasis.com/v1/lookup', params={'ip':'8.8.8.8'}, headers={'X-API-Key':'<your_api_key>'})
print(r.json())
Go (net/http)
go
package main

import (
  "fmt"
  "io"
  "net/http"
  "net/url"
)

func main() {
  endpoint := "https://api.ipasis.com/v1/lookup"
  u, _ := url.Parse(endpoint)
  q := u.Query()
  q.Set("ip", "8.8.8.8")
  u.RawQuery = q.Encode()

  req, _ := http.NewRequest("GET", u.String(), nil)
  req.Header.Set("X-API-Key", "<your_api_key>")

  resp, err := http.DefaultClient.Do(req)
  if err != nil { panic(err) }
  defer resp.Body.Close()
  body, _ := io.ReadAll(resp.Body)
  fmt.Println(string(body))
}
Java (HttpClient)
java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Main {
  public static void main(String[] args) throws Exception {
    String url = "https://api.ipasis.com/v1/lookup?ip=8.8.8.8";
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create(url))
        .header("X-API-Key", "<your_api_key>")
        .build();
    HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}

Response Fields

The API returns a JSON object with the following fields:

FieldTypeDescription
ipstringThe query IP address.
citystringCity name.
regionstringRegion or state name.
countrystringTwo-letter ISO 3166-1 country code (e.g., US).
locstringLatitude and Longitude (comma separated).
postalstringPostal or ZIP code.
timezonestringTimezone (IANA format).
asn.ASNstringAutonomous System Number (e.g. AS15169).
asn.NamestringName of the ASN owner.
asn.RoutestringThe BGP route block for this IP.
asn.TypestringASN type (isp, hosting, business, etc).
asn.DomainstringDomain associated with the ASN.
company.NamestringCompany name associated with the IP range.
company.DomainstringCompany domain name.
company.TypestringCompany type.
privacy.vpnbooleanTrue if the IP belongs to a commercial VPN provider.
privacy.proxybooleanTrue if the IP is a known public proxy.
privacy.torbooleanTrue if the IP is a Tor exit node.
privacy.relaybooleanTrue if the IP is an iCloud Private Relay or similar privacy network.
privacy.hostingbooleanTrue if the IP belongs to a hosting provider/datacenter (non-residential).
privacy.AIbooleanTrue if the IP belongs to an AI provider like OpenAI etc.
privacy.abusebooleanTrue if the IP has been reported for abuse recently.
privacy.crawlerbooleanTrue if the IP is a known crawler (e.g., Googlebot, Bingbot).
privacy.ServicestringSpecific service name if identified (e.g. "NordVPN").
abuse.AddressstringAbuse contact address.
abuse.CountrystringAbuse contact country.
abuse.EmailstringAbuse contact email.
abuse.NamestringAbuse contact name.
abuse.NetworkstringNetwork CIDR involved in abuse reports.
abuse.PhonestringAbuse contact phone.
domains.TotalnumberTotal number of domains hosted on this IP.
domains.PagenumberCurrent page number for domain pagination.
domains.Domainsstring[]List of domains hosted on this IP (may be null/empty).

Errors

Standard HTTP status codes are used to indicate success or failure.

CodeMeaningDescription
400Bad RequestThe IP address provided was invalid.
401UnauthorizedMissing or invalid API key.
403ForbiddenQuota exceeded or account inactive.
429Too Many RequestsRate limit exceeded.
500Internal ErrorSomething went wrong on our end.

Rate Limits

We limit the number of requests you can make to ensure fair usage and stability.

  • Free Plan: 1,000 requests per day.
  • Starter: 100,000 requests per month.
  • Pro 250k: 250,000 requests per month.
  • Pro 500k: 500,000 requests per month.
  • Scale: 1,000,000 requests per month.
  • Enterprise: 2,000,000 requests per month.
  • Enterprise XL: 5,000,000 requests per month.

If you exceed the limit, you will receive a 429 Too Many Requests response. Check the X-RateLimit-Limit and X-RateLimit-Remaining response headers to track your usage.

MMDB Snapshot

We provide an ipasis.mmdb snapshot compatible with the included GeoAPI.