🔵

IP Geolocation API in Go

Complete Go integration guide for the IP Geolocation API. Copy the code below, add your RapidAPI key, and start building.

Prerequisites

  • 1.Sign up for a free account on RapidAPI
  • 2.Subscribe to the IP Geolocation API (free tier available)
  • 3.Copy your X-RapidAPI-Key from the dashboard

Complete Go Example

helix-ip-geolocation.go
package main

import (
	"encoding/json"
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://ip-geolocation-by-helix-api.p.rapidapi.com/lookup/8.8.8.8"

	req, _ := http.NewRequest("GET", url, nil)
	req.Header.Set("X-RapidAPI-Key", "YOUR_API_KEY")
	req.Header.Set("X-RapidAPI-Host", "ip-geolocation-by-helix-api.p.rapidapi.com")

	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	defer resp.Body.Close()

	body, _ := io.ReadAll(resp.Body)

	var result map[string]interface{}
	json.Unmarshal(body, &result)
	fmt.Println("Status:", result["status"])
	fmt.Println("Result:", result["data"])
}

Response Format

All Helix-API endpoints return a consistent JSON envelope:

{
  "status": "ok",
  "data": { ... },
  "meta": {
    "request_id": "req_abc123",
    "latency_ms": 42
  }
}

On errors, status becomes "error" and a message field explains what went wrong.

Error Handling

StatusMeaningAction
200SuccessParse the response body normally
400Bad requestCheck your request parameters
401UnauthorizedVerify your X-RapidAPI-Key header
429Rate limitedWait and retry with exponential backoff
500Server errorRetry after a short delay

Go Best Practices

Zero dependencies

Go's standard library (net/http) is all you need. The example calls the IP Geolocation API without any third-party packages.

Struct for type-safe responses

Define a struct matching the JSON response and use json.Unmarshal. This gives you compile-time safety and field access.

Context for timeouts

Use context.WithTimeout to set a deadline. This is idiomatic Go and prevents goroutine leaks.

Connection pooling

Reuse the http.Client across requests. Go's default client pools connections automatically — just don't create a new one per request.

IP Geolocation API Endpoints

GET
/lookup/{ip}

Full geolocation for an IP

GET
/lookup/me

Lookup caller's IP

POST
/bulk

Lookup up to 20 IPs

Other Languages

View the IP Geolocation API integration guide in another language:

Related APIs

Start building with real APIs today

Free tier on every API, a live demo on every page, and a guide for each. No credit card to explore.

Helix-API Newsletter

Get new API launches, integration guides, and code examples in your inbox.