OpenIPApi

Dokumentácia API

Všetko, čo potrebujete na integráciu OpenIPApi do vašej aplikácie. Základná URL: https://api.openipapi.com (verzované ako /v1).

Signály, nie verdikty. IP spravodajstvo je pravdepodobnostné. threat_score a príznaky VPN/proxy/Tor sú vstupom do vašej rozhodovacej logiky. Kombinujte ich so signálmi účtu, platby, zariadenia a správania — nikdy ich nepoužívajte ako jediný základ pre blokovanie. Podrobnosti nájdete v Metodike dát.

Autentifikácia

Všetky požiadavky na API musia obsahovať váš API kľúč v hlavičke X-API-Key . Váš API kľúč nájdete v konzole.

X-API-Key: oip_your_api_key_here
Udržiavajte API kľúč v tajnosti. Nikdy ho nevystavujte v klientskom JavaScripte ani verejných repozitároch.

Základná URL

Všetky požiadavky na API sa odosielajú na nasledujúcu základnú URL cez HTTPS:

https://api.openipapi.com

Strojovo čitateľná špecifikácia (OpenAPI 3.1): /openapi.yaml.

Formát odpovede

Všetky odpovede sú vo formáte JSON. Úspešné odpovede vracajú HTTP 200. Chybové odpovede vracajú príslušný stavový kód 4xx alebo 5xx s poľom error .

{
  "error": "invalid_api_key",
  "message": "The provided API key is invalid or has been revoked.",
  "status": 401
}

GET /v1/lookup/{ip}

Vyhľadajte geolokáciu, sieťové dáta a dáta o hrozbách pre jednu IP adresu.

GET https://api.openipapi.com/v1/lookup/{ip}

Parametre

Parameter Typ Popis
ip path IPv4 alebo IPv6 adresa na vyhľadanie.
fields query (optional) Čiarkou oddelený zoznam polí najvyššej úrovne na vrátenie: geo,network,threat,abuse.
date query (optional) Historické vyhľadávanie — vrátiť snímku tejto IP k danému dátumu (YYYY-MM-DD). Až 365 dní späť. Vyžaduje sa Pro+. Vráti no_snapshot chybu, ak pre daný dátum nie sú dostupné žiadne dáta.

Polia odpovede

Pole Popis Plán
ip The queried IP address. All
type IPv4 or IPv6. All
geo.country_code 2-letter ISO 3166-1 country code. All
geo.country Full country name. All
geo.region Region / state name. All
geo.region_code Region / state code. All
geo.city City name. All
geo.postal_code Postal / ZIP code. All
geo.latitude Latitude (decimal degrees). All
geo.longitude Longitude (decimal degrees). All
geo.timezone IANA timezone identifier (e.g. Europe/Berlin). All
geo.is_sanctioned True if the country is on OFAC, EU, or UN sanction lists. All
geo.sanction_lists Array of applicable sanction programs, e.g. ["OFAC","EU"]. All
network.asn Autonomous System Number. Starter+
network.as_name AS organisation name. Starter+
network.as_domain AS organisation domain. Starter+
network.isp Internet Service Provider name. All
network.organization Network organisation name. All
network.connection_type residential, datacenter, mobile, education, or government. All
threat.is_vpn True if the IP is a known VPN endpoint. Pro+
threat.is_proxy True if the IP is a known open proxy. Pro+
threat.is_tor True if the IP is a Tor exit node. Pro+
threat.is_relay True if the IP is an anonymous relay. Pro+
threat.is_hosting True if the IP belongs to a hosting provider. Pro+
threat.threat_score Composite risk score 0–100. A signal, not a final verdict — combine with account, payment, device and behavior data. Pro+
threat.threat_categories Array of threat category strings. Pro+
threat.bot_type Verified bot identifier (e.g. "googlebot", "bingbot") or null. Verified via reverse-DNS + forward confirmation. All
abuse.contact_email Abuse contact email from WHOIS data. Pro+

Príklad požiadavky

$ curl https://api.openipapi.com/v1/lookup/185.220.101.45 \
     -H "X-API-Key: oip_your_api_key_here"

