API belgeleri
Sunucunuzdan üç adımda genel IPv4 veya IPv6 adreslerini sorgulayın. Başlangıç · API anahtarı oluştur
İlk API isteğiniz
curl --get 'https://www.geoipy.com/api/IPsInfo' \
--data-urlencode 'ip=8.8.8.8' \
--header 'X-API-Key: YOUR_API_KEY'
HTTPS ve X-API-Key kullanın. URL anahtarları günlüklere girebilir. Başlık ve URL'de farklı anahtarlar HTTP 400 döndürür.
Panelde anahtar oluşturun. Tam değeri bir kez gösterilir. Özel sunucu ayarlarında saklayın; tarayıcı koduna veya açık depoya koymayın. Değiştirme eski anahtarı hemen geçersiz kılar. İptal veya süre sonu yeni istekleri durdurur; kabul edilenler tamamlanabilir.
Yanıt ve güncellik
HTTP 200 JSON döndürür. Kısaltılmış örnektir; alanlar sağlayıcı verilerine bağlıdır.
{
"ip": "8.8.8.8",
"type": "ipv4",
"country_code": "US"
}
Önbellek güncelliği varsayılan 12 saattir. X-Data-Fetched-At UTC alınma zamanıdır. Yenileme başarısızsa süresi dolmuş veri sunulmaz; alınma zamanı verinin yaşı değildir.
X-Request-ID destek için isteği tanımlar. Konum bilgisi yaklaşık ağ konumudur, kişinin kesin yeri değildir.
Kullanım ve yeniden denemeler
Önbellek dahil başarılı istekler kotayı kullanır. Bekleyenler kapasite ayırır; başarısızlar bırakır. Her ayın ilk günü 00:00 UTC'de sıfırlanır. Plan veya anahtar değişimi kullanımı sıfırlamaz.
HTTP 429 veya geçici 503/504 için Retry-After'a uyup artan aralıklarla sınırlı deneme yapın. Geçersiz giriş veya kimlik bilgilerini önce düzeltin.
Hatalar
Hatalar HTTP hata durumuyla application/json döndürür. API tanımlayıcıları ve örnekler belgelenen biçimde kalır.
{
"success": false,
"error": {
"code": 104,
"type": "usage_limit_reached",
"info": "The monthly API allowance has been reached."
}
}
| Kod | Tür | Anlam |
|---|---|---|
| 101 | invalid_access_key | Eksik, süresi dolmuş, iptal edilmiş veya geçersiz anahtar (HTTP 401). |
| 104 | usage_limit_reached | Bekleyen istekler dahil aylık kotaya ulaşıldı (HTTP 429). |
| 105 | rate_limit_reached | Kısa süreli sınıra ulaşıldı; Retry-After'a uyun (HTTP 429). |
| 106 | invalid_ip_address | Genel IPv4 veya IPv6 adresi girin (HTTP 400). |
| 202 | upstream_failure | Sağlayıcı hatası veya geçersiz veri (HTTP 502). |
| 503 | lookup_unavailable | Hizmet, kota deposu veya yenileme geçici olarak kullanılamıyor (HTTP 503). |
| 504 | upstream_timeout | Sağlayıcı zaman aşımı (HTTP 504). |
Sunucu tarafı örnekleri
JavaScript · sunucu
const url = new URL('https://www.geoipy.com/api/IPsInfo');
url.searchParams.set('ip', '8.8.8.8');
const response = await fetch(url, {
headers: { 'X-API-Key': process.env.GEOIPY_API_KEY }
});
const data = await response.json();
if (!response.ok) throw new Error(data.error.info);
console.log(data);
C#
using (var client = new System.Net.Http.HttpClient())
{
client.DefaultRequestHeaders.Add("X-API-Key",
System.Environment.GetEnvironmentVariable("GEOIPY_API_KEY"));
var response = await client.GetAsync(
"https://www.geoipy.com/api/IPsInfo?ip=8.8.8.8");
var json = await response.Content.ReadAsStringAsync();
// Inspect response.StatusCode and parse json before retrying.
}
Python
import os, requests
response = requests.get(
'https://www.geoipy.com/api/IPsInfo',
params={'ip': '8.8.8.8'},
headers={'X-API-Key': os.environ['GEOIPY_API_KEY']},
timeout=15)
data = response.json()
response.raise_for_status()
PHP
$url = 'https://www.geoipy.com/api/IPsInfo?' . http_build_query(['ip' => '8.8.8.8']);
$ch = curl_init($url);
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 15,
CURLOPT_HTTPHEADER => ['X-API-Key: ' . getenv('GEOIPY_API_KEY')]]);
$json = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($json === false) { throw new RuntimeException('The request failed.'); }
curl_close($ch);
$data = json_decode($json, true);
// Inspect $status and $data['error'] when the status is not 200.
Yardım için istek kimliğini ve yaklaşık UTC saatini e-postalayın. Anahtarları gizli tutun. support-geoipy@rumex.bh