API de géolocalisation IP
Recherchez des adresses publiques IPv4 et IPv6 avec les données locales de géolocalisation et ASN. Commencez avec 10 000 recherches IP gratuites par mois.
Démarrage rapide
- Créez un compte indépendant sur ip.uk.app et vérifiez votre adresse email.
- Ouvrez Clés dans votre tableau de bord et créez une clé. Copiez-la immédiatement : elle ne sera affichée qu’une seule fois.
- Envoyez la clé depuis votre serveur dans l’en-tête Authorization.
curl 'https://ip.uk.app/api/v1/lookup?ip=1.1.1.1' \
-H 'Authorization: Bearer YOUR_API_KEY'
N’incluez jamais votre clé API dans une URL, du code public côté navigateur, une capture d’écran ou des journaux partagés. Stockez-la dans une variable d’environnement sur votre serveur.
Points d’accès
| Méthode HTTP | Point d’accès | Fonction |
|---|---|---|
| GET | /api/v1/lookup?ip=1.1.1.1 | Rechercher une adresse IPv4 ou IPv6 publique. |
| GET | /api/v1/me | Rechercher l’adresse IP publique à l’origine de la requête. |
| POST | /api/v1/bulk | Rechercher entre 1 et 50 adresses IP par requête. |
Ajoutez le paramètre facultatif lang pour la langue des noms : en, uk, es, pt, de ou fr. Les noms sans traduction sont renvoyés en anglais.
curl 'https://ip.uk.app/api/v1/bulk?lang=uk' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
--data '{"ips":["1.1.1.1","2001:4860:4860::8888"]}'Format de réponse
Le champ data contient un objet pour lookup et me, et un tableau pour bulk. Les valeurs indisponibles sont null. Les valeurs de l’exemple illustrent la structure et ne garantissent pas une localisation réelle.
{
"data": {
"ip": "1.1.1.1",
"version": 4,
"country": {"code": "AU", "name": "Australia"},
"region": "New South Wales",
"city": "Sydney",
"location": {"latitude": -33.8688, "longitude": 151.209, "accuracy": "approximate"},
"asn": {"number": 13335, "organization": "Cloudflare, Inc.", "prefix_length": 24},
"source": {"name": "DB-IP Lite", "url": "https://db-ip.com/", "license": "CC BY 4.0", "updated": "2026-10"}
}
}Quota gratuit et limites
- 10 000 recherches IP réussies par compte et par mois civil. Le quota est renouvelé à 00:00 UTC le premier jour du mois.
- 60 recherches IP par minute, partagées entre toutes vos clés.
- Jusqu’à cinq clés actives, valables 30, 90 ou 365 jours.
- Chaque adresse recherchée avec succès consomme un crédit, y compris les répétitions dans un lot. Un lot de 50 adresses consomme 50 crédits.
- Les données invalides et les recherches échouées ne consomment pas de crédits mensuels. Les échecs temporaires peuvent néanmoins compter dans la limite par minute.
- L’ensemble du lot est validé et comparé au quota disponible avant traitement. Aucun débit partiel de crédits n’est appliqué à un lot.
- Des limites réseau supplémentaires protègent la disponibilité du service.
Les réponses incluent X-Quota-Limit, X-Quota-Remaining et X-Quota-Reset. La date de renouvellement est un horodatage Unix. X-Request-ID identifie une requête authentifiée. Une réponse 429 contient Retry-After avec le délai en secondes.
Les offres mensuelles payantes sont disponibles dans votre tableau de bord. Les quotas suivent la période d’abonnement. Aucun dépassement facturé automatiquement.
Gestion des erreurs
{"error":{"code":"invalid_ip","message":"Provide a public IPv4 or IPv6 address."}}| Statut | Signification |
|---|---|
| 400 | Adresse IP, langue ou corps de requête invalide. Les IP privées et réservées ne sont pas prises en charge. |
| 401 | Clé API absente, invalide, expirée ou révoquée, ou compte inactif. |
| 404 | Point d’accès API inconnu. |
| 405 / 415 | Méthode HTTP ou type de contenu incorrect. |
| 429 | Limite par minute, limite réseau ou quota mensuel atteint. Respectez Retry-After. |
| 503 | Service temporairement indisponible. Réessayez avec des délais croissants de manière exponentielle, jusqu’à une durée maximale définie. |
JavaScript · côté serveur
const response = await fetch(
'https://ip.uk.app/api/v1/lookup?ip=1.1.1.1',
{ headers: { Authorization: `Bearer ${process.env.IP_API_KEY}` } }
);
const result = await response.json();
if (!response.ok) throw new Error(result.error.message);
console.log(result.data);Python
import json, os
from urllib.request import Request, urlopen
from urllib.error import HTTPError
request = Request('https://ip.uk.app/api/v1/lookup?ip=1.1.1.1',
headers={'Authorization': 'Bearer ' + os.environ['IP_API_KEY']})
try:
with urlopen(request, timeout=15) as response:
print(json.load(response)['data'])
except HTTPError as error:
print(error.code, json.load(error))PHP
$ch = curl_init('https://ip.uk.app/api/v1/lookup?ip=1.1.1.1');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 15,
CURLOPT_HTTPHEADER => ['Authorization: Bearer '.getenv('IP_API_KEY')],
]);
$body = curl_exec($ch);
if ($body === false) { throw new RuntimeException(curl_error($ch)); }
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
$result = json_decode($body, true, 512, JSON_THROW_ON_ERROR);
if ($status !== 200) { throw new RuntimeException($result['error']['message']); }Qualité des données et attribution
La géolocalisation est approximative. Une IP peut correspondre à une passerelle réseau ou à un centre de données, notamment avec les réseaux mobiles, anycast, VPN et proxys. Les coordonnées ne donnent pas la position exacte d’une personne. L’organisation de l’ASN identifie l’opérateur réseau et ne certifie pas qu’il s’agit d’un fournisseur d’accès résidentiel.
Les données proviennent de la base mensuelle DB-IP Lite sous licence CC BY 4.0. Conservez une attribution appropriée dans les applications utilisant ces données. La version v1 ne classe pas les VPN, les proxys ou la fraude.
Confidentialité et sécurité des clés
Les clés API complètes sont affichées une seule fois et conservées uniquement sous forme de hachages avec un secret serveur. Les statistiques conservent le point d’accès, le statut, la durée, les crédits et l’identifiant masqué de la clé pendant 30 jours. Cet historique ne conserve ni les IP recherchées ni les clés complètes. Les compteurs mensuels agrégés sont conservés 12 mois. Les journaux d’infrastructure séparés sont régis par notre Politique de confidentialité.
Révoquez immédiatement les clés exposées dans votre tableau de bord. Le blocage ou la suppression d’un compte désactive ses clés. Votre compte est indépendant des autres projets uk.app.