Príklad odpovede

{
  "ip": "185.220.101.45",
  "type": "IPv4",
  "geo": {
    "country_code": "DE",
    "country": "Germany",
    "region": "Hessen",
    "region_code": "HE",
    "city": "Frankfurt am Main",
    "postal_code": "60313",
    "latitude": 50.1109,
    "longitude": 8.6821,
    "timezone": "Europe/Berlin",
    "is_sanctioned": false,
    "sanction_lists": []
  },
  "network": {
    "asn": 205100,
    "as_name": "F3 Netze e.V.",
    "as_domain": "f3netze.de",
    "isp": "F3 Netze",
    "organization": "F3 Netze e.V.",
    "connection_type": "datacenter"
  },
  "threat": {
    "is_vpn": true,
    "is_proxy": false,
    "is_tor": true,
    "is_relay": false,
    "is_hosting": true,
    "threat_score": 85,
    "threat_categories": ["tor_exit_node", "known_abuser"],
    "bot_type": null
  },
  "abuse": {
    "contact_email": "abuse@f3netze.de"
  }
}

POST /v1/lookup/batch

Vyhľadajte viacero IP adries v jednej požiadavke. Limity veľkosti dávky závisia od vášho plánu.

POST https://api.openipapi.com/v1/lookup/batch
Hromadné vyhľadávania vyžadujú plán Starter alebo vyšší. Účty na bezplatnom pláne dostanú plan_required chybu.

Limity veľkosti dávky

Plán Max. IP na požiadavku
Starter 100
Pro 500
Business 1,000
Enterprise 5,000

Telo požiadavky

{
  "ips": [
    "185.220.101.45",
    "8.8.8.8",
    "1.1.1.1"
  ]
}

Odpoveď

Vracia obalené pole úplných objektov vyhľadávania v rovnakom poradí ako požiadavka.

{
  "results": [
    { "ip": "185.220.101.45", /* full lookup object */ },
    { "ip": "8.8.8.8",          /* full lookup object */ },
    { "ip": "1.1.1.1",          /* full lookup object */ }
  ],
  "count": 3
}

GET /v1/me

Vracia geolokáciu a dáta o hrozbách pre IP adresu, ktorá odoslaní požiadavku. Užitočné pre funkcie „Aká je moja IP?".

GET https://api.openipapi.com/v1/me

Odpoveď je identická s GET /v1/lookup/{ip} s pred vyplnenou IP volajúceho.

$ curl https://api.openipapi.com/v1/me \
     -H "X-API-Key: oip_your_api_key_here"

GET /v1/asn/{asn}

Získajte podrobné informácie o čísle autonómneho systému. Vyžaduje sa plán Starter alebo vyšší.

GET https://api.openipapi.com/v1/asn/{asn}

Parameter asn akceptuje ako 13335 tak aj AS13335 formáty.

$ curl https://api.openipapi.com/v1/asn/13335 \
     -H "X-API-Key: oip_your_api_key_here"

Príklad odpovede

{
  "asn": 13335,
  "as_name": "Cloudflare, Inc.",
  "as_domain": "cloudflare.com",
  "organization": "Cloudflare, Inc.",
  "country_code": "US",
  "ip_ranges_count": 1284,
  "total_ips": 2359296
}

GET /v1/validate/{ip}

Overí IP adresu a určí jej typ. Nespotrebúva kvótu vyhľadávaní.

GET https://api.openipapi.com/v1/validate/{ip}

Example response

{
  "ip": "185.220.101.45",
  "valid": true,
  "type": "IPv4",
  "private": false,
  "bogon": false
}

GET /v1/fraud/{ip}

Kompozitné skóre podvodu (0–100) s úrovňou rizika a použiteľným odporúčaním. Kombinuje signály VPN, proxy, Tor, dátového centra a historického zneužívania. Plán Starter alebo vyšší

GET https://api.openipapi.com/v1/fraud/{ip}

Example response

