API Guide

All relative URLs in this document have the following base https://snja.io/1.0

GEOIP to Country

GET /ips/<IP_ADDRESS>

Make a HTTP Get request to the /ips endpoint with your target IP Address to recieve Country, Currency and Language information. Append the IP_ADDRESS to the end of the endpoint URL.

This endpoint requires your API_KEY_ID and API_SECRET to access.

Request

Parameter Required Description Example
IP_ADDRESS YES STRING The target IP Address that you are requesting country information for 8.8.8.8

Example of a request.

curl "https://snja.io/1.0/ips/<IP_ADDRESS>?_id=<API_KEY_ID>&_secret=<API_SECRET>"
var https = require('https');
console.log(https.get("https://snja.io/1.0/ips/<IP_ADDRESS>?_id=<API_KEY_ID>&_secret=<API_SECRET>"));
echo file_get_contents("https://snja.io/1.0/ips/<IP_ADDRESS>?_id=<API_KEY_ID>&_secret=<API_SECRET>");
import requests
print(requests.get("https://snja.io/1.0/ips/<IP_ADDRESS>?_id=<API_KEY_ID>&_secret=<API_SECRET>"))

Response

Example of a successful response.

{
    "geoip": {
        "ip_address": "8.8.8.8",
        "continent": {
            "code": "NA",
            "name": "North America"
        },
        "country": {
            "code": "US",
            "name": "United States",
            "phone": "1",
            "capital": "Washington D.C."
        },
        "currencies": [
            {
                "code": "USD",
                "name": "US Dollar",
                "symbol": "$",
                "unicode": "$",
                "position": "before"
            },
            {
                "code": "USN",
                "name": "US Dollar (Next day)",
                "symbol": null,
                "unicode": null,
                "position": null
            },
            {
                "code": "USS",
                "name": "US Dollar (Same day)",
                "symbol": null,
                "unicode": null,
                "position": null
            }
        ],
        "languages": [
            {
                "code": "en",
                "name": "English",
                "native": "English",
                "rtl": false
            }
        ]
    }
}

API Overview

Authentication

You'll need to authenticate using your API Key.

There are two ways to authenticate:

Request Headers:

$ curl -H "X-Api-Id: <API_KEY_ID>" -H "X-Api-Secret: <API_SECRET>" 'https://snja.io'

URL Parameters:

$ curl 'https://snja.io/foo?_id=<API_KEY_ID>&_secret=<API_SECRET>'

API Keys

API Keys can be created and managed in the API Keys section.

  1. Go to the API Keys section.
  2. Click on the button 'Generate API Key'.
  3. A new key will be genereated for use with the API.

Rate Limits

API Keys are rate limited to ensure fair delivery of services. You can view the current Rate Limit and Remaining Requests in the returned Response Headers from the API. Below is a description of the Response Headers.

Header Description
X-RateLimit-Limit The maximum number of requests per time window.
X-RateLimit-Remaining The number of requests remaining before reset.
X-RateLimit-Reset The time at which the current rate limit window resets in UTC Epoch seconds.

Error Codes

The following HTTP response codes are used.

Code Message Description
200 OK The request has succeeded.
400 Bad Request The request could not be understood by the server due to malformed syntax.
401 Unauthorised This indicates that you have not passed a valid API key, the key has expired, or the Authorization header is not formatted correctly.
404 Not Found The server has not found anything matching the Request-URI.
405 Method Not Allowed This indicates that the request method is known by the server but has been disabled and cannot be used.
429 Too Many Requests We have recieved too many requests from your API Key in a given amount of time. Wait a while and try again.

More Products

Device Shots

Easily mock-up your app screenshots onto different devices for marketing

Ring the Bell

Login on a TV or Pi and ring an audible bell every time the team makes a sale

NPS Feedback

Your Net Promoter Score measures brand loyalty and forecasts business growth

Uptime Pings

Get notified instantly when your website is down and not responding to requests

Cron Monitoring

Get notified when your cron jobs fail or benchmark their performance

Status Page

Keep your customers informed during scheduled or unplanned outages

GEOIP to Country

Lookup Country, Language & Currency Information from an IP address

DNS Watcher

Track DNS changes on your domains & get notified of expiring certificates

Competitor Monitor

Monitor your competitors' websites and get notified when they change

Builder API

Cross-platform Hybrid App build service for Cordova, React Native & Flutter

Ninjalytics

Generate swimlane charts of your customer's journey through your product

Request Bins

Capture & inspect HTTP requests. Replay the request to your local machine