Passer au contenu principal
GET
/
v1
API de géolocalisation IP
curl --request GET \
  --url https://ipgeolocation.cleariflow.com/v1
{
    "ip_address": "80.255.13.30",
    "city": null,
    "city_geoname_id": null,
    "region": null,
    "region_iso_code": null,
    "region_geoname_id": null,
    "postal_code": null,
    "country": "Germany",
    "country_code": "DE",
    "country_geoname_id": 2921044,
    "country_is_eu": true,
    "continent": "Europe",
    "continent_code": "EU",
    "continent_geoname_id": 6255148,
    "longitude": 9.491,
    "latitude": 51.2993,
    "security": {
        "is_vpn": true,
        "is_proxy": false,
        "vpn_provider": "NordVPN"
    },
    "timezone": {
        "name": "Europe/Berlin",
        "abbreviation": "CEST",
        "gmt_offset": 2,
        "current_time": "21:21:22",
        "is_dst": true
    },
    "flag": {
        "emoji": "🇩🇪",
        "unicode": "U+1F1E9 U+1F1EA",
        "png": "https://static.cleariflow.com/country-flags/DE_flag.png",
        "svg": "https://static.cleariflow.com/country-flags/DE_flag.svg"
    },
    "currency": {
        "currency_name": "Euros",
        "currency_code": "EUR"
    },
    "connection": {
        "autonomous_system_number": 201011,
        "autonomous_system_organization": "Core-Backbone GmbH",
        "connection_type": null,
        "isp_name": null,
        "organization_name": null
    }
}
L’API fonctionne avec une simplicité remarquable : il suffit de fournir votre clé API ainsi qu’une adresse IP, et vous recevrez des données de localisation complètes incluant les codes postaux, les noms de villes, les informations régionales, les détails du pays et des coordonnées latitude/longitude précises.

Premiers pas

Architecture REST

Comme toutes les API Cleariflow, l’API de géolocalisation IP suit les principes REST. Elle utilise des URL prévisibles, orientées ressources, et des codes de statut HTTP pour indiquer les erreurs.

Sécurité HTTPS

Toutes les communications avec l’API de géolocalisation IP doivent être sécurisées par des protocoles TLS 1.2 ou supérieur.

Versionnage de l’API

Toutes les API Cleariflow intègrent le versionnage. L’API de géolocalisation IP fonctionne actuellement en version 1.

Authentification par clé API

Votre clé API sert d’identifiant d’authentification unique pour accéder à l’API de géolocalisation IP Cleariflow. Il est important de noter que chaque API Cleariflow nécessite une clé API distincte ; vous aurez donc besoin de clés séparées pour différents services comme l’API de géolocalisation IP et l’API de validation d’e-mail. Pour authentifier vos requêtes, ajoutez votre clé API à l’URL de base.

URL de base

https://ipgeolocation.cleariflow.com/v1/

Endpoint de géolocalisation

L’API de géolocalisation IP Cleariflow ne requiert que votre clé API unique et détecte automatiquement l’adresse IP du client demandeur. Vous pouvez également inclure le paramètre « ip_address » pour spécifier une IP particulière à analyser :
https://ipgeolocation.cleariflow.com/v1/
? api_key = YOUR_UNIQUE_API_KEY
& ip_address = 94.198.41.118 (optional)
Il s’agit d’une requête réussie, renvoyant l’adresse IP et les détails associés ci-dessous :
{
    "ip_address": "80.255.13.30",
    "city": null,
    "city_geoname_id": null,
    "region": null,
    "region_iso_code": null,
    "region_geoname_id": null,
    "postal_code": null,
    "country": "Germany",
    "country_code": "DE",
    "country_geoname_id": 2921044,
    "country_is_eu": true,
    "continent": "Europe",
    "continent_code": "EU",
    "continent_geoname_id": 6255148,
    "longitude": 9.491,
    "latitude": 51.2993,
    "security": {
        "is_vpn": true,
        "is_proxy": false,
        "vpn_provider": "NordVPN"
    },
    "timezone": {
        "name": "Europe/Berlin",
        "abbreviation": "CEST",
        "gmt_offset": 2,
        "current_time": "21:21:22",
        "is_dst": true
    },
    "flag": {
        "emoji": "🇩🇪",
        "unicode": "U+1F1E9 U+1F1EA",
        "png": "https://static.cleariflow.com/country-flags/DE_flag.png",
        "svg": "https://static.cleariflow.com/country-flags/DE_flag.svg"
    },
    "currency": {
        "currency_name": "Euros",
        "currency_code": "EUR"
    },
    "connection": {
        "autonomous_system_number": 201011,
        "autonomous_system_organization": "Core-Backbone GmbH",
        "connection_type": null,
        "isp_name": null,
        "organization_name": null
    }
}