{
  "ip": "185.220.101.45",
  "fraud_score": 92,
  "risk_level": "critical",
  "signals": {
    "is_vpn": true,
    "is_proxy": false,
    "is_tor": true,
    "is_datacenter": true,
    "is_known_attacker": true,
    "high_risk_country": false
  },
  "recommendation": "block"
}

Úrovne rizika a odporúčania

Skóre Úroveň rizika Odporúčanie Typická akcia
0–30lowallowNechajte požiadavku prejsť
31–60mediumreviewZaznamenejte na manuálne preskúmanie
61–85highchallengeVyžadovať CAPTCHA / 2FA / viacfaktorovú autentifikáciu
86–100criticalblockOdmietnuť a upozorniť

GET /v1/probe/{ip}

Dáta zo sieťových sond v reálnom čase z našich 60+ aktívnych sondovacích uzlov: otvorené TCP porty, bannery služieb, reverzný DNS, kompletné detaily TLS certifikátu (subjekt, vydavateľ, SAN, platnosť) a detekované kategórie služieb. Plán Pro alebo vyšší

GET https://api.openipapi.com/v1/probe/{ip}

Ako to funguje

  • · Čerstvé dáta (≤ 7 dní): vrátené okamžite z cache.
  • · Zastarané dáta (> 7 dní): vrátené okamžite a na pozadí sa zaradí opätovné sondovanie. Odpoveď obsahuje "stale": true.
  • · Nikdy nesondované: sondovanie sa zaradí do fronty na okamžité skenovanie. Prvé výsledky zvyčajne prichádzajú do 1–5 minút.
  • · Kvóta sondovania je 10 % vašej mesačnej kvóty vyhľadávaní. Súkromné / rezervované IP adresy nie je možné sondovať.

Example response

{
  "ip": "185.220.101.45",
  "reachable": true,
  "last_probed": "2026-04-18T14:23:11+00:00",
  "age_hours": 2.3,
  "stale": false,
  "refresh_queued": false,
  "probe_count_24h": 14,
  "probed_from_nodes": 8,
  "open_ports": [
    { "port": 22,   "service": "ssh",       "banner": "SSH-2.0-OpenSSH_8.9p1" },
    { "port": 80,   "service": "http",      "banner": "nginx/1.24.0" },
    { "port": 443,  "service": "https",     "banner": null },
    { "port": 9001, "service": "tor-relay", "banner": null }
  ],
  "reverse_dns": "tor-exit.f3netze.de",
  "tls": {
    "subject_cn":  "*.f3netze.de",
    "issuer":      "Let's Encrypt",
    "valid_from":  "2026-02-10T00:00:00Z",
    "valid_to":    "2026-05-10T00:00:00Z",
    "sans":        ["f3netze.de", "*.f3netze.de"],
    "fingerprint": "7e:4f:...:b2:e1"
  },
  "banners": {
    "22": "SSH-2.0-OpenSSH_8.9p1",
    "80": "nginx/1.24.0"
  },
  "detected_services": {
    "is_tor_relay":  true,
    "is_ssh_open":   true,
    "is_web_server": true,
    "is_vpn":        false,
    "is_proxy":      false
  }
}

Porty, ktoré skenujeme

22 (ssh), 80 / 8080 (http), 443 / 8443 (https), 1080 (socks5), 3128 / 8888 (http-proxy), 9001 / 9030 (tor-relay / tor-dir), 9050 / 9150 (tor-socks), 1194 (openvpn), 4500 (ipsec-nat-t), 51820 (wireguard).

Príklady použitia

  • · Anti-podvod — detekcia botnetov s identickými verziami SSH / odtlačkami TLS
  • · Spravodajstvo o hrozbách — monitorovanie C2 serverov na zmeny bannerov / certifikátov
  • · OSINT / bug bounty — rýchle vymenúvanie služieb na ľubovoľnej verejnej IP
  • · Hosting / operácie ISP — hľadanie otvorených proxy / Tor výstupov vo vašej sieti

GET /v1/proxy-attribution/{ip}

