{
  "name": "ip-api.com",
  "slug": "ip-api",
  "website_url": "https://ip-api.com/",
  "vendor_description": "\"IP Geolocation API - Fast, accurate, reliable\"",
  "categories": [
    "ip-geolocation"
  ],
  "summary": "ip-api.com is a REST-based IP geolocation service, active since 2012, covering global IPv4 and IPv6 addresses with lookups for location, ASN, carrier data, timezone, currency, and proxy/VPN/Tor detection. A free tier allows up to 45 requests per minute for non-commercial use over HTTP only, while the Pro subscription adds HTTPS, unlimited requests, and access to a larger anycast network spanning 23 points of presence. Pro plans require annual billing and self-serve signup is available without a sales call. The service is GDPR-compliant and ISO 27001 certified.",
  "capabilities": {
    "supported_actions": [
      "ip_lookup",
      "bulk_lookup",
      "dns_lookup",
      "proxy_vpn_tor_detection",
      "reverse_dns",
      "asn_lookup",
      "carrier_data",
      "timezone",
      "currency"
    ],
    "supported_regions": [
      "Global IPv4 and IPv6 coverage",
      "Europe: 89% city-level accuracy, 99% country-level accuracy",
      "USA: 88% city-level, 95% state-level, 99% country-level accuracy",
      "Global: 83% city-level, 99% country-level accuracy (as of February 2020)",
      "Live API only (no downloadable database)",
      "Anycast/GeoDNS network with 8 PoPs (free) or 23 PoPs (Pro)"
    ],
    "supported_languages": [],
    "input_types": [
      "IPv4 address",
      "IPv6 address",
      "domain name / hostname",
      "requester IP auto-detect (no query parameter)",
      "batch of up to 100 IPs per request (POST)"
    ],
    "output_types": [
      "status",
      "continent",
      "continentCode",
      "country",
      "countryCode",
      "region",
      "regionName",
      "city",
      "district",
      "postal/zip",
      "latitude/longitude",
      "timezone",
      "UTC offset",
      "currency",
      "ISP",
      "org",
      "ASN/org (AS field)",
      "asname",
      "reverse DNS",
      "mobile flag",
      "proxy/VPN/Tor flag",
      "hosting/datacenter flag",
      "query IP echo",
      "JSON",
      "XML",
      "CSV",
      "newline-separated",
      "PHP serialized"
    ],
    "webhooks_supported": false,
    "sandbox_available": false,
    "sdk_languages": [],
    "mcp_server_available": false
  },
  "integration": {
    "api_style": "rest",
    "base_url": "http://ip-api.com/json/",
    "api_version": null,
    "versioning_scheme": "none",
    "stability": "ga",
    "deprecation_policy_url": null,
    "auth_methods": [
      "api_key"
    ],
    "auth_docs_url": "https://members.ip-api.com/faq",
    "idempotency_supported": null,
    "error_format": "vendor-specific",
    "webhook_signing": null,
    "webhook_events_url": null,
    "rate_limit_requests": 45,
    "rate_limit_window": "minute",
    "sdk_packages": [],
    "mcp_url": null,
    "quickstart_url": "https://ip-api.com/docs/api:json"
  },
  "pricing": {
    "pricing_model": "subscription",
    "has_published_pricing": true,
    "starting_price_usd": null,
    "price_basis": "month",
    "free_tier_available": true,
    "free_tier_limit": "45 requests/minute (non-commercial use only)",
    "free_tier_details": "Recurring free tier; no API key required; 45 HTTP requests/minute per IP (single lookup) or 15 batch requests/minute; non-commercial use only; HTTP only (no HTTPS); JSON, XML, CSV, newline, PHP serialized formats; 8 PoPs.",
    "minimum_commitment": "12 months (Pro plan annual billing only; no published monthly option)",
    "self_serve_signup": true,
    "requires_sales_call": false,
    "requires_verification": false,
    "enterprise_plan_available": true,
    "price_points": [
      {
        "plan": "Free",
        "item": "IP lookups (non-commercial, HTTP only, 45 req/min limit)",
        "amount_usd": "0.0000",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://members.ip-api.com/"
      },
      {
        "plan": "Pro",
        "item": "Unlimited IP lookups (commercial use, HTTPS, 23 PoPs) — €13.3/month on 12-month annual plan (converted at ~1.157 EUR/USD, June 2026)",
        "amount_usd": "15.3900",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://members.ip-api.com/"
      },
      {
        "plan": "Enterprise",
        "item": "Custom plan (dedicated servers, personalized support, custom solutions)",
        "amount_usd": null,
        "amount_percent": null,
        "per": null,
        "currency": "USD",
        "source_url": "https://members.ip-api.com/contact/sales"
      }
    ]
  },
  "compliance": {
    "soc2": "none",
    "hipaa": false,
    "gdpr": true,
    "iso_27001": true,
    "pci_dss": false,
    "sla_published": true,
    "sla_url": "https://members.ip-api.com/legal",
    "data_retention_policy_url": "https://members.ip-api.com/legal",
    "documented_rate_limits": "Free single-lookup endpoint: 45 requests/minute per IP address (HTTP 429 on excess; 1-hour IP ban on persistent violations; headers X-Rl and X-Ttl). Free batch endpoint: 15 requests/minute per IP address, up to 100 IPs per batch. Pro plan: unlimited requests.",
    "known_restrictions": [
      "Free tier is non-commercial only: 'We do not allow commercial use of this endpoint'",
      "HTTPS/SSL access gated to paid Pro plan only; free endpoint is HTTP only",
      "No reselling of API keys, subscriptions, or data returned by the API",
      "Database mining (querying all possible IPv4 addresses) is explicitly prohibited",
      "Data accuracy is best-effort: 'We do not offer any warranties regarding the correctness of the data returned'",
      "GeoLite2 (MaxMind) used as fallback for some IP ranges",
      "Pro plan pricing is annual-only (12-month commitment); no published monthly rate",
      "Prices shown in Euro exclusive of VAT"
    ]
  },
  "developer": {
    "docs_url": "https://ip-api.com/docs",
    "api_reference_url": null,
    "openapi_spec_url": null,
    "postman_collection_url": null,
    "changelog_url": "https://ip-api.com/changelog",
    "status_page_url": "https://status.ip-api.com",
    "llms_txt_url": null,
    "markdown_docs_url": null,
    "rendering": "static"
  },
  "adoption": {
    "launched_at": "2012-01-01",
    "ga_date": "2012-01-01",
    "github_stars": null,
    "github_stars_at": null,
    "notable_customers": []
  },
  "scores": {
    "agent_friendliness": 20,
    "pricing_transparency": 75,
    "setup_speed": 70,
    "docs_quality": 25,
    "procurement_friction": 90,
    "trust_readiness": 50,
    "best_for": [
      "Prototypes and side projects - free to start, no sales call",
      "Teams needing broad API coverage out of the box"
    ],
    "avoid_if": [
      "You have strict compliance requirements"
    ]
  },
  "sources": [
    {
      "field": "known_restrictions",
      "url": "https://ip-api.com/docs/legal",
      "excerpt": "Fallback to GeoLite2 data created by MaxMind for some ranges",
      "confidence": "high"
    },
    {
      "field": "input_types",
      "url": "https://ip-api.com/docs/api:json",
      "excerpt": "IPv4 addresses, IPv6 addresses, Domain names. If no query provided, the requester's current IP is used",
      "confidence": "high"
    },
    {
      "field": "versioning_scheme",
      "url": "https://ip-api.com/docs/api:json",
      "excerpt": "API Version: Not explicitly specified; appears to be a single version endpoint.",
      "confidence": "high"
    },
    {
      "field": "free_tier_available",
      "url": "https://ip-api.com/docs/api:json",
      "excerpt": "This endpoint is limited to 45 requests per minute from an IP address.",
      "confidence": "high"
    },
    {
      "field": "free_tier_details",
      "url": "https://ip-api.com/docs/api:json",
      "excerpt": "256-bit SSL encryption is not available for this free API. We do not allow commercial use of this endpoint",
      "confidence": "high"
    },
    {
      "field": "pricing_model",
      "url": "https://members.ip-api.com/",
      "excerpt": "€13.3 per month, when paying for 12 months",
      "confidence": "high"
    },
    {
      "field": "has_published_pricing",
      "url": "https://members.ip-api.com/",
      "excerpt": "Shown prices are in Euro exclusive of VAT.",
      "confidence": "high"
    },
    {
      "field": "enterprise_plan_available",
      "url": "https://members.ip-api.com/",
      "excerpt": "Custom pricing (contact sales required) — Customized support and personalized integration assistance, 23 PoPs plus option for custom solutions such as dedicated servers",
      "confidence": "high"
    },
    {
      "field": "gdpr",
      "url": "https://members.ip-api.com/legal",
      "excerpt": "fully compliant with the General Data Protection Regulation (GDPR)",
      "confidence": "high"
    },
    {
      "field": "soc2",
      "url": "https://members.ip-api.com/faq",
      "excerpt": "ISO 9001:2015 and 27001:2013 certified through UKAS",
      "confidence": "high"
    },
    {
      "field": "pci_dss",
      "url": "https://members.ip-api.com/legal",
      "excerpt": "fully compliant with the General Data Protection Regulation (GDPR)",
      "confidence": "high"
    },
    {
      "field": "sla_published",
      "url": "https://members.ip-api.com/legal",
      "excerpt": "If monthly availability drops below 99.9% or response times exceed 500ms consistently (over 1 hour), subscribers receive 10 days of complimentary service extension.",
      "confidence": "high"
    },
    {
      "field": "documented_rate_limits",
      "url": "https://ip-api.com/docs/api:batch",
      "excerpt": "15 requests per minute from an IP address",
      "confidence": "high"
    },
    {
      "field": "known_restrictions",
      "url": "https://ip-api.com/docs/api:json",
      "excerpt": "256-bit SSL encryption is not available for this free API. We do not allow commercial use of this endpoint",
      "confidence": "high"
    },
    {
      "field": "vendor_description",
      "url": "https://ip-api.com/",
      "excerpt": "IP Geolocation API — Fast, accurate, reliable",
      "confidence": "high"
    },
    {
      "field": "free_tier_available",
      "url": "https://ip-api.com/docs/legal",
      "excerpt": "We do not allow commercial use of this endpoint.",
      "confidence": "high"
    },
    {
      "field": "free_tier_details",
      "url": "https://ip-api.com/docs/api:batch",
      "excerpt": "15 requests per minute from an IP address",
      "confidence": "high"
    },
    {
      "field": "has_published_pricing",
      "url": "https://members.ip-api.com/",
      "excerpt": "€13.3 per month, when paying for 12 months",
      "confidence": "high"
    },
    {
      "field": "minimum_commitment",
      "url": "https://members.ip-api.com/",
      "excerpt": "€13.3 per month, when paying for 12 months",
      "confidence": "high"
    },
    {
      "field": "gdpr",
      "url": "https://members.ip-api.com/faq",
      "excerpt": "fully compliant with the General Data Protection Regulation (GDPR), and our company is ISO 9001:2015 and 27001:2013 certified through UKAS",
      "confidence": "high"
    },
    {
      "field": "iso_27001",
      "url": "https://members.ip-api.com/faq",
      "excerpt": "ISO 9001:2015 and 27001:2013 certified through UKAS",
      "confidence": "high"
    },
    {
      "field": "hipaa",
      "url": "https://members.ip-api.com/legal",
      "excerpt": "fully compliant with the General Data Protection Regulation (GDPR)",
      "confidence": "high"
    },
    {
      "field": "sla_published",
      "url": "https://members.ip-api.com/faq",
      "excerpt": "99.9% API monthly uptime, with a response time (TTFB) of under 500ms in most parts of the world and under 100ms in US, Europe and most of Asia",
      "confidence": "high"
    },
    {
      "field": "documented_rate_limits",
      "url": "https://ip-api.com/docs/api:json",
      "excerpt": "This endpoint is limited to 45 requests per minute from an IP address. Exceeding this triggers HTTP 429 throttling",
      "confidence": "high"
    },
    {
      "field": "supported_regions",
      "url": "https://members.ip-api.com/faq",
      "excerpt": "Europe: 89% city-level, 99% country-level accuracy. USA: 88% city-level, 95% state-level, 99% country-level. Global: 83% city-level, 99% country-level (as of February 2020)",
      "confidence": "high"
    },
    {
      "field": "known_restrictions",
      "url": "https://members.ip-api.com/legal",
      "excerpt": "do not allow reselling of your API keys, subscription, or data returned by the API",
      "confidence": "high"
    },
    {
      "field": "sandbox_available",
      "url": "https://ip-api.com/docs",
      "excerpt": "No dedicated sandbox or test environment mentioned in documentation",
      "confidence": "high"
    },
    {
      "field": "input_types",
      "url": "https://ip-api.com/docs/api:batch",
      "excerpt": "A request needs to be formatted as a JSON array, containing up to 100 IP addresses or objects",
      "confidence": "high"
    },
    {
      "field": "base_url",
      "url": "https://ip-api.com/docs/api:json",
      "excerpt": "Base URL: http://ip-api.com/json/",
      "confidence": "high"
    },
    {
      "field": "auth_methods",
      "url": "https://members.ip-api.com/faq",
      "excerpt": "All requests need an API key for authentication, supplied as a GET parameter.",
      "confidence": "high"
    },
    {
      "field": "rate_limit_window",
      "url": "https://ip-api.com/docs/api:json",
      "excerpt": "This endpoint is limited to 45 requests per minute from an IP address.",
      "confidence": "high"
    },
    {
      "field": "free_tier_limit",
      "url": "https://ip-api.com/docs/api:json",
      "excerpt": "This endpoint is limited to 45 requests per minute from an IP address.",
      "confidence": "high"
    },
    {
      "field": "api_style",
      "url": "https://ip-api.com/",
      "excerpt": "simple URL-based interface over HTTP, which enables you to use our data directly from a user's browser or from your server",
      "confidence": "high"
    },
    {
      "field": "ga_date",
      "url": "https://members.ip-api.com/faq",
      "excerpt": "ip-api was launched in 2012 and the pro plan in 2014",
      "confidence": "high"
    },
    {
      "field": "sla_url",
      "url": "https://members.ip-api.com/legal",
      "excerpt": "If monthly availability drops below 99.9% or response times exceed 500ms consistently (over 1 hour), subscribers receive 10 days of complimentary service extension.",
      "confidence": "high"
    },
    {
      "field": "requires_verification",
      "url": "https://ip-api.com/docs/api:json",
      "excerpt": "There is no API key required.",
      "confidence": "high"
    },
    {
      "field": "starting_price_usd",
      "url": "https://members.ip-api.com/",
      "excerpt": "Pro Plan: €13.3/month (annual billing); USD equivalent approximately $14.50/month",
      "confidence": "low"
    },
    {
      "field": "output_types",
      "url": "https://ip-api.com/docs/api:json",
      "excerpt": "status, continent, continentCode, country, countryCode, region, regionName, city, district, zip, lat, lon, timezone, offset, currency, isp, org, as, asname, reverse, mobile, proxy, hosting, query",
      "confidence": "high"
    },
    {
      "field": "auth_methods",
      "url": "https://ip-api.com/docs/api:json",
      "excerpt": "There is no API key required.",
      "confidence": "high"
    },
    {
      "field": "rate_limit_requests",
      "url": "https://ip-api.com/docs/api:json",
      "excerpt": "This endpoint is limited to 45 requests per minute from an IP address.",
      "confidence": "high"
    },
    {
      "field": "free_tier_limit",
      "url": "https://ip-api.com/",
      "excerpt": "We do not allow commercial use of the free endpoint",
      "confidence": "high"
    },
    {
      "field": "error_format",
      "url": "https://ip-api.com/docs/api:json",
      "excerpt": "Failures return \"status\": \"fail\" with a \"message\" field explaining the issue (e.g., \"invalid query,\" \"private range,\" \"reserved range\").",
      "confidence": "high"
    },
    {
      "field": "launched_at",
      "url": "https://members.ip-api.com/faq",
      "excerpt": "ip-api was launched in 2012 and the pro plan in 2014",
      "confidence": "high"
    },
    {
      "field": "sla_url",
      "url": "https://members.ip-api.com/faq",
      "excerpt": "99.9% API monthly uptime, with a response time (TTFB) of under 500ms in most parts of the world and under 100ms in US, Europe and most of Asia",
      "confidence": "high"
    },
    {
      "field": "data_retention_policy_url",
      "url": "https://members.ip-api.com/legal",
      "excerpt": "basic information about your queries (counters for successful and failed queries, for resolved countries) is retained for the subscription duration plus up to 1 year after.",
      "confidence": "high"
    },
    {
      "field": "price_basis",
      "url": "https://members.ip-api.com/",
      "excerpt": "Pro Plan: €13.3/month (annual billing)",
      "confidence": "high"
    },
    {
      "field": "stability",
      "url": "https://ip-api.com/",
      "excerpt": "Operating since 2012, now serving over 1 billion requests daily.",
      "confidence": "high"
    },
    {
      "field": "auth_docs_url",
      "url": "https://members.ip-api.com/faq",
      "excerpt": "All requests need an API key for authentication, supplied as a GET parameter. You can create up to 10 different API keys.",
      "confidence": "high"
    }
  ],
  "fields_not_found": [
    "soc2",
    "hipaa",
    "pci_dss",
    "sdk_languages",
    "mcp_server_available",
    "webhooks_supported",
    "monthly (non-annual) Pro plan price",
    "starting_price_usd",
    "api_version",
    "deprecation_policy_url",
    "mcp_url",
    "notable_customers",
    "webhook_events_url",
    "webhook_signing",
    "idempotency_supported"
  ],
  "source_confidence": "high",
  "last_verified_at": "2026-06-14T00:00:00.000Z",
  "contribute": {
    "note": "This data is crowd-editable. Suggest corrections or leave a review via these endpoints - no auth required, requests are rate-limited, and every submission is reviewed before it goes live. For a field edit, {field} is any key in this response and a citation is required.",
    "endpoints": [
      {
        "action": "review",
        "label": "Leave a review or comment",
        "method": "POST",
        "url": "https://apio.sh/api/feedback/ip-api",
        "example_body": {
          "kind": "review",
          "rating": 5,
          "body": "Your experience with this API…"
        }
      },
      {
        "action": "field_edit",
        "label": "Suggest a correction to a field (cite a source)",
        "method": "POST",
        "url": "https://apio.sh/api/suggest/ip-api/{field}",
        "example_body": {
          "value": "corrected value",
          "citations": [
            {
              "url": "https://source.example/page",
              "excerpt": "supporting quote"
            }
          ],
          "note": "what changed and why"
        }
      },
      {
        "action": "new_api",
        "label": "Suggest a new API to add",
        "method": "POST",
        "url": "https://apio.sh/api/suggest/api",
        "example_body": {
          "value": {
            "name": "Acme API",
            "website_url": "https://acme.example"
          },
          "citations": [
            {
              "url": "https://acme.example"
            }
          ]
        }
      },
      {
        "action": "token",
        "label": "Optional - raise your rate limit",
        "method": "GET",
        "url": "https://apio.sh/api/feedback/token"
      }
    ]
  }
}