Paramètres de requête

api_key
String
requis
Votre clé API unique. Notez que chaque utilisateur possède des clés API uniques pour chaque API Cleariflow ; votre clé de l’API de géolocalisation IP ne fonctionnera pas pour votre API de validation d’e-mail, par exemple.
ip_address
String
L’adresse IP à géolocaliser. Les adresses IPv4 et IPv6 sont prises en charge. Notez que si vous laissez ce paramètre vide, le service géolocalisera l’adresse IP à partir de laquelle la requête a été effectuée.
fields
String
Liste séparée par des virgules de clés de premier niveau à renvoyer (par exemple, ?fields=country,security). Pour inclure les indicateurs VPN/proxy, utilisez security — l’objet entier est renvoyé (is_vpn, is_proxy et vpn_provider le cas échéant). Les clés imbriquées telles que is_vpn seules ne sont pas prises en charge.

Paramètres de réponse

La réponse de l’API est renvoyée dans un format JSON universel et léger.
ip_address
String
L’adresse IP soumise pour géolocalisation.
city
String
Nom de la ville.
city_geoname_id
String
ID geoname de la ville.
region
String
État ou province dans lequel la ville est située.
region_iso_code
Char[2]
Code ISO 3166-2 de l’État ou de la province.
region_geoname_id
String
ID geoname de l’État ou de la province.
postal_code
String
Code postal.
country
String
Nom du pays.
country_code
Char[2]
Code ISO 3166-1 alpha-2 du pays.
country_geoname_id
String
ID geoname du pays.
country_is_eu
Boolean
Vrai si le pays est dans l’UE, faux sinon.
continent
String
Nom du continent.
continent_code
Char[2]
Code continent à 2 lettres : AF, AS, EU, NA, OC, SA, AN.
continent_geoname_id
String
ID geoname du continent.
longitude
Float
Valeur décimale de la longitude.
latitude
Float
Valeur décimale de la latitude.
security.is_vpn
Boolean
true lorsque l’IP correspond à la base de données des nœuds de sortie VPN (IP-to-VPN MMDB).
security.is_proxy
Boolean
true lorsque l’IP correspond à la base de données proxy (IP-to-VPN MMDB).
security.vpn_provider
String
Nom du service VPN depuis la MMDB (par exemple, NordVPN). Omis lorsque is_vpn est false.
timezone.name
String
Nom du fuseau horaire depuis la base de données IANA Time Zone.
timezone.abbreviation
String
Abréviation du fuseau horaire, également depuis la base de données IANA Time Zone.
timezone.gmt_offset
String
Décalage du fuseau horaire par rapport au temps moyen de Greenwich (GMT).
timezone.current_time
String
Heure actuelle dans le fuseau horaire local.
timezone.is_dst
Boolean
Vrai si la localisation est actuellement en heure d’été (DST).
flag.svg
String
Lien vers une version hébergée du drapeau du pays au format SVG.
flag.png
String
Lien vers une version hébergée du drapeau du pays au format PNG.
flag.emoji
String
Drapeau du pays sous forme d’emoji.
flag.unicode
String
Drapeau du pays en unicode.
currency.currency_name
String
Nom de la devise.
currency.currency_code
String
Code de la devise au format ISO 4217.
connection.connection_type
String
Déduit du nom de l’organisation ASN (par exemple, Cellular, Cable/DSL, Corporate, Cloud, Hosting). VPN et proxy sont signalés dans security, pas ici.
connection.autonomous_system_number
Uint32
Numéro de système autonome.
connection.autonomous_system_organization
String
Nom de l’organisation du système autonome.
connection.isp_name
String
Nom du fournisseur d’accès Internet (FAI).
connection.organization_name
String
Nom de l’organisation.