Identifikuje, či IP patrí do známeho poolu rezidenčných proxy, komerčného VPN alebo rozsahu dátového centra. Na rozdiel od generických is_proxy príznakov, tento endpoint priradí IP konkrétnemu poskytovateľovi (Bright Data, Oxylabs, NordVPN atď.) — kritické pre tímy boja proti podvodom, ktoré potrebujú niektorých poskytovateľov povoliť a iných blokovať. Doplnok Proxy Intel

GET https://api.openipapi.com/v1/proxy-attribution/{ip}

Príklad odpovede (IP v rozsahu VPN)

{
  "ip": "2.56.16.42",
  "detected": true,
  "primary_provider": {
    "provider":     "unknown_vpn",
    "display_name": "Unknown VPN",
    "network_type": "vpn",
    "confidence":   0.75
  },
  "networks": [
    {
      "provider":    "unknown_vpn",
      "network_type": "vpn",
      "confidence":   0.75,
      "source":       "x4bnet-vpn",
      "cidr":         "2.56.16.0/22"
    },
    {
      "provider":    "unknown_datacenter",
      "network_type": "datacenter",
      "confidence":   0.75,
      "source":       "x4bnet-datacenter"
    }
  ],
  "recommendation": "treat_as_vpn"
}

Typy sietí

  • · residential — pooly rezidenčných proxy (Bright Data, Oxylabs, Smartproxy, IPRoyal, Hola, Honeygain, EarnApp, Peer2Profit, SOAX)
  • · vpn — komerční poskytovatelia VPN (NordVPN, ExpressVPN, Surfshark, Mullvad, ProtonVPN, PIA, IPVanish, CyberGhost)
  • · datacenter — hostingoví poskytovatelia často používaní ako komerčné proxy výstupy (AWS, DigitalOcean, OVH, Hetzner atď.)
  • · tor — Tor výstupné / prenosové uzly
  • · mobile — pooly proxy mobilných operátorov

Odporúčania

Odporúčanie Význam
no_proxy_detectedIP sa nezhoduje so žiadnym známym poolom — zaobchádzajte s ním ako s normálnou prevádzkou.
treat_as_commercial_proxyIP je v poole rezidenčných proxy — pravdepodobne škodlivý na non-scraping stránkach.
treat_as_vpnIP je v rozsahu komerčného VPN — použite VPN politiku.
treat_as_datacenterIP pochádza z rozsahu dátového centra — nie je to skutočný rezidenčný používateľ.
block_or_challengeTor výstupný uzol — blokujte alebo vyžadujte silnú autentifikáciu.

GET /v1/account/usage

Vracia štatistiky využívania za aktuálne fakturačné obdobie pre váš účet.

GET https://api.openipapi.com/v1/account/usage

Example response

{
  "plan": "Pro",
  "period_start": "2026-03-01",
  "period_end": "2026-03-31",
  "lookups_used": 184320,
  "lookups_limit": 500000,
  "lookups_remaining": 315680,
  "reset_at": "2026-04-01T00:00:00Z"
}

GET /v1/database/list

Zobrazuje dostupné MMDB databázy pre váš plán. Náhrada MaxMind .mmdb pre offline / edge použitie — funguje s ľubovoľným čítačom MaxMind DB (PHP, Go, Python, Node.js, Rust, Java).

GET https://api.openipapi.com/v1/database/list

Example response

{
  "plan": "Business",
  "sources": [
    {
      "source": "country",
      "filename": "geo-whois-asn-country.mmdb",
      "size_bytes": 8225621,
      "updated_at": "2026-04-18T02:00:00+00:00",
      "etag": "\"fa2b851f9155838b\"",
      "download_url": "https://api.openipapi.com/v1/database/download/country"
    }
  ]
}

GET /v1/database/download/{source}

Streamuje surový MMDB súbor. Podporuje ETag + If-None-Match pre podmienené GET požiadavky (304 Not Modified, ak sa súbor nezmenil). Limit rýchlosti: 10 stiahnutí zo zdroja za deň.

GET https://api.openipapi.com/v1/database/download/{source}

Dostupné zdroje

