Lookip Service API

Service index, liveness and this document.

Operations 3

GET / Service Index #
GET /health Liveness Probe #
GET /openapi.json OpenAPI Document #

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/lookip-service-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

lookip-service-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lookip Service API
  version: 1.0.0
  summary: IP geolocation, ASN and VPN/proxy/Tor/hosting detection for any IPv4 or IPv6 address — we name the anonymising service, not just flag it. Prepaid credit, metered per query, no subscription.
  description: IP intelligence over plain HTTP GET and POST.
  termsOfService: https://lookip.io/legal/terms
  contact:
    name: Lookip
    url: https://lookip.io/docs
    email: hi@lookip.io
servers:
- url: https://api.lookip.io
  description: Production
security:
- bearerAuth: []
tags:
- name: Service
  description: Service index, liveness and this document.
paths:
  /:
    get:
      tags:
      - Service
      operationId: getServiceIndex
      summary: Service Index
      description: Service name, version, and the canonical endpoint list.
      security: []
      responses:
        '200':
          description: Service index.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceIndex'
              examples:
                index:
                  summary: The service index.
                  value:
                    service: lookip-api
                    version: '1.0'
                    docs: https://lookip.io/docs
                    openapi: /openapi.json
                    endpoints:
                    - /v1/lookup/lite/:ip
                    - /v1/lookup/max/:ip
                    - /v1/lookup/me
                    - /v1/batch/lite
                    - /v1/batch/max
                    - /v1/asn/:asn
                    - /v1/asn?q=&country=
                    - /openapi.json
  /health:
    get:
      tags:
      - Service
      operationId: getHealth
      summary: Liveness Probe
      description: 'Always 200 with `ok: true` while the process is answering. `ok` is liveness and never depends on `lite`: a process whose Lite dataset failed to load is still alive and still serves every other endpoint, and reporting that in the status code would stop a container from ever becoming healthy. When `lite.loaded` is false every LITE lookup on this process answers 503 `lite_db_unavailable`, and `lite.datasetUpdatedAt` is null.'
      security: []
      responses:
        '200':
          description: The service is up.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Health'
              examples:
                up:
                  summary: The service is up and the Lite dataset is in memory.
                  value:
                    ok: true
                    ts: 1786726485972
                    lite:
                      loaded: true
                      datasetUpdatedAt: '2026-08-22T04:11:07.000Z'
  /openapi.json:
    get:
      tags:
      - Service
      operationId: getOpenApiDocument
      summary: OpenAPI Document
      description: This document.
      security: []
      responses:
        '200':
          description: The OpenAPI 3.1 description of this API.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenApiDocument'
              examples:
                head:
                  summary: The first fields of this document. The real body carries `paths` and `components`.
                  value:
                    openapi: 3.1.1
                    info:
                      title: Lookip API
                      version: 1.0.0
                      summary: IP geolocation, ASN and VPN/proxy/Tor/hosting detection for any IPv4 or IPv6 address — we name the anonymising service, not just flag it. Prepaid credit, metered per query, no subscription.
                    servers:
                    - url: https://api.lookip.io
                      description: Production
components:
  schemas:
    OpenApiDocument:
      type: object
      title: OpenApiDocument
      description: This document. The example beside it is the first few fields only; the served body also carries the full `paths` and `components` objects.
      properties:
        openapi:
          type: string
          description: Version of the OpenAPI specification this document is written to.
          pattern: ^3\.1\.\d+$
        info:
          type: object
          description: Identity, version and contact details for the API.
          properties:
            title:
              type: string
              description: Human name of the API.
            version:
              type: string
              description: Version of the API this document describes.
            summary:
              type: string
              description: One-line description. An OpenAPI 3.1 field; absent in 3.0.
            description:
              type: string
              description: Long-form description, in Markdown.
            termsOfService:
              type: string
              description: Terms of service.
              format: uri
            contact:
              type: object
              description: Who to contact about the API.
              properties:
                name:
                  type: string
                  description: Contact name.
                url:
                  type: string
                  description: Contact URL.
                  format: uri
                email:
                  type: string
                  description: Contact email address.
          required:
          - title
          - version
        externalDocs:
          type: object
          description: The human documentation this API is described by.
          properties:
            description:
              type: string
              description: Link text.
            url:
              type: string
              description: Absolute URL.
              format: uri
          required:
          - url
        servers:
          type: array
          description: Base URLs the operations below are relative to.
          items:
            type: object
            properties:
              url:
                type: string
                description: Absolute base URL.
                format: uri
              description:
                type: string
                description: What this server is.
            required:
            - url
        security:
          type: array
          description: The security requirement applied to every operation that does not override it.
          items:
            type: object
            description: Scheme name to required scopes.
        tags:
          type: array
          description: Operation groupings, in the order a renderer should show them.
          items:
            type: object
            properties:
              name:
                type: string
                description: Tag name.
              description:
                type: string
                description: What the group is.
            required:
            - name
        paths:
          type: object
          description: Every operation, keyed by path template.
          propertyNames:
            type: string
            pattern: ^/
        components:
          type: object
          description: The reusable schemas and security schemes the operations `$ref`.
          properties:
            schemas:
              type: object
              description: Every schema a response or body `$ref`s.
            securitySchemes:
              type: object
              description: How to authenticate.
      required:
      - openapi
      - info
    Health:
      type: object
      title: Health
      properties:
        ok:
          type: boolean
          description: Liveness only. Always true on a response at all, and deliberately independent of `lite` — a process with no dataset is still alive and still serves every other endpoint.
        ts:
          type: integer
          description: Server time in milliseconds since the epoch.
        lite:
          $ref: '#/components/schemas/LiteReaderHealth'
      required:
      - ok
      - ts
      - lite
    LiteReaderHealth:
      type: object
      title: LiteReaderHealth
      description: 'Whether the process answering this request holds the Lite dataset in memory. The file existing on disk is a different fact: a failed load leaves a current snapshot unread while every LITE lookup answers 503.'
      properties:
        loaded:
          type: boolean
          description: False means every LITE lookup on this process is answering 503.
        datasetUpdatedAt:
          type:
          - string
          - 'null'
          format: date-time
          description: When the dataset THIS process loaded was last written. Null while nothing is loaded. Older than the file on disk means the process never picked up a refresh.
      required:
      - loaded
      - datasetUpdatedAt
    ServiceIndex:
      type: object
      title: ServiceIndex
      properties:
        service:
          type: string
        version:
          type: string
        docs:
          type: string
          format: uri
          description: Absolute URL of the human documentation. Absolute because it is on the website, not on this host.
        openapi:
          type: string
          description: Path to this document.
        endpoints:
          type: array
          items:
            type: string
      required:
      - service
      - version
      - endpoints
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Send your key as `Authorization: Bearer <key>`. The `?token=` query parameter is no longer accepted — a credential in a URL lands in access logs, browser history and the Referer header, none of which can be un-sent.'
externalDocs:
  description: API documentation
  url: https://lookip.io/docs