ipatlas-dev API

ipatlas-dev API as documented publicly: 13 operations. Contract generated from the documentation by API Evangelist (2026-10-30); not the provider's own document.

Operations 13

GET / GET / #
GET /8.8.8.8 GET /8.8.8.8 #
POST /checkout POST /checkout #
GET /health GET /health #
GET /ipgeo GET /ipgeo #
GET /json Get geolocation and IP intelligence data for the caller's own source address. #
GET /json/{ip} Look up geolocation, ASN, organisation, datacenter and VPN detection for a specific IPv4 or IPv6 address. #
GET /v1/account GET /v1/account #
POST /v1/account/rotate POST /v1/account/rotate #
POST /v1/account/settings POST /v1/account/settings #
POST /v1/batch POST /v1/batch #
GET /v1/mmdb/2026-05-12 GET /v1/mmdb/2026-05-12 #
GET /v1/mmdb/latest GET /v1/mmdb/latest #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ipatlas-dev:ipatlas-dev-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ipatlas-dev-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: ipatlas-dev API
  version: '2026-10-30'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-30: 13 operation(s) read from 8 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; ipatlas-dev has published no machine-readable contract that the
    pipeline could find. Engine: anthropic.'
  x-evidence-tiers:
    code-example: 14
    documentation: -1
    pages-with-code: 8
    pages-read: 8
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-30'
  x-generator: generate-contract-from-docs.py
  x-engine: anthropic
  x-sources:
  - https://ip-atlas.io/products/api
  - https://ip-atlas.io/docs
  - https://ip-atlas.io/lookup
  - https://ip-atlas.io/vs/ipinfo
  - https://ip-atlas.io/vs/maxmind
  - https://ip-atlas.io/vs/ipgeolocation
  - https://ip-atlas.io/data
  - https://ip-atlas.io/use-cases