Zdroj Obsah Licencia Požadovaný plán
countryKód krajiny + ASNCC0Pro
asnASN + organizáciaCC0Business
city-geolite2Mesto, región, zemepisná šírka/dĺžka, časové pásmo (GeoLite2)MaxMind GeoLite2 EULABusiness
city-dbipMesto (alternatíva k GeoLite2)DB-IP LiteEnterprise

Príklad: stiahnuť + použiť v PHP

# Download latest MMDB
$ curl -H "X-API-Key: YOUR_KEY" \
    -o asn.mmdb \
    https://api.openipapi.com/v1/database/download/asn

# Use with maxmind-db/reader
$ composer require maxmind-db/reader

<?php
use MaxMind\Db\Reader;
$reader = new Reader('asn.mmdb');
$record = $reader->get('8.8.8.8');
// ['autonomous_system_number' => 15169,
//  'autonomous_system_organization' => 'Google LLC']

Príznak sankcií

Každá /v1/lookup odpoveď obsahuje dve polia v bloku geo , ktoré informujú o tom, či je krajina IP adresa predmetom medzinárodných sankcií.

Pole Popis
geo.is_sanctioned true ak sa krajina nachádza v niektorom sledovanom sankčnom zozname; false inak.
geo.sanction_lists Pole identifikátorov sankčných programov: OFAC, EU, UN, UK. Prázdne pole [] ak sa sankcie nevzťahujú.

Pokryté sankčné zoznamy: OFAC (USA), EÚ, Rada bezpečnosti OSN, UK OFSI. Momentálne označené krajiny zahŕňajú Irán, Severnú Kóreu, Rusko, Bielorusko, Sýriu, Kubu, Venezuelu, Sudán a ďalšie. Zoznam sa udržiava a aktualizuje podľa zmien programov.

Príklad pre sankcionovanú krajinu

"geo": {
  "country_code": "IR",
  "country": "Iran",
  ...
  "is_sanctioned": true,
  "sanction_lists": ["OFAC", "EU", "UN"]
}

Detekcia botov

OpenIPApi vykonáva dvojité reverzné DNS overenie na identifikáciu legitímnych crawlerov. Výsledok je dostupný v threat.bot_type pri každom vyhľadávaní.

Pole Hodnoty
threat.bot_type null (nie overený bot) alebo jedno z: googlebot, google_special_crawl, bingbot, applebot, yandexbot, duckduckbot, facebookbot, semrushbot, ahrefsbot, mj12bot

Metóda overenia: (1) PTR vyhľadávanie IP → hostname. (2) Hostname musí zodpovedať vzoru domény bota (napr. *.googlebot.com). (3) Dopredný DNS pre hostname musí rezolúciou viesť späť k pôvodnej IP. Výsledky sú cachované 24 hodín.

Príklad overeného Googlebot

"threat": {
  "is_vpn": false,
  "is_proxy": false,
  "is_tor": false,
  "threat_score": 0,
  "bot_type": "googlebot"
}

Historické vyhľadávanie

Pridajte parameter ?date=YYYY-MM-DD k ľubovoľnému vyhľadávaniu jednej IP na získanie snímky k danému dátumu.

Historické vyhľadávanie vyžaduje plán Pro alebo vyšší. Snímky sú dostupné až 365 dní späť. Denné snímky sa automaticky vytvárajú pre najvyhľadávanejšie IP.
GET https://api.openipapi.com/v1/lookup/{ip}?date=2026-01-15

Príklad požiadavky

$ curl "https://api.openipapi.com/v1/lookup/185.220.101.45?date=2026-01-15" \
     -H "X-API-Key: oip_your_api_key_here"

Obálka odpovede

{
  "ip": "185.220.101.45",
  "snapshot_date": "2026-01-15",
  "is_historical": true,
  "data": {
    /* standard lookup response */
  }
}

Chyba: snímka nie je dostupná

{
  "error": "No historical snapshot available for this IP on 2026-01-15",
  "code": "no_snapshot"
}

Chybové kódy