Limiter les champs de réponse

Vous pouvez choisir de ne recevoir que quelques champs de la réponse JSON. Pour ce faire, incluez une valeur fields dans les paramètres de requête avec une liste séparée par des virgules des clés de premier niveau que vous souhaitez recevoir. Par exemple, une requête pour obtenir uniquement le pays et la ville d’une IP ressemblera à ceci :
https://ipgeolocation.cleariflow.com/v1/
    ? api_key = YOUR_API_KEY
    & ip_address = 94.198.41.122
    & fields = country,city
La réponse ressemblerait à ceci :
{
    "city": "Vienna",
    "country": "Austria"
}

Cas d’utilisation

Géolocaliser un visiteur de site web

Pour demander la géolocalisation à partir d’une adresse IP, incluez simplement votre clé API unique dans le modèle ci-dessous. Notez que vous n’avez pas besoin de connaître l’IP du visiteur pour effectuer la requête.
$.getJSON("https://ipgeolocation.cleariflow.com/v1/?api_key=YOUR_UNIQUE_API_KEY", function(data) {
   console.log(data.ip_address);
   console.log(data.country);
})
C’est tout ce dont vous avez besoin pour obtenir la géolocalisation et d’autres données d’un visiteur ! Il n’y a qu’un seul paramètre requis : votre clé API unique.

Codes de réponse et d’erreur

Lorsqu’une requête échoue pour une raison quelconque, une erreur est également renvoyée au format JSON. Les erreurs comprennent un code d’erreur et une description, que vous trouverez en détail ci-dessous.
CodeTypeDétails
200OKTout a fonctionné comme prévu.
204OKIl n’y a pas de données de localisation pour l’IP soumise.
400Bad requestMauvaise requête.
401UnauthorizedLa requête était inacceptable. Généralement due à une clé API manquante ou incorrecte.
422Quota reachedLa requête a été interrompue en raison de crédits API insuffisants. (Forfaits gratuits)
429Too many requestsLa requête a été interrompue car le nombre de requêtes autorisées par seconde a été atteint. Cela se produit sur les forfaits gratuits, limités à 1 par seconde.
500Internal server errorLa requête n’a pas pu être complétée en raison d’une erreur côté serveur.
503Service unavailableLe serveur était indisponible.

Codes pays

