changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "description": "Response for ``POST /geo-ip``.",
+ "properties": {
+ "asn": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Asn"
+ },
+ "city": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "City"
+ },
+ "cost_usdc": {
+ "description": "Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier.",
+ "title": "Cost Usdc",
+ "type": "number"
+ },
+ "country": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Country"
+ },
+ "country_code": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Country Code"
+ },
+ "fetched_at": {
+ "description": "UTC timestamp when the data was fetched.",
+ "format": "date-time",
+ "title": "Fetched At",
+ "type": "string"
+ },
+ "freshness_seconds": {
+ "description": "Age of the underlying data in seconds (0 = fetched live).",
+ "title": "Freshness Seconds",
+ "type": "integer"
+ },
+ "ip": {
+ "title": "Ip",
+ "type": "string"
+ },
+ "is_eu": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Is Eu"
+ },
+ "is_private": {
+ "title": "Is Private",
+ "type": "boolean"
+ },
+ "isp": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Isp"
+ },
+ "latitude": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Latitude"
+ },
+ "longitude": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Longitude"
+ },
+ "org": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Org"
+ },
+ "postal": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Postal"
+ },
+ "region": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Region"
+ },
+ "routing": {
+ "description": "How the request was routed (provider, fallback, cache, latency).",
+ "properties": {
+ "cache_hit": {
+ "default": false,
+ "description": "True if the result was served from cache.",
+ "title": "Cache Hit",
+ "type": "boolean"
+ },
+ "fallback_used": {
+ "default": false,
+ "description": "True if the primary provider failed and a fallback served the result.",
+ "title": "Fallback Used",
+ "type": "boolean"
+ },
+ "latency_ms": {
+ "default": 0,
+ "description": "End-to-end routing latency in milliseconds.",
+ "title": "Latency Ms",
+ "type": "integer"
+ },
+ "provider": {
+ "description": "Name of the upstream provider that served the result.",
+ "title": "Provider",
+ "type": "string"
+ },
+ "providers_tried": {
+ "description": "Providers attempted, in order.",
+ "items": {
+ "type": "string"
+ },
+ "title": "Providers Tried",
+ "type": "array"
+ }
+ },
+ "required": [
+ "provider"
+ ],
+ "title": "RoutingMeta",
+ "type": "object"
+ },
+ "source": {
+ "title": "Source",
+ "type": "string"
+ },
+ "timezone": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Timezone"
+ },
+ "token": {
+ "default": "USDC",
+ "description": "Token actually used for payment (USDC, USDT or FREE).",
+ "title": "Token",
+ "type": "string"
+ },
+ "utc_offset": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Utc Offset"
+ },
+ "version": {
+ "title": "Version",
+ "type": "integer"
+ },
+ "x_payment_response": {
+ "description": "Base64-encoded x402 settlement receipt (mirrors the X-PAYMENT-RESPONSE header). Only present when the call was paid with `x_payment`.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "freshness_seconds",
+ "cost_usdc",
+ "routing",
+ "ip",
+ "version",
+ "is_private",
+ "source"
+ ],
+ "type": "object"
+}