IP Geolocation API
OperationalPaid Session capability. Operator credentials stay on the server. Missing keys report CONFIGURATION_REQUIRED.
Paid Session · Paid Session
Overview
Paid Session capability. Operator credentials stay on the server. Missing keys report CONFIGURATION_REQUIRED. Customers never receive upstream URLs or credentials.
Trial and pricing
Paid Session uses an API Kit trial, then billed customer price with configurable markup. Estimated cost is returned by the catalog and after a successful request. Stripe and PayPal wrappers are read-only account probes — no charge or capture.
Authentication
Send
x-api-key. Bearer tokens that start with ak_live_ are accepted.Endpoints
GET /api/v1/paid/abstract-ip
Parameters
- ip
Response
{
"success": true,
"data": {},
"meta": { "requestId": "req_...", "timestamp": "...", "responseTime": 42 }
}Errors
INVALID_PARAMETER, INVALID_API_KEY, RATE_LIMIT_EXCEEDED, TRIAL_EXPIRED, PLAN_REQUIRED, CONFIGURATION_REQUIRED, PROVIDER_UNAVAILABLE, INTERNAL_ERROR.
Rate Limits
Paid Session uses separate Redis limits. Trial expiry returns 403 TRIAL_EXPIRED before any provider call.
Examples
curl
curl "https://labs.astrosia.tech/apikit-api/api/v1/paid/abstract-ip" \ -H "x-api-key: ak_live_xxxxx"
javascript
const res = await fetch("https://labs.astrosia.tech/apikit-api/api/v1/paid/abstract-ip", {
headers: { "x-api-key": process.env.APIKIT_KEY }
});
const json = await res.json();python
import os, requests
r = requests.get(
"https://labs.astrosia.tech/apikit-api/api/v1/paid/abstract-ip",
headers={"x-api-key": os.environ["APIKIT_KEY"]},
)
print(r.json())java
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://labs.astrosia.tech/apikit-api/api/v1/paid/abstract-ip"))
.header("x-api-key", System.getenv("APIKIT_KEY"))
.GET()
.build();php
$ch = curl_init("https://labs.astrosia.tech/apikit-api/api/v1/paid/abstract-ip");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-api-key: " . getenv("APIKIT_KEY")]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($ch);