Foire aux questions

Tout sur la géolocalisation IP, la détection VPN, les recherches ASN, les limites de débit et le fonctionnement de l'API.

Prise en main

Une API gratuite d'intelligence IP. Recherchez n'importe quelle adresse IPv4 ou IPv6 et obtenez le pays, l'ASN, le FAI, la détection d'hébergement, la détection VPN, l'identification de nœud de sortie Tor et un score de réseau abusif. Une seule réponse JSON. Sans inscription.
Non. L'offre gratuite ne nécessite ni clé ni inscription — appelez simplement le point d'accès (les limites sont suivies par adresse IP). Pour les limites Pro ou Enterprise, envoyez votre clé dans l'en-tête X-API-Key ou via ?api_key=. Vous pouvez obtenir une clé gratuite instantanément avec POST /v1/keys.
https://ipto.to. Tous les points de terminaison se trouvent sous /v1/. CORS est activé sur tous les points de terminaison.
GET https://ipto.to/v1/ip — aucun paramètre requis. Renvoie votre IP ainsi que la ville, la région, le fuseau horaire et les coordonnées lat/lon. Ou exécutez curl ipto.to dans un terminal.
Oui. curl ipto.to détecte automatiquement le User-Agent curl et renvoie un JSON compact pour votre propre IP, avec des champs incluant le pays, la ville, l'ASN et la météo en direct. curl ipto.to/8.8.8.8 fait de même pour n'importe quelle IP (sans météo). Wget et HTTPie fonctionnent également.

Géolocalisation IP

La géolocalisation IP associe les plages IP à la position physique de l'infrastructure réseau, pas à l'utilisateur final. Les FAI acheminent le trafic via des points d'échange régionaux qui peuvent se trouver à des centaines de kilomètres. La précision au niveau du pays est élevée. La précision au niveau de la ville se dégrade pour les IP résidentielles et mobiles.
Lorsque vous êtes connecté à un VPN, votre trafic sort par l'adresse IP du serveur VPN. ipto indique la position de ce serveur de sortie, pas votre position physique. L'indicateur is_vpn sera true dans ce cas.
La qualité des données dépend de la précision avec laquelle les FAI et organisations enregistrent leurs blocs IP dans les registres WHOIS et de routage. Les grands fournisseurs cloud et FAI ont des enregistrements très précis. Les allocations plus petites ou plus anciennes peuvent être imprécises.
Oui. Les adresses IPv6 renvoient l'ASN, l'organisation et les plages d'IP, ainsi qu'une localisation au niveau de la ville (ville, région, code postal, latitude/longitude) issue du jeu de données MaxMind lorsque la plage est couverte, et les plages bogon/privées sont identifiées. Une seule lacune : les indicateurs VPN, Tor et abus sont pour l'instant limités à l'IPv4, car ces flux sont publiés sous forme de plages IPv4 — pour une adresse IPv6, ils valent false plutôt que d'être devinés.
Une IP bogon (bidon) est toute adresse qui ne devrait pas apparaître comme source sur l'internet public : bouclage (127.x.x.x), plages privées RFC 1918 (10.x, 172.16–31.x, 192.168.x), link-local (169.254.x), multicast (224–239.x), et blocs réservés par l'IANA. ipto les détecte avant toute recherche en base de données et renvoie bogon: true avec une raison bogon_type. Vérifiez n'importe quelle adresse sur le vérificateur d'IP bogon.

Renseignement sur les menaces

