API ডকুমেন্টেশন
তিন ধাপে সার্ভার থেকে পাবলিক IPv4 বা IPv6 ঠিকানা দেখুন। শুরু করুন · API কী তৈরি করুন
OpenAPI স্পেসিফিকেশন ডাউনলোড করুন
আপনার প্রথম API অনুরোধ
curl --get 'https://www.geoipy.com/api/IPsInfo' \
--data-urlencode 'ip=8.8.8.8' \
--header 'X-API-Key: YOUR_API_KEY'
HTTPS ও X-API-Key ব্যবহার করুন। URL-এর কী লগে থাকতে পারে। হেডার ও URL-এ আলাদা কী হলে HTTP 400 হয়।
ড্যাশবোর্ডে কী তৈরি করুন। পূর্ণ মান একবারই দেখানো হয়। ব্যক্তিগত সার্ভার সেটিংসে রাখুন, ব্রাউজার কোড বা প্রকাশ্য রিপোজিটরিতে নয়। বদলালে পুরোনো কী সঙ্গে সঙ্গে অকার্যকর হয়। বাতিল বা মেয়াদ শেষ হলে নতুন অনুরোধ বন্ধ হয়; গৃহীতগুলো শেষ হতে পারে।
প্রতিক্রিয়া ও তথ্যের সতেজতা
HTTP 200 JSON দেয়। এটি সংক্ষিপ্ত উদাহরণ; ক্ষেত্রগুলো প্রদানকারীর তথ্যের ওপর নির্ভর করে।
{
"ip": "8.8.8.8",
"type": "ipv4",
"country_code": "US"
}
ক্যাশের সতেজতা ডিফল্ট ১২ ঘণ্টা। X-Data-Fetched-At UTC সংগ্রহের সময় জানায়। আপডেট ব্যর্থ হলে মেয়াদোত্তীর্ণ তথ্য দেওয়া হয় না; সংগ্রহের সময় তথ্যের বয়স নয়।
X-Request-ID সহায়তার জন্য অনুরোধ চিহ্নিত করে। জিওলোকেশন নেটওয়ার্কের আনুমানিক অবস্থান, ব্যক্তির সঠিক অবস্থান নয়।
ব্যবহার ও পুনরায় চেষ্টা
ক্যাশসহ সফল অনুরোধ সীমা খরচ করে। চলমান অনুরোধ সীমা সংরক্ষণ করে; ব্যর্থ হলে ছাড়ে। মাসের ১ তারিখ 00:00 UTC-এ রিসেট হয়। প্ল্যান বা কী বদলালে হয় না।
HTTP 429 বা সাময়িক 503/504 হলে Retry-After মেনে বিরতি বাড়িয়ে সীমিত চেষ্টা করুন। ভুল ইনপুট বা পরিচয়তথ্য আগে ঠিক করুন।
ত্রুটি
ত্রুটি HTTP ত্রুটি অবস্থাসহ application/json দেয়। API পরিচয় ও উদাহরণ নথিভুক্ত রূপে থাকে।
{
"success": false,
"error": {
"code": 104,
"type": "usage_limit_reached",
"info": "The monthly API allowance has been reached."
}
}
| কোড | ধরন | অর্থ |
|---|---|---|
| 101 | invalid_access_key | কী নেই, মেয়াদ শেষ, বাতিল বা অবৈধ (HTTP 401)। |
| 104 | usage_limit_reached | অপেক্ষার অনুরোধসহ মাসিক সীমা পূর্ণ (HTTP 429)। |
| 105 | rate_limit_reached | স্বল্পমেয়াদি সীমা পূর্ণ; Retry-After মানুন (HTTP 429)। |
| 106 | invalid_ip_address | পাবলিক IPv4 বা IPv6 দিন (HTTP 400)। |
| 202 | upstream_failure | প্রদানকারী ব্যর্থ বা তথ্য অবৈধ (HTTP 502)। |
| 503 | lookup_unavailable | সেবা, সীমা ভান্ডার বা আপডেট সাময়িকভাবে অনুপলব্ধ (HTTP 503)। |
| 504 | upstream_timeout | প্রদানকারীর সময়সীমা শেষ (HTTP 504)। |
সার্ভার-সাইড উদাহরণ
JavaScript · সার্ভার
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.
সহায়তার জন্য অনুরোধ ID ও আনুমানিক UTC সময় ইমেইল করুন। কী গোপন রাখুন। support-geoipy@rumex.bh