servers:
- url: https://api.ip-atlas.io
paths:
  /:
    get:
      operationId: get
      tags:
      - Api
      summary: GET /
      x-source: https://ip-atlas.io/docs
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl \n JavaScript / fetch \n Python / requests \n Go \n PHP \n Reference \n Response fields \n CORS \n Data sources \n API\
          \ Documentation \n IP-Atlas gives you IP geolocation, ASN data, and datacenter detection through one REST endpoint. Every field is included\
          \ on every plan — you pay for throughput, not fields. \n Base URL: https://api.ip-atlas.io \n Response format: JSON ( Content-Type:\
          \ application/json ) \n"
  /8.8.8.8:
    get:
      operationId: get_8_8_8_8
      tags:
      - '8'
      summary: GET /8.8.8.8
      x-source: https://ip-atlas.io/vs/ipinfo
      parameters:
      - name: token
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: curl https://ipinfo.io/8.8.8.8?token=$TOKEN
  /checkout:
    post:
      operationId: post_checkout
      tags:
      - Checkout
      summary: POST /checkout
      x-source: https://ip-atlas.io/docs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostCheckoutRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://api.ip-atlas.io/checkout  -H \"Content-Type: application/json\"  -d '{\"plan\":\"developer\",\"email\"\
          :\"<your-email>\"}' \n Billing portal \n Manage your card, download invoices, or cancel your plan from your dashboard billing page .\
          \ The portal is session-gated and is not exposed as a public API endpoint — opening it requires a logged-in browser session, not an\
          \ API key. \n Node.js SDK \n T"
  /health:
    get:
      operationId: get_health
      tags:
      - Health
      summary: GET /health
      x-source: https://ip-atlas.io/docs
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl https://api.ip-atlas.io/health \n { \"ok\" : true , \"ips_loaded\" : 255000 , \"asns_loaded\" : 519000 } //Counts shown\
          \ are approximate; the live response reflects the data set at refresh time. \n POST /checkout \n Creates a Stripe Checkout session.\
          \ Use plan: \"free\" for a Setup-mode checkout (card authorised, no charge). Paid plans run in Subscription mode. Most users hit this\
          \ through the pricing page"
  /ipgeo:
    get:
      operationId: get_ipgeo
      tags:
      - Ipgeo
      summary: GET /ipgeo
      x-source: https://ip-atlas.io/vs/ipgeolocation
      parameters:
      - name: apiKey
        in: query
        required: false
        schema:
          type: string
      - name: ip
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl "https://api.ipgeolocation.io/ipgeo?apiKey=$KEY&ip=8.8.8.8" '
  /json:
    get:
      operationId: get_json
      tags:
      - Json
      summary: Get geolocation and IP intelligence data for the caller's own source address.
      x-source: https://ip-atlas.io/products/api
      parameters:
      - name: X-API-Key
        in: header
        required: true
        schema:
          type: string
        description: API key for authentication
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetJsonResponse'
      x-evidence:
        kind: documentation
  /json/{ip}:
    get:
      operationId: get_json_ip
      tags:
      - Json
      summary: Look up geolocation, ASN, organisation, datacenter and VPN detection for a specific IPv4 or IPv6 address.
      x-source: https://ip-atlas.io/docs
      parameters:
      - name: ip
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetJsonIpResponse'
      x-evidence:
        kind: documentation
  /v1/account:
    get:
      operationId: get_v1_account
      tags:
      - Account
      summary: GET /v1/account
      x-source: https://ip-atlas.io/docs
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1AccountResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl https://api.ip-atlas.io/v1/account -H \"X-API-Key: ipa_live_...\" \n {\n \"plan\" : \"developer\" ,\n \"plan_display_name\"\
          \ : \"Plus\" ,\n \"key_prefix\" : \"ipa_live_abc1\" ,\n \"email\" : \"<your-email>\" ,\n \"status\" : \"active\" ,\n \"created_at\"\
          \ : \"2026-04-22T18:14:03Z\" ,\n \"daily_used\" : 0 ,\n \"monthly_used\" : 14823 , \"monthly_limit\" : 150000 ,\n \"stripe_customer_id\"\
          \ : \"cus_...\" , \"has_subscription\" : true ,\n \"overag"
  /v1/account/rotate:
    post:
      operationId: post_v1_account_rotate
      tags:
      - Account
      summary: POST /v1/account/rotate
      x-source: https://ip-atlas.io/docs
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1AccountRotateResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://api.ip-atlas.io/v1/account/rotate -H \"X-API-Key: ipa_live_...\" \n { \"api_key\" : \"ipa_live_9f8e...\"\
          \ , \"key_prefix\" : \"ipa_live_9f8e\" } \n POST /v1/account/settings \n Update billing settings for your key. Fields not present are\
          \ unchanged. "
  /v1/account/settings:
    post:
      operationId: post_v1_account_settings
      tags:
      - Account
      summary: POST /v1/account/settings
      x-source: https://ip-atlas.io/docs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1AccountSettingsRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://api.ip-atlas.io/v1/account/settings  -H \"X-API-Key: ipa_live_...\"  -H \"Content-Type: application/json\"\
          \  -d '{\"overage_enabled\": false, \"spend_cap_cents\": 2500}' \n Pass \"clear_spend_cap\": true to remove an existing cap. \n GET\
          \ /health \n Unauthenticated liveness check. No rate limit. "
  /v1/batch:
    post:
      operationId: post_v1_batch
      tags:
      - Batch
      summary: POST /v1/batch
      x-source: https://ip-atlas.io/products/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1BatchRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1BatchResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://api.ip-atlas.io/v1/batch  -H \"X-API-Key: ipa_live_...\"  -H \"Content-Type: application/json\"  -d '{\"\
          ips\":[\"8.8.8.8\",\"1.1.1.1\",\"not-an-ip\"]}' \n Response \n {\n \"results\" : [\n { \"ip\" : \"8.8.8.8\" , \"country\" : \"US\" ,\
          \ \"asn\" : 15169 , ...},\n { \"ip\" : \"1.1.1.1\" , \"country\" : \"AU\" , \"asn\" : 13335 , ...},\n { \"ip\" : \"not-an-ip\" , \"\
          error\" : \"invalid IP address\" }\n ]\n} \n Semantics you can r"
  /v1/mmdb/2026-05-12:
    get:
      operationId: get_v1_mmdb_2026_05_12
      tags:
      - Mmdb
      summary: GET /v1/mmdb/2026-05-12
      x-source: https://ip-atlas.io/vs/maxmind
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -H \"X-API-Key: $IPA_KEY\"  https://api.ip-atlas.io/v1/mmdb/2026-05-12  -o ipatlas.mmdb \n 2. Same reader, different file "
  /v1/mmdb/latest:
    get:
      operationId: get_v1_mmdb_latest
      tags:
      - Mmdb
      summary: GET /v1/mmdb/latest
      x-source: https://ip-atlas.io/vs/maxmind
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -H "X-API-Key: $IPA_KEY"  https://api.ip-atlas.io/v1/mmdb/latest  -o ipatlas.mmdb'
components:
  schemas:
    GetResponse:
      type: object
      properties:
        error:
          type: string
        required:
          type: string
    PostCheckoutRequest:
      type: object
      properties:
        plan:
          type: string
        email:
          type: string
    GetJsonResponse:
      type: object
      properties:
        ip:
          type: string
        country:
          type: string
        country_name:
          type: string
        registry:
          type: string
        asn:
          type: integer
        org:
          type: string
        is_datacenter:
          type: boolean
        is_vpn:
          type: boolean
    GetJsonIpResponse:
      type: object
      properties:
        ip:
          type: string
        country:
          type: string
        country_name:
          type: string
        registry:
          type: string
        asn:
          type: integer
        org:
          type: string
        is_datacenter:
          type: boolean
        is_vpn:
          type: boolean
    GetV1AccountResponse:
      type: object
      properties:
        api_key:
          type: string
        key_prefix:
          type: string
    PostV1AccountRotateResponse:
      type: object
      properties:
        api_key:
          type: string
        key_prefix:
          type: string
    PostV1AccountSettingsRequest:
      type: object
      properties:
        overage_enabled:
          type: boolean
        spend_cap_cents:
          type: integer
    PostV1BatchRequest:
      type: object
      properties:
        ips:
          type: array
          items:
            type: string
    PostV1BatchResponse:
      type: object
      properties:
        results:
          type: array
          items:
            type: object
            properties:
              ip:
                type: string
              country:
                type: string
              asn:
                type: integer
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
security:
- apiKey: []
tags:
- name: '8'
- name: Account
- name: Api
- name: Batch
- name: Checkout
- name: Health
- name: Ipgeo
- name: Json
- name: Mmdb