ipto maintient une base de données des plages IP de serveurs VPN connues, constituée à partir d'une analyse du routage BGP et d'une énumération active. Chaque IP est vérifiée par rapport à cette base de données lors de la recherche. L'attribution du fournisseur est déduite de la propriété de l'ASN : lorsqu'un ASN est enregistré exclusivement à un opérateur VPN, le fournisseur est identifié. Testez n'importe quelle IP sur le vérificateur VPN & proxy.
La liste des nœuds de sortie Tor provient de la liste officielle en masse du Tor Project sur check.torproject.org. C'est la liste faisant autorité des IP actuellement capables d'émettre du trafic de sortie Tor. Elle est actualisée toutes les 6 heures.
L'IP se trouve dans une plage réseau signalée par plusieurs flux de renseignement sur les menaces indépendants comme hébergeant une infrastructure abusive : sources de spam, serveurs de commande et contrôle de logiciels malveillants, relais de botnet ou outils d'exploitation de masse. Un score d'abus plus élevé signifie que davantage de flux ont convergé indépendamment.
is_datacenter signifie que l'IP appartient à un fournisseur d'hébergement, une plateforme cloud ou un CDN. is_residential signifie que l'IP est classée comme une connexion haut débit grand public. La plupart des IP ne sont ni l'un ni l'autre — elles appartiennent à une infrastructure de FAI qui n'est ni hébergement ni résidentielle.
Signale les points de sortie proxy connus non classés comme VPN ou Tor. Actuellement limité aux données du pipeline de flux de menaces. La couverture est inférieure à celle de la détection VPN et Tor.

ASN et réseau

Un numéro de système autonome (ASN) est un identifiant unique pour un réseau qui gère de manière indépendante ses propres politiques de routage IP sur internet. Exemples : Google est AS15169, Amazon est AS16509. Chaque bloc IP est annoncé par exactement un seul ASN. Recherchez n'importe quel ASN directement sur l'outil de recherche ASN.
La catégorie de l'organisation qui exploite l'ASN. Valeurs : hosting (hébergement cloud ou serveur), isp (fournisseur d'accès internet), business (réseau d'entreprise), education (université ou recherche), government (gouvernement), mobile (opérateur), residential (résidentiel).
Le bloc IP est enregistré auprès d'un opérateur mobile. Les IP mobiles sont couramment réassignées entre utilisateurs et apparaissent souvent dans des positions géographiques différentes du siège de l'opérateur.
Oui — GET /v1/asn/:asn/ranges?limit=&offset= renvoie les plages réelles (chacune avec le code pays et les indicateurs hosting/mobile/residential/bot/blacklist), paginées jusqu'à 200 par requête. La recherche principale GET /v1/asn/:asn inclut aussi ip_range_count et un rank — le classement de l'ASN par taille dans son pays, selon le nombre de plages — sans avoir besoin de l'endpoint des plages. Voir l'outil de recherche ASN.
GET /v1/asn/:asn/whois renvoie l'enregistrement du RIR (nom, statut, pays, dates d'enregistrement/de dernière modification, contacts) via RDAP. GET /v1/asn/:asn/relationships renvoie les peers, fournisseurs upstream et clients downstream connus, issus du jeu de données AS-Relationships de la CAIDA ; GET /v1/asn/:asn/related trouve quant à lui d'autres ASN probablement exploités par la même organisation. Les trois apparaissent ensemble sur la page de recherche ASN.
Oui — Toutes les plages IP (GET /v1/ip-ranges) est un répertoire consultable de tous les 256 blocs /8 possibles, permettant de descendre jusqu'aux /16 puis aux plages réellement attribuées et à l'ASN auquel chacune appartient.

Utilisation de l'API

Le forfait gratuit autorise 1 000 requêtes/jour par adresse IP, sans inscription ni clé requise. Les clés Pro obtiennent 100 000/jour ; Enterprise est illimité. Dépasser votre limite renvoie HTTP 429. Voir la tarification pour les détails.
Envoyez un tableau JSON de chaînes IP en POST vers /v1/ip/bulk — jusqu'à 100 par requête, réservé aux forfaits Pro/Enterprise (voir la tarification). La réponse est un objet indexé par IP. Les lectures de cache en parallèle rendent cela plus rapide que des appels séquentiels. Chaque IP compte dans votre budget quotidien, comme une recherche individuelle.
Ajoutez ?fields=field1,field2 à n'importe quelle requête à IP unique. Exemple : /v1/ip/1.1.1.1?fields=ip,country_code,is_vpn,is_tor. Le champ ip est toujours inclus.
JSON (par défaut), CSV, texte brut, XML et YAML. Ajoutez ?format=csv, ?format=text, ?format=xml, ou ?format=yaml à n'importe quelle requête à IP unique. CSV et texte renvoient des paires clé/valeur à plat ; XML et YAML préservent les objets imbriqués comme flags.
Pas encore de SDK officiel. L'API est un point de terminaison HTTP JSON standard — n'importe quel client HTTP fonctionne. Voir la documentation pour des exemples curl, JavaScript, Python, PHP et Go.
Oui — https://ipto.to/mcp est un serveur Model Context Protocol (MCP) qui expose les mêmes recherches sous forme d'outils appelables via JSON-RPC — IP (unitaire et en masse), ASN avec ses plages/whois/relations, whois IP, RPKI, entreprise, opérateur, domaines hébergés, recherche unifiée, lieux à proximité, pays, DNS inverse, user-agent, téléphone, e-mail, score de fraude, langue, devise, météo, marques et brevets — afin qu'un client compatible MCP puisse les appeler directement au lieu d'envoyer des requêtes HTTP brutes. Il utilise le même X-API-Key et les mêmes règles de limitation que l'API REST.