Kód HTTP stav Popis
invalid_api_key 401 API kľúč chýba, má nesprávny formát alebo bol odvolaný.
limit_exceeded 429 Spotrebovali ste všetky vyhľadávania v aktuálnom fakturačnom období.
plan_required 403 Požadovaná funkcia nie je dostupná vo vašom aktuálnom pláne.
invalid_ip 400 Zadaná IP adresa nie je platná IPv4 alebo IPv6 adresa.
not_found 404 Neboli nájdené žiadne dáta pre požadovaný zdroj (napr. neznáme ASN).
no_snapshot 404 Pre túto IP k požadovanému dátumu neexistuje historická snímka.
date_out_of_range 400 Dátum historického vyhľadávania je viac ako 365 dní v minulosti.
invalid_date 400 Parameter dátumu chýba, má nesprávny formát alebo je v budúcnosti.
plan_upgrade_required 403 Požadovaná funkcia vyžaduje vyššiu úroveň plánu.
rate_limited 429 Príliš veľa požiadaviek v krátkom čase. Počkajte a skúste znova.
internal_error 500 Nastala neočakávaná chyba servera. Kontaktujte podporu, ak problém pretrváva.

Limity rýchlosti

Okrem mesačných kvót vyhľadávaní sú požiadavky obmedzené rýchlosťou na API kľúč pomocou posuvného okna. Pri prekročení API vracia HTTP 429 s hlavičkou Retry-After .

Plán Požiadavky / minútu Vyhľadávania / mesiac
Free 30 10,000
Starter 120 100,000
Pro 300 500,000
Business 600 2,000,000
Enterprise Custom Unlimited

Ďalšie limity: /v1/validate (neautentifikovaný) obmedzený na 60 požiadaviek/min na IP volajúceho; /v1/me na 30 požiadaviek/min. Stiahnutia MMDB sú obmedzené na 10 za deň zo zdroja na účet. Odpovede pri prekročení limitu obsahujú Retry-After.

Webhooky

Webhooky vám umožňujú prijímať HTTP POST notifikácie v reálnom čase pri zmene stavu sledovanej IP. Nakonfigurujte ich v konzole → Webhooky, alebo cez používateľské rozhranie dashboardu — bez API volania.

Udalosti

Udalosť Spustí sa keď
vpn_detectedSledovaná IP je novo detekovaná ako VPN endpoint.
tor_detectedSledovaná IP sa objavila v zozname Tor výstupných uzlov alebo bola sondovaná ako Tor prenosový uzol.
proxy_detectedSledovaná IP je detekovaná ako otvorený alebo SOCKS proxy.
high_threatSkóre hrozby prekračuje váš nakonfigurovaný prah (50–95).

Hlavičky požiadavky

POST https://your-endpoint.example.com/webhook
Content-Type: application/json
User-Agent: OpenIPApi-Webhook/1.0
X-OpenIPApi-Event: high_threat
X-OpenIPApi-Signature: sha256=8c7f1a...b2e

Príklad payload

{
  "event": "high_threat",
  "delivered_at": "2026-04-18T12:34:56Z",
  "webhook_id": 142,
  "data": {
    "ip": "185.220.101.45",
    "threat_score": 92,
    "previous_score": 45,
    "is_tor": true,
    "is_vpn": true
  }
}

Overenie podpisu

Každý webhook je podpísaný pomocou HMAC-SHA256 z tela surového JSON s vaším webhook tajomstvom. Podpis sa posiela v hlavičke X-OpenIPApi-Signature ako sha256=<hex>. Vždy overte pred spracovaním payload:

PHP

$body = file_get_contents('php://input');
$hdr  = $_SERVER['HTTP_X_OPENIPAPI_SIGNATURE'] ?? '';
$expected = 'sha256=' . hash_hmac(
    'sha256', $body, $webhookSecret
);
if (!hash_equals($expected, $hdr)) {
    http_response_code(401);
    exit;
}
// Safe to process $body now

Node.js (Express)

const crypto = require('crypto');

