IP Geolocation and Log Enrichment API LLM Markdown

Back to Details
# IP Geolocation and Log Enrichment API

Enrich public IP addresses with approximate location data.

## API Overview

- **HTTP Protocol:** HTTPS
- **HTTP Method:** GET
- **HTTP Endpoint:** https://api.gugudata.io/v1/location/ip
- **Response Type:** application/json; charset=utf-8
- **DEMO Endpoint:** https://api.gugudata.io/v1/location/ip/demo
- **Live Demo:** https://gugudata.io/demo/location-ip
- **Postman:** https://www.postman.com/gugudata/gugudata-io
- **LLM Page:** https://gugudata.io/details/location-ip/llm
- **Raw Markdown:** https://gugudata.io/details/location-ip/llm.md

## Remote MCP

- **MCP Endpoint:** https://mcp.gugudata.io/mcp
- **MCP Guide:** https://gugudata.io/mcp/
- **Authorization:** OAuth authorization opens in the browser; do not paste appkeys into MCP clients.
- **Tool Scope:** MCP clients receive GuGuData API tools available to the authorized account.

## Data & API Features

- IPv4 and IPv6 geolocation: Look up approximate country, region, city, latitude, and longitude for a public IPv4 or IPv6 address.
- Application log enrichment: Add consistent location fields to access, authentication, support, and operational logs when coverage is available.
- Traffic review context: Add approximate geographic context to traffic review and anomaly triage without treating it as precise device location.
- Analytics segmentation: Group public network traffic by available country, region, or city fields for reporting and product analytics.
- Dashboard-ready coordinates: Use nullable latitude and longitude fields in maps, dashboards, and location-aware operational views.
- Predictable JSON integration: Integrate one stable response shape while handling valid public addresses that have no current location coverage.

## API Request Parameters

| Name | Type | Is Required | Default Value | Remark |
| --- | --- | --- | --- | --- |
| appkey | string | true | YOUR_APPKEY | API key used to authenticate the request. |
| ip | string | true | 8.8.8.8 | Public IPv4 or IPv6 address to look up. Private, reserved, loopback, multicast, and malformed addresses are rejected. |

## API Response Parameters

| Name | Type | Remark |
| --- | --- | --- |
| dataStatus.requestParameter | string | Privacy-safe summary of the normalized request. |
| dataStatus.statusCode | integer | Application-level status code. |
| dataStatus.status | string | Application-level result status. |
| dataStatus.statusDescription | string | Human-readable application status message. |
| dataStatus.responseDateTime | string | Time at which the response was generated. |
| dataStatus.dataTotalCount | integer | Number of matching or returned records for this request. |
| data.countryCode | string | Nullable ISO 3166-1 alpha-2 country code. |
| data.state | string | Nullable region, state, or province name. |
| data.city | string | Nullable city name. |
| data.latitude | number | Nullable approximate latitude coordinate. |
| data.longitude | number | Nullable approximate longitude coordinate. |

## API Response Status Codes

| Status Code | Explanation of Status Code | Remarks |
| --- | --- | --- |
| 200 | Request processed successfully. | Some endpoints expose a separate application-level status field in the response body, such as `dataStatus.statusCode`. |
| 400 | Invalid request parameters or request format. | Check required fields, data types, and request body format. |
| 401 | Missing or unknown application key. | Provide a valid `appkey` with the request. |
| 403 | The application key is recognized but access is not allowed. | The key may be expired, inactive, or not permitted for the requested API. |
| 429 | Request rate or trial usage limit exceeded. | Reduce request frequency and retry with backoff. If a trial allowance is exhausted, check Trial Keys for remaining requests and subscribe to continue. |
| 500 | Internal service error. | Retry later or contact support if the error persists. |
| 503 | Upstream service unavailable. | Retry later; the requested upstream dependency is temporarily unavailable. |

## cURL Example

```bash
curl --location 'https://api.gugudata.io/v1/location/ip?appkey=YOUR_APPKEY&ip=8.8.8.8'
```