Données

Le jeu de données ASN/plages IP est actualisé quotidiennement à 04h00 UTC. La géolocalisation au niveau de la ville fusionne deux sources indépendantes selon leurs propres calendriers — IP2Location mensuellement, MaxMind chaque semaine — la précision peut donc s'améliorer entre deux actualisations ASN. Les flux de menaces (VPN, Tor, abus) se synchronisent toutes les 6 heures. Le TTL du cache en périphérie est de 5 minutes.
Nous rassemblons des informations auprès de plusieurs fournisseurs de données clés du secteur, mises à jour quotidiennement. La détection VPN utilise un renseignement de plages dérivé du BGP. Les données de nœuds Tor proviennent du registre officiel du Tor Project et de listes de relais vérifiées. Les réseaux abusifs utilisent un renseignement de liste noire multi-source corroboré.
La détection VPN et Tor a un taux de rappel élevé pour les principaux fournisseurs et tous les nœuds de sortie confirmés. Les services VPN plus petits ou plus récents qui louent de l'espace IP auprès d'ASN d'hébergement génériques peuvent ne pas être identifiés par nom de fournisseur. La notation d'abus utilise une corroboration croisée des flux — un réseau nécessite 3 sources indépendantes ou plus pour apparaître au niveau Medium, et 8 sources ou plus pour Critical.

Nouvelles fonctionnalités