app.post('/webhook',
  express.raw({ type: 'application/json' }),
  (req, res) => {
    const hdr = req.headers['x-openipapi-signature'];
    const expected = 'sha256=' + crypto
      .createHmac('sha256', process.env.WEBHOOK_SECRET)
      .update(req.body).digest('hex');
    if (expected !== hdr) return res.status(401).end();
    // Process JSON.parse(req.body)
  });

Politika opakovania

Váš endpoint musí odpovedať do 10 sekúnd s HTTP 2xx na potvrdenie prijatia. Akýkoľvek iný stav (alebo timeout) spúšťa opakovania s exponenciálnym oneskorením: 1 min, 5 min, 30 min, 2 h, 12 h. Po poslednom pokuse je webhook označený ako neúspešný a v dashboarde sa zobrazí upozornenie.

História doručenia a opakované odoslanie

konzole → Webhooky uchováva posledných 100 pokusov o doručenie na účet, zobrazujúc typ udalosti, HTTP stavový kód a telo odpovede vrátenej vaším endpointom. Môžete zopakovať ľubovoľné predchádzajúce doručenie na opätovné odoslanie pôvodného podpísaného payload, a použiť vstavaný Debugger podpisov na overenie HMAC-SHA256 podpisov na strane klienta bez zdieľania vášho tajomstva so serverom.

Opakované doručenia obsahujú dodatočnú hlavičku X-OpenIPApi-Replay: 1 , aby váš endpoint mohol rozlíšiť ich od živých udalostí.

Príklady kódu — curl

Jednotlivé vyhľadávanie

$ curl https://api.openipapi.com/v1/lookup/8.8.8.8 \
     -H "X-API-Key: oip_your_api_key_here"

Hromadné vyhľadávanie

$ curl -X POST https://api.openipapi.com/v1/lookup/batch \
     -H "X-API-Key: oip_your_api_key_here" \
     -H "Content-Type: application/json" \
     -d '{"ips": ["8.8.8.8", "1.1.1.1", "185.220.101.45"]}'

Vaša IP

$ curl https://api.openipapi.com/v1/me \
     -H "X-API-Key: oip_your_api_key_here"

Príklady kódu — JavaScript

Jednotlivé vyhľadávanie (fetch)

const response = await fetch('https://api.openipapi.com/v1/lookup/8.8.8.8', {
  headers: {
    'X-API-Key': 'oip_your_api_key_here'
  }
});

const data = await response.json();
console.log(data.geo.country);       // "United States"
console.log(data.threat.is_vpn);     // false
console.log(data.threat.threat_score); // 0

Hromadné vyhľadávanie

const response = await fetch('https://api.openipapi.com/v1/lookup/batch', {
  method: 'POST',
  headers: {
    'X-API-Key': 'oip_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    ips: ['8.8.8.8', '1.1.1.1', '185.220.101.45']
  })
});

const { results } = await response.json();
for (const info of results) {
  console.log(info.ip, info.geo.city, info.threat.threat_score);
}

Príklady kódu — Python

Jednotlivé vyhľadávanie (requests)

import requests

API_KEY = "oip_your_api_key_here"
headers = {"X-API-Key": API_KEY}

r = requests.get(
    "https://api.openipapi.com/v1/lookup/8.8.8.8",
    headers=headers
)
r.raise_for_status()
data = r.json()

print(data["geo"]["country"])       # United States
print(data["threat"]["is_vpn"])     # False
print(data["threat"]["threat_score"]) # 0

Hromadné vyhľadávanie

import requests

API_KEY = "oip_your_api_key_here"
headers = {
    "X-API-Key": API_KEY,
    "Content-Type": "application/json"
}

payload = {
    "ips": ["8.8.8.8", "1.1.1.1", "185.220.101.45"]
}

r = requests.post(
    "https://api.openipapi.com/v1/lookup/batch",
    json=payload,
    headers=headers
)
r.raise_for_status()

for info in r.json()["results"]:
    print(info["ip"], info["geo"]["city"], info["threat"]["threat_score"])

Pripravení začať?

10 000 bezplatných vyhľadávaní za mesiac. Kreditná karta nie je potrebná.

Získajte bezplatný API kľúč