Premiers pas
Documentation de l'API IPScanner
Endpoints REST pour IP Detection, Agentscan et Provenance, avec des SDK en six langages.
URL de base
https://ipscanner.io/v1
Authentification
Authorization: Bearer <key>
Format
JSON sur HTTPS
Démarrage rapide
- 1Créez une clé API gratuite.
- 2Envoyez-la dans l'en-tête Authorization.
- 3Appelez un endpoint, ou installez un SDK.
curl -X POST https://ipscanner.io/v1/ip/lookup \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"target":"8.8.8.8"}'Essayer sans clé
Essayer :
Paramètres
- ipstringcheminObligatoire
Adresse IPv4 ou IPv6.
Champs de la réponse
- target.kindstring
ipv4, ipv6, cidr ou hostname.
- target.ipstring
Adresse vérifiée. Pour un nom d'hôte, l'adresse résolue.
- reserved.reservedboolean
true pour les plages privées, réservées et de documentation.
- verdict.classificationstring
residential_clean, mobile, hosting, datacenter, vpn, residential_proxy, tor, relay ou unknown.
- verdict.anonymizedboolean
true si le réseau masque la personne derrière. L'hébergement compte, sauf l'infrastructure connue.
- verdict.confidencenumber
Confiance de 0 à 1.
- verdict.methodstring
Le signal qui a décidé du verdict.
- verdict.evidencestring[]
Facultatif. Ce sur quoi repose la classe, par exemple vpn_server_list, relay_range ou known_infra.
- purityobject | null
Détail du score : score, grade, verdict et deductions. Dans toutes les offres.
- purity.scoreinteger
Score de propreté de 0 à 100.
- purity.gradestring
S+, S, A, B ou C.
- purity.verdictstring
clean, suspect ou dirty.
- purity.deductionsarray
Points retirés du score, chacun avec une raison.
- deductionCountinteger
Réponses verrouillées (Free) uniquement : nombre de déductions de la pureté masquée, sans autre détail.
- networkClassstring
residential_clean, mobile, hosting, datacenter, vpn, residential_proxy, tor, relay ou unknown.
- isVpnboolean
true uniquement pour vpn, residential_proxy et tor, jamais pour hosting ou relay.
- isProxyboolean
true pour les proxys, y compris résidentiels.
- isTorboolean
true pour les nœuds de sortie Tor.
- providerstring | null
Propriétaire du réseau, si connu.
- vpnProviderstring | null
Service VPN d'une adresse vpn (NordVPN, Mullvad...), si connu. À partir de Starter, null sur Free.
- riskScoreinteger
Risque de 0 à 100.
- geoobject
Même structure que la réponse de géolocalisation.
- asnobject
Même structure que la réponse de la recherche ASN.
- whoisobject
Fiche WHOIS, pour les cibles de type nom d'hôte.
- degradedstring[]
Parties de la recherche qui ont échoué et ont été omises.
- atstring
Moment de la recherche.
- lockedstring[]
Chemins pointés des champs envoyés à null avec cette formule. Absent à partir de Starter.
- planRequiredstring
Formule qui inclut les champs verrouillés. Absent à partir de Starter.
curl https://ipscanner.io/v1/demo/185.220.101.1{
"target": {
"raw": "185.220.101.1",
"kind": "ipv4",
"ip": "185.220.101.1"
},
"reserved": {
"reserved": false
},
"verdict": {
"classification": "tor",
"anonymized": true,
"confidence": 0.95,
"method": "tor_set",
"evidence": [
"tor_exit_list"
]
},
"networkClass": "tor",
"isVpn": true,
"isProxy": true,
"isTor": true,
"riskScore": 100,
"asn": {
"ip": "185.220.101.1",
"asn": "AS60729",
"name": "Stiftung Erneuerbare Freiheit",
"type": "unknown",
"country": "DE"
},
"at": "2026-10-08T21:55:08.590700162Z",
"purity": null,
"provider": null,
"vpnProvider": null,
"geo": {
"ip": "185.220.101.1",
"country": "Germany",
"countryCode": "DE",
"city": "Brandenburg",
"region": "Brandenburg",
"timezone": "Europe/Berlin",
"latitude": null,
"longitude": null,
"postalCode": null,
"accuracyRadius": null
},
"locked": [
"purity",
"provider",
"vpnProvider",
"geo.latitude",
"geo.longitude",
"geo.postalCode",
"geo.accuracyRadius"
],
"planRequired": "Starter"
}