abuse_score est un score de gravité de 1 à 10 basé sur la corroboration croisée des flux : combien de sources de menaces indépendantes signalent le même réseau. threat_type nomme la catégorie ayant déclenché le signalement — tor_exit, vpn, ou abuser. risk_tier regroupe le score en critical (8–10), high (5–7), ou medium (3–4). Essayez une vérification en direct sur le vérificateur d'abus IP.
Oui. Toute réponse avec un pays résolu inclut currency_code et exchange_rate_usd — un taux de référence quotidien couvrant 154 devises mondiales. Les devises en dehors de cette liste renvoient null pour le taux.
Chaque réponse avec des données de pays inclut languages (langues officielles parlées), tld (domaines de premier niveau du code pays), capital, et borders (codes ISO des pays voisins) — utile pour localiser du contenu ou construire des formulaires sensibles au pays sans un second appel API.
GET /v1/ip/:ip/hostname effectue une recherche PTR en direct via DNS-over-HTTPS et renvoie { ip, hostname }. C'est une recherche unique à la demande, pas une base de données d'énumération de domaines mise en cache — hostname vaut null si aucun enregistrement PTR n'existe. Il existe aussi un outil navigateur à /reverse-dns-lookup.
Oui. GET /v1/datasets/:kind renvoie des exports CSV pour asn, ranges, et geo-city — les mêmes jeux de données que l'API interroge en interne, actualisés selon le même calendrier. geo-city accepte un paramètre optionnel ?source=primary (par défaut) ou ?source=secondary, car les données au niveau de la ville sont fusionnées à partir de deux sources indépendantes avec une couverture différente.
Une clé Pro débloque une limite de 100 000 requêtes/jour et la recherche groupée (POST /v1/ip/bulk, jusqu'à 100 IP par requête) — la recherche groupée n'est pas du tout disponible en Free. Enterprise (requêtes illimitées) ajoute un SLA personnalisé et une assistance dédiée. La précision ville/code postal/lat-lon est incluse à chaque niveau, y compris Free. POST /v1/keys émet une clé de niveau Free (1 000 requêtes/jour, suivi d'utilisation via GET /v1/keys/usage?key=X) — voir la tarification pour passer à un niveau supérieur.
Les deux, lorsque geo_precision le permet. Votre propre IP (GET /v1/ip) obtient toujours des données au niveau de la ville depuis le réseau en périphérie par lequel vous vous connectez. Les recherches IP explicites (GET /v1/ip/:ip) obtiennent des données au niveau de la ville lorsque cette IP se trouve dans la couverture du jeu de données au niveau de la ville ; sinon geo_precision retombe à country et ville/région/lat/lon renvoient null.
Add ?lang= to any request with one of: pt, fr, de, zh-TW, ko, zh-CN, ja-JP, es-ES, ar-SA, hi-IN (en is the default). This localizes country_name and continent into the target language. Field names and threat data stay in English regardless of locale.

Au-delà de l'IP : identité, fraude et données de référence

Oui — GET /v1/email/:email vérifie la syntaxe, une recherche d'enregistrement MX en direct, et une détection de domaine jetable/temporaire par rapport à une liste de blocage synchronisée. Gratuit, sans inscription. Essayez le Vérificateur d'email.
Oui — GET /v1/phone/:number analyse n'importe quel numéro au format E.164 ou national pour en vérifier la validité, le pays, la région et le type de ligne (mobile, fixe ou VoIP) par rapport à un jeu de données d'opérateurs MCC/MNC synchronisé. Essayez le Vérificateur de numéro de téléphone.
GET /v1/fraud-score combine les signaux de menace IP, la délivrabilité de l'email, la validité du téléphone et la détection de robot par User-Agent en un seul score de risque fusionné de 0 à 100 — la seule chose qu'aucune des principales API autonomes d'intelligence IP n'offre. Les quatre entrées sont facultatives ; un signal que vous ne fournissez pas est simplement absent, et non noté comme propre. Essayez le Vérificateur de score de fraude.
Oui — GET /v1/language identifie la langue de n'importe quel texte parmi 76 langues via une analyse locale de fréquence de trigrammes. Aucun texte n'est envoyé à un fournisseur tiers ou à un modèle d'IA, et rien n'est enregistré. Essayez le Détecteur de langue.
Oui — GET /v1/currency/convert et GET /v1/currency/rates exposent le même flux de taux de change quotidien qui alimente déjà exchange_rate_usd sur chaque recherche IP/pays, couvrant 154 devises, plus GET /v1/currency/history pour un historique de taux sur 90 jours. Essayez le Convertisseur de devises.
Oui — GET /v1/weather renvoie les conditions actuelles pour n'importe quel nom de lieu, code postal ou paire de coordonnées ; ajoutez &detail=1 pour une prévision horaire et une prévision à 3 jours. Le widget météo de la page d'accueil basé sur votre propre IP et l'outil Recherche météo l'utilisent tous les deux.
Oui — GET /v1/trademark/:serial relaie l'API TSDR de l'USPTO pour un statut de dossier en direct par numéro de série à 8 chiffres. Le texte de statut de dossier est une œuvre du gouvernement américain et relève du domaine public, chaque réponse porte donc un champ source/attribution ; les données de logo/image de marque sont délibérément hors périmètre. La recherche par numéro d'enregistrement n'est pas prise en charge — seul le chemin par numéro de série est documenté par l'USPTO aujourd'hui. Essayez l'outil Recherche de marque.
Oui — GET /v1/patent/:number relaie l'API Patent File Wrapper en direct de l'USPTO pour un statut de délivrance par numéro de brevet d'utilité à 7-8 chiffres. La couverture commence aux demandes déposées en 2001, et les données sont de nature procédurale/bibliographique (date de dépôt, statut, inventeurs, avocat inscrit au dossier) — pas un graphe de citations, une famille de brevets ou un champ de statut juridique comme l'affichent Lens.org, Espacenet ou Google Patents. Les brevets de dessin, de plante et de réémission ne sont pas encore pris en charge. Essayez l'outil Recherche de brevet.

Propriété, routage & lieux

Une seule requête — GET /v1/search/:query. Elle détecte si vous avez saisi une IP, un ASN, un code pays, un email ou un numéro de téléphone, puis se répartit côté serveur vers toutes les vérifications pertinentes (recherche IP, RPKI, entreprise, whois, opérateur, domaines hébergés, lieux) en parallèle. Une seule recherche ne consomme qu'une seule requête sur votre budget de limite de débit quotidien, pas une par fonctionnalité.
Oui — GET /v1/ip/:ip/rpki (et la forme explicite GET /v1/rpki?asn=&prefix=) résout la validation d'origine de route en direct via RIPEstat, qui agrège les données ROA des cinq RIR. Le statut n'est jamais que valid, invalid, ou unknown — jamais déduit d'un autre signal. Essayez le Validateur RPKI.
GET /v1/ip/:ip/company combine les données du titulaire RDAP avec le nom d'organisation de l'ASN de l'IP en une seule confiance catégorielle (high/medium/low/none) — un verdict unique de « qui possède cela ». GET /v1/ip/:ip/whois renvoie à la place l'enregistrement RDAP sous-jacent lui-même : le bloc réseau, le type d'allocation, les dates d'enregistrement, et chaque contact titulaire/administratif/abus au dossier, plus proche d'une sortie WHOIS classique. Essayez IP vers entreprise ou Whois IP.
Fait au mieux, et uniquement pour les IP déjà classées comme réseaux mobiles. GET /v1/ip/:ip/carrier fait correspondre de manière approximative le nom d'organisation de l'ASN à un annuaire d'opérateurs MCC/MNC limité au pays de l'IP. Il n'y a délibérément aucun champ unique carrier: "X" — un nom brut se lirait comme une affirmation en direct par abonné que les données ne peuvent honnêtement pas étayer. Essayez l'outil IP vers opérateur mobile.
GET /v1/ip/:ip/hosted-domains trouve des domaines via le nom d'hôte DNS inversé de l'IP ainsi que les journaux de transparence des certificats (crt.sh) — ce n'est pas une recherche IP inversée générale. Le champ limitations propre à la réponse précise ce qu'elle ne peut structurellement pas voir : les IP sans enregistrement PTR, les domaines non liés sur un hébergement partagé, et les domaines qui n'ont jamais été journalisés en CT. Essayez Domaines hébergés.
GET /v1/places/:ip effectue un géocodage inversé de la position existante au niveau de la ville d'une IP, puis renvoie les points d'intérêt à proximité (restaurants, parcs, écoles, transports en commun), des lieux remarquables, des données de criminalité locales lorsqu'une source existe (Royaume-Uni et États-Unis uniquement), et une estimation de trajet en voiture optionnelle à la demande lorsque vous fournissez une destination. Essayez Lieux.
connection_type sur GET /v1/ip/:ip est une étiquette unique établie au mieux — mobile, datacenter, ou unknown — dérivée de la même classification ASN que l'objet flags. Elle remplace la détection de connexion basée sur le nombre d'appareils/NAT, ce qu'un Cloudflare Worker ne peut pas observer (pas d'accès brut aux paquets TCP/IP) — donc plutôt que de le simuler, les ASN non classés renvoient honnêtement unknown.

Renseignement téléphonique premium (recherche d'opérateur et de portabilité)

Oui, en tant que couche premium au-dessus de la vérification locale toujours gratuite. GET /v1/phone/:number exécute toujours d'abord la validation locale gratuite (format, région, type de ligne — inchangé, voir la question précédente) et, si le budget le permet, ajoute en direct carrier, original_carrier, is_ported, une classification phone_type, ainsi qu'un phone_region (localité) et un country_prefix provenant de notre fournisseur de recherche d'opérateur en temps réel. Un nom de pays complet country_name est inclus quel que soit le niveau, et il est localisé via ?lang=/Accept-Language exactement comme le champ country_name de tous les autres endpoints — consultez lang/lang_source dans la réponse pour voir quelle langue a réellement été appliquée. Le champ source de la réponse indique quel niveau a répondu : "premium" ou "local".
100 recherches premium par adresse IP et par mois sur le plan Free, 1 000/mois par clé API sur Pro, et 5 000/mois sur Enterprise — voir tarifs. Ceci s'ajoute au budget local gratuit existant pour le téléphone (100/jour sur Free), qui n'a pas de plafond mensuel propre.
Rien ne casse. GET /v1/phone/:number revient sans accroc au moteur local gratuit pour le reste du mois — vous obtenez toujours une réponse 200 complète avec les données de format, de région et de type de ligne, simplement sans les champs en direct carrier/is_ported (qui renvoient alors null et source: "local"). Aucune erreur, aucune inscription requise pour continuer à utiliser le plan gratuit.
Ce sont deux classifications indépendantes provenant de deux moteurs différents, délibérément gardées séparées. line_type provient de la vérification locale toujours gratuite (l'énumération propre à cette vérification, par ex. MOBILE, FIXED_LINE, PREMIUM_RATE). phone_type n'apparaît que lorsque source vaut "premium" et utilise les propres catégories du fournisseur de recherche d'opérateur : mobile, fixed_line, voip, toll_free, premium_rate, shared_cost, personal_number, pager, uan, voicemail, ou unknown. premium_rate mérite une attention particulière si vous utilisez ceci comme signal de fraude — les numéros à taux majoré (facturés à la minute plus cher qu'une ligne normale) sont un vecteur courant de fraude internationale au partage de revenus (IRSF), et cet endpoint fait apparaître cette classification directement plutôt que de se limiter à signaler la VoIP.
Seulement lorsqu'une recherche premium est réellement exécutée (c'est-à-dire que votre budget mensuel de la question précédente n'est pas épuisé) — la vérification locale gratuite ne quitte jamais les Cloudflare Workers propres à ipto.to. Lorsqu'une recherche premium est exécutée, le numéro est envoyé à notre fournisseur de recherche d'opérateur uniquement pour répondre à cette requête ; nous ne stockons la clé API du fournisseur nulle part accessible publiquement, et conformément à la politique de journalisation standard d'ipto.to (voir À propos) nous ne journalisons pas non plus nous-mêmes l'historique des requêtes.

Compte, limites & confidentialité

Chaque jour à 00:00 UTC. Une requête au-delà de la limite renvoie HTTP 429 avec un en-tête Retry-After et un champ retry_after_seconds indiquant précisément le temps restant avant la réinitialisation.
Appelez POST /v1/keys pour une clé gratuite instantanée, ou connectez-vous — la connexion crée automatiquement un compte gratuit et affiche votre clé et votre consommation dans le tableau de bord. Pro et Enterprise s'obtiennent depuis les tarifs.
Dans l'en-tête X-API-Key (recommandé, car les chaînes de requête peuvent finir dans les journaux) ou via ?api_key= dans l'URL. Les requêtes portant une clé sont décomptées du budget de cette clé et non de celui de votre IP. Consultez l'utilisation d'une clé avec GET /v1/keys/usage?key=X.
Presque toujours. Une recherche depuis la barre de recherche ou un appel d'outil MCP compte pour une requête, même s'il déclenche plusieurs vérifications côté serveur. Les appels en masse sont facturés par élément — chaque IP d'un POST /v1/ip/bulk et chaque numéro d'une recherche téléphonique en masse compte séparément. Les lieux à proximité et les recherches téléphoniques premium ont aussi leurs propres budgets en plus du budget général.
Non. ipto n'enregistre pas les adresses IP que vous recherchez, ne conserve pas d'historique de requêtes et ne crée pas de profils ; seuls des compteurs agrégés sont gardés pour la planification de capacité. L'historique de recherche et les recherches favorites de la page d'accueil restent uniquement dans votre navigateur. Détails sur la page de confidentialité.
Oui. L'API est compatible CORS, versionnée sous /v1/ et renvoie du JSON stable. L'offre gratuite est destinée aux particuliers et aux usages légers (1 000 requêtes/jour) ; pour du trafic de production, utilisez une clé Pro (100 000/jour) ou Enterprise (illimité, avec SLA sur mesure). Voir les tarifs et la page d'état pour l'état en direct.