Voici une liste des codes pays ISO 3166 Alpha 2 à deux lettres utilisés dans la réponse. Consultez cette liste au format CSV.
Nom du paysCode pays
AfghanistanAF
AlbanieAL
AlgérieDZ
Samoa américainesAS
AndorreAD
AngolaAO
AnguillaAI
Antigua-et-BarbudaAG
ArgentineAR
ArménieAM
ArubaAW
AustralieAU
AutricheAT
AzerbaïdjanAZ
BahreïnBH
BangladeshBD
BarbadeBB
BiélorussieBY
BelgiqueBE
BelizeBZ
BéninBJ
BermudesBM
BhoutanBT
BolivieBO
Bosnie-HerzégovineBA
BotswanaBW
BrésilBR
Îles Vierges britanniquesVG
BruneiBN
BulgarieBG
Burkina FasoBF
BurundiBI
Cap-VertCV
CambodgeKH
CamerounCM
CanadaCA
Îles CaïmansKY
République centrafricaineCF
TchadTD
ChiliCL
ChineCN
ColombieCO
ComoresKM
CongoCG
République démocratique du CongoCD
Îles CookCK
Costa RicaCR
Côte d’IvoireCI
CroatieHR
CubaCU
CuraçaoCW
ChypreCY
TchéquieCZ
DanemarkDK
DjiboutiDJ
DominiqueDM
République dominicaineDO
Timor orientalTL
ÉquateurEC
ÉgypteEG
SalvadorSV
Guinée équatorialeGQ
ÉrythréeER
EstonieEE
EswatiniSZ
ÉthiopieET
Îles MalouinesFK
Îles FéroéFO
FidjiFJ
FinlandeFI
FranceFR
Guyane françaiseGF
Polynésie françaisePF
GabonGA
GambieGM
GéorgieGE
AllemagneDE
GhanaGH
GibraltarGI
GrèceGR
GroenlandGL
GrenadeGD
GuadeloupeGP
GuamGU
GuatemalaGT
GuerneseyGG
GuinéeGN
Guinée-BissauGW
GuyanaGY
HaïtiHT
HondurasHN
Hong KongHK
HongrieHU
IslandeIS
IndeIN
IndonésieID
IranIR
IrakIQ
IrlandeIE
Île de ManIM
IsraëlIL
ItalieIT
JamaïqueJM
JaponJP
JerseyJE
JordanieJO
KazakhstanKZ
KenyaKE
KiribatiKI
KosovoXK
KoweïtKW
KirghizistanKG
LaosLA
LettonieLV
LibanLB
LesothoLS
LibériaLR
LibyeLY
LiechtensteinLI
LituanieLT
LuxembourgLU
MacaoMO
MadagascarMG
MalawiMW
MalaisieMY
MaldivesMV
MaliML
MalteMT
Îles MarshallMH
MartiniqueMQ
MauritanieMR
MauriceMU
MayotteYT
MexiqueMX
MicronésieFM
MoldavieMD
MonacoMC
MongolieMN
MonténégroME
MontserratMS
MarocMA
MozambiqueMZ
MyanmarMM
NamibieNA
NauruNR
NépalNP
Pays-BasNL
Nouvelle-CalédonieNC
Nouvelle-ZélandeNZ
NicaraguaNI
NigerNE
NigeriaNG
Corée du NordKP
Macédoine du NordMK
Îles Mariannes du NordMP
NorvègeNO
OmanOM
PakistanPK
PalaosPW
PanamaPA
Papouasie-Nouvelle-GuinéePG
ParaguayPY
PérouPE
PhilippinesPH
PolognePL
PortugalPT
Porto RicoPR
QatarQA
La RéunionRE
RoumanieRO
RussieRU
RwandaRW
Sainte-HélèneSH
Saint-Kitts-et-NevisKN
Sainte-LucieLC
Saint-MartinMF
Saint-Pierre-et-MiquelonPM
Saint-Vincent-et-les-GrenadinesVC
SamoaWS
Saint-MarinSM
São Tomé-et-PríncipeST
Arabie saouditeSA
SénégalSN
SerbieRS
SeychellesSC
Sierra LeoneSL
SingapourSG
Saint-MartinSX
SlovaquieSK
SlovénieSI
Îles SalomonSB
SomalieSO
Afrique du SudZA
Corée du SudKR
Soudan du SudSS
EspagneES
Sri LankaLK
Saint-BarthélemyBL
SoudanSD
SurinameSR
SuèdeSE
SuisseCH
SyrieSY
TaïwanTW
TadjikistanTJ
TanzanieTZ
ThaïlandeTH
BahamasBS
TogoTG
TongaTO
Trinité-et-TobagoTT
TunisieTN
TurquieTR
TurkménistanTM
Îles Turques-et-CaïquesTC
TuvaluTV
OugandaUG
UkraineUA
Émirats arabes unisAE
Royaume-UniGB
États-UnisUS
UruguayUY
Îles Vierges américainesVI
OuzbékistanUZ
VanuatuVU
VaticanVA
VenezuelaVE
Viêt NamVN
Wallis-et-FutunaWF
YémenYE
ZambieZM
ZimbabweZW

Autres notes

Information importante sur la facturation : chaque adresse IP traitée consomme un crédit. La facturation s’effectue par soumission de requête, que la réponse soit réussie ou non. Par conséquent, soumettre une adresse IP invalide comme « fda3346ds » déduira quand même un crédit de votre compte.