{"eid":"hackmyip","name":"HackMyIP","domain":"hackmyip.com","resolved_by":"domain","topics":["data-apis"],"n_records":1,"best_vorder":0,"review":null,"aliases":["HackMyIP","hackmyip.com"],"records":[{"rid":"data-apis/hackmyip","card":{"rid":"data-apis/hackmyip","eid":"hackmyip","topic":"data-apis","slug":"hackmyip","provider":"HackMyIP","url":"https://hackmyip.com/api","domain":"hackmyip.com","category":"IP geolocation API","tier":"Free keyless","verdict":"qualifies","vorder":0,"grp":"usable","self_hosted":0,"confidence":"measured","binding":"request-rate","identity_kind":"anonymous","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"rest","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-11-02T00:23:42.887Z","verified_basis":"live","checked_on":"2026-11-02","stale_on":"2027-01-02","n_evidence":13,"usd_month":null,"usd_per_tb_month":null,"summary":"free keyless API with no signup: 100 requests a minute per IP address on /api (X-RateLimit-Limit 100 over a 60-second window) and 60 a minute on /api/v1; IP ...","duplicate_of":null,"n_unknown":0,"free_unit":"requests"},"record":{"topic":"data-apis","slug":"hackmyip","provider":"HackMyIP","url":"https://hackmyip.com/api","category":"IP geolocation API","tier":"Free keyless","free_tier":{"stated":"free keyless API with no signup: 100 requests a minute per IP address on /api (X-RateLimit-Limit 100 over a 60-second window) and 60 a minute on /api/v1; IP geolocation, ISP, ASN and privacy flags as JSON; POST /api/bulk takes up to 50 IPs","unit":"requests","metered_on":"request-count","source_url":"https://hackmyip.com/api","read_on":"2026-11-02","notes":"no daily or monthly quota is stated; past the per-minute limit the API answers HTTP 429 with Retry-After."},"per_object_cap":{"stated":"POST /api/bulk takes up to 50 IPs in one request; GET /api/lookup takes one","bytes":null,"source_url":"https://hackmyip.com/bulk-ip-lookup"},"retention":{"stated":"not applicable: a lookup API; answers are cacheable for an hour","days":null,"source_url":"https://hackmyip.com/api"},"egress":{"terms":"not applicable: JSON answers, not metered in bytes","metered":false,"free_allowance":null,"price_per_tb":null,"source_url":"https://hackmyip.com/api"},"interface":["rest"],"interface_detail":"GET https://hackmyip.com/api/lookup?ip={ip} and GET /api/v1/ip/{ip} answer JSON with CORS enabled; POST /api/bulk takes a JSON body with an ips array; GET /api/ip answers for the caller","endpoint":"https://hackmyip.com/api/lookup","tooling":"any HTTP client; X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Window headers on every answer; an npm package named hackmyip is offered","chaining":"Keyless city, ISP, ASN and VPN or datacenter flags from Cloudflare Workers at 100 requests a minute per IP. Bulk path: POST /api/bulk, 50 IPs a request, keyless, inside the same per-minute limit.","limits":[{"kind":"request-rate","value":"100 requests a minute per IP address on /api (X-RateLimit-Limit 100, window 60 seconds); 60 a minute on /api/v1","source":"https://hackmyip.com/api"},{"kind":"per-object-cap","value":"50 IPs per POST /api/bulk request","source":"https://hackmyip.com/bulk-ip-lookup"}],"binding":"request-rate","binding_note":"the per-minute limit per IP address is the only published cap; no daily or monthly quota is stated.","identity_cost":{"kind":"anonymous","detail":"no signup, no key and no authentication","country":null},"reliability_note":"past the per-minute limit the API answers HTTP 429 with Retry-After; if the upstream lookup is briefly unavailable it answers HTTP 503 with success false","confidence":"measured","confidence_note":"A keyless lookup of 8.8.8.8 was probed on 2026-11-02 and returned HTTP 200 with X-RateLimit-Limit 100 and X-RateLimit-Window 60; the page states 100 a minute on /api and 60 a minute on /api/v1, and the limits were not exhausted.","evidence":[{"url":"https://hackmyip.com/api","date":"2026-11-02","proved":"the API needs no key and asks for under 100 requests a minute","capture":"sha256:bbff4aac18ef4cf528cc2e18b8b542047b49d8e149d95b6b7cd430a30522cb7e","quote":"No API key required. JSON response, CORS enabled. Please keep it under 100 requests per minute."},{"url":"https://hackmyip.com/api","date":"2026-11-02","proved":"the advertised limit is 100 a minute over 60 seconds; /api/v1 is capped at 60 a minute","capture":"sha256:bbff4aac18ef4cf528cc2e18b8b542047b49d8e149d95b6b7cd430a30522cb7e","quote":"Please keep it under 100 requests per minute, the limit our response headers advertise (`X-RateLimit-Limit: 100`, `X-RateLimit-Window: 60`). The `/api/v1/` endpoints are capped at 60 requests per minute."},{"url":"https://hackmyip.com/api","date":"2026-11-02","proved":"answers are cacheable for an hour","capture":"sha256:bbff4aac18ef4cf528cc2e18b8b542047b49d8e149d95b6b7cd430a30522cb7e","quote":"Results are cacheable for an hour."},{"url":"https://hackmyip.com/api","date":"2026-11-02","proved":"the bulk endpoint takes up to 50 IPs in one POST","capture":"sha256:bbff4aac18ef4cf528cc2e18b8b542047b49d8e149d95b6b7cd430a30522cb7e","quote":"Batch lookup up to 50 IPs in a single POST request. Faster than sequential /api/lookup calls."},{"url":"https://hackmyip.com/bulk-ip-lookup","date":"2026-11-02","proved":"the bulk endpoint returns one result per IP, 50 IPs a request","capture":"sha256:b7ea6a08377b003ab92caa4ae8143143e2ace91962dc877738221ec732cae55f","quote":"takes up to 50 IPs in a single POST and returns a result per IP"},{"url":"https://hackmyip.com/api-docs","date":"2026-11-02","proved":"the v1 limit is 60 requests a minute per IP address","capture":"sha256:33e0d084628edd59dacbf0a8c460aa56755ebbfc0fea805c85971d366eeeab4c","quote":"60 requests / minutePer IP address. Resets every 60 seconds. No burst limits."},{"url":"https://hackmyip.com/api-docs","date":"2026-11-02","proved":"past the limit the API answers HTTP 429 with Retry-After","capture":"sha256:33e0d084628edd59dacbf0a8c460aa56755ebbfc0fea805c85971d366eeeab4c","quote":"429 Too Many RequestsReturned when rate limit is exceeded. Includes Retry-After header."},{"url":"https://hackmyip.com/api-docs","date":"2026-11-02","proved":"no signup and no key","capture":"sha256:33e0d084628edd59dacbf0a8c460aa56755ebbfc0fea805c85971d366eeeab4c","quote":"Free IP geolocation, DNS lookup, WHOIS, and HTTP header inspection API. No signup. No API key. Just send a request and get JSON back."},{"url":"https://hackmyip.com/terms","date":"2026-11-02","proved":"the API needs no sign-up","capture":"sha256:5692a92ae16bcfdab160af5c330481e778a2dd72a66e5f80859d09f57b0582a4","quote":"HackMyIP provides free network and privacy tools and a free API, with no sign-up required."},{"url":"probe:https://hackmyip.com/api/lookup?ip=8.8.8.8","date":"2026-11-02","proved":"a keyless GET of /api/lookup?ip=8.8.8.8 answered HTTP 200","capture":"sha256:851a614e3e60affbe722450618fd8d7ade7477aa68d3cd713d4d2f0c15a9a0c9","quote":"\"status\": 200"},{"url":"probe:https://hackmyip.com/api/lookup?ip=8.8.8.8","date":"2026-11-02","proved":"the answer advertises a limit of 100","capture":"sha256:851a614e3e60affbe722450618fd8d7ade7477aa68d3cd713d4d2f0c15a9a0c9","quote":"\"x-ratelimit-limit\": \"100\""},{"url":"probe:https://hackmyip.com/api/lookup?ip=8.8.8.8","date":"2026-11-02","proved":"the limit window is 60 seconds","capture":"sha256:851a614e3e60affbe722450618fd8d7ade7477aa68d3cd713d4d2f0c15a9a0c9","quote":"\"x-ratelimit-window\": \"60\""},{"url":"probe:https://hackmyip.com/api/lookup?ip=8.8.8.8","date":"2026-11-02","proved":"the answer carries a location for the looked-up IP","capture":"sha256:5f5b1a6c9518d0c11332e4903da1ae3192a6a633124433e16df4b4b1cdde3272","quote":"\"country_name\": \"United States\""}],"verdict":"qualifies","verified_at":"2026-11-02T00:23:42.887Z","notes":"Free requests: no quota stated; 100 a minute per IP on /api, 60 a minute on /api/v1. Rate limit: HTTP 429 with Retry-After. Bulk path: POST /api/bulk, up to 50 IPs a request, keyless.","extras":{"bulk_path":"POST /api/bulk, up to 50 IPs a request, keyless","free_requests":"100 a minute per IP, no key"}},"claims":[{"path":"$.free_tier","kind":"has-free-tier","num":1.0,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.free_tier.stated","kind":"free-quota","num":100.0,"unit":"requests","per":"minute","currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:request-rate","num":100.0,"unit":"requests","per":"minute","currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[1].value","kind":"limit:per-object-cap","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[],"history":[],"drift":[]}]}