DID Logic HLR Lookups API

The HLR Lookups API from DID Logic — 2 operation(s) for hlr lookups.

Operations 2

POST /api/v2/hlr Create HLR lookup #
GET /api/v2/hlr/history List HLR lookup history #

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/didlogic-com:didlogic-com-hlr-lookups-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

didlogic-com-hlr-lookups-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Didlogic Com HLR Lookups API
  version: 1.0.0
  description: 'Operations tagged HLR Lookups across 2 of this provider''s published API definitions: didlogic-com-public-api-openapi.yaml, didlogic-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://app.didlogic.com
  description: Production
tags:
- name: HLR Lookups
  x-version: v2
paths:
  /api/v2/hlr:
    post:
      summary: Create HLR lookup
      description: 'Submits phone numbers for an HLR (Home Location Register) lookup

        (maximum 1500 numbers per request).


        Numbers must be supplied in **E.164 format** (e.g. `+14155552671`); a leading `+`

        is added automatically when omitted.


        A single number resolves synchronously; larger batches are processed asynchronously — poll

        hlr_history for results. Lookups are performed

        independently of call setup and do not affect PDD. Results are not cached: each request

        re-queries the provider.


        `hlr_request.task_id` feeds hlr_history (`task_ids`).'
      tags:
      - HLR Lookups
      operationId: hlr_create
      security:
      - BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                numbers:
                  type: array
                  items:
                    type: string
                  description: Array of phone numbers in E.164 format (e.g. +14155552671)
                  example:
                  - '+11111111111111111111111111111111111111111111111111'
      responses:
        '201':
          description: returns the created HLR lookup task
          content:
            application/json:
              schema:
                type: object
                properties:
                  hlr_request:
                    type: object
                    properties:
                      status:
                        type: string
                        enum:
                        - pending
                        - completed
                        - failed
                        example: pending
                        description: Task status
                      processed_at:
                        description: Processing completion timestamp
                      created_at:
                        type: string
                        example: '2026-11-03T09:53:22Z'
                        description: Task creation timestamp
                      task_id:
                        type: integer
                        example: 47
                        description: Task identifier
                      total_numbers:
                        type: integer
                        example: 2
                        description: Total numbers in the request
                    required:
                    - status
                    - processed_at
                    - created_at
                    - task_id
                    - total_numbers
                    description: Created HLR lookup task details
                required:
                - hlr_request
              example:
                hlr_request:
                  status: pending
                  processed_at: null
                  created_at: '2026-11-03T09:53:22Z'
                  task_id: 47
                  total_numbers: 2
        '401':
          description: returns unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
              example:
                error: Unauthorized
        '403':
          description: returns forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
              example:
                error: Access to API V2 HLR is forbidden
        '422':
          description: returns unprocessable entity for validation errors
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
              examples:
                returns_unprocessable_entity:
                  summary: returns unprocessable entity
                  value:
                    error: Previous check is still in progress
                returns_unprocessable_entity_for_validation_errors:
                  summary: returns unprocessable entity for validation errors
                  value:
                    error: No phone numbers provided
                returns_unprocessable_entity_for_validation_errors_3:
                  summary: returns unprocessable entity for validation errors
                  value:
                    error: Phone number is too long (max 50 characters)
    servers:
    - url: https://app.didlogic.com
      description: Production
  /api/v2/hlr/history:
    get:
      summary: List HLR lookup history
      description: 'Returns the caller''s HLR lookup logs — one per number checked — with the lookup result

        (validity, carrier, MCC/MNC, phone type, ported and risky flags, country). Supports

        filtering by number prefix, status, and date ranges, plus pagination.'
      tags:
      - HLR Lookups
      operationId: hlr_history
      security:
      - BearerAuth: []
      parameters:
      - name: ids
        in: query
        required: false
        schema:
          type: string
        description: Filter logs by log IDs (comma-separated)
      - name: task_ids
        in: query
        required: false
        schema:
          type: string
        description: Filter logs by task IDs (comma-separated), from hlr_create
      - name: number
        in: query
        required: false
        schema:
          type: string
        description: Filter logs by specific phone numbers (comma-separated)
      - name: number_start
        in: query
        required: false
        schema:
          type: integer
        example: 1212
        description: Filter logs by phone-number prefix (starts-with)
      - name: status
        in: query
        required: false
        schema:
          type: string
          enum:
          - pending
          - completed
          - failed
        example: completed,pending,failed
        description: Filter by status
      - name: created_at_from
        in: query
        required: false
        schema:
          type: string
          format: date
        example: '2026-11-02'
        description: Filter created from this date (YYYY-MM-DD)
      - name: created_at_to
        in: query
        required: false
        schema:
          type: string
          format: date
        example: '2026-11-04'
        description: Filter created until this date (YYYY-MM-DD)
      - name: processed_at_from
        in: query
        required: false
        schema:
          type: string
          format: date
        description: Filter processed from this date (YYYY-MM-DD)
      - name: processed_at_to
        in: query
        required: false
        schema:
          type: string
          format: date
        description: Filter processed until this date (YYYY-MM-DD)
      - name: order_by
        in: query
        required: false
        schema:
          type: string
        example: created_at
        description: Field to sort by
      - name: order
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
        example: desc
        description: Sort order
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          default: 1
        example: 1
        description: Page number for pagination (starts from 1)
      - name: per_page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 20
        example: 10
        description: Number of items per page
      responses:
        '200':
          description: returns the caller HLR logs filtered by number prefix
          content:
            application/json:
              schema:
                type: object
                properties:
                  logs:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 56
                          description: Log identifier
                        number:
                          type: string
                          example: '12125551234'
                          description: Phone number that was checked
                        status:
                          type: string
                          enum:
                          - pending
                          - completed
                          - failed
                          example: completed
                          description: Lookup status
                        phone_type:
                          type: string
                          example: mobile
                          description: Line type (e.g. mobile, fixed)
                        carrier:
                          type: string
                          example: Acme Telecom
                          description: Carrier / operator name
                        mcc:
                          type: string
                          example: '310'
                          description: Mobile Country Code
                        mnc:
                          type: string
                          example: '260'
                          description: Mobile Network Code
                        ported:
                          type: boolean
                          description: Whether the number was ported
                        risky:
                          type: boolean
                          description: Whether the destination is flagged risky
                        country:
                          type: string
                          example: US
                          description: Country
                        task_id:
                          type: integer
                          example: 41
                          description: Parent task identifier
                        processed_at:
                          type: string
                          example: '2026-11-03T09:52:41Z'
                          description: Processing completion timestamp
                        created_at:
                          type: string
                          example: '2026-11-03T09:52:41Z'
                          description: Log creation timestamp
                        valid:
                          type: boolean
                          example: true
                          description: Whether the number is valid
                        price:
                          type: string
                          example: '0.07'
                          description: Client price charged for this lookup (USD)
                        error_code:
                          type:
                          - string
                          - 'null'
                          enum:
                          - '000'
                          - '113'
                          - '121'
                          - '199'
                          - null
                          description: 'Normalized lookup error code: 000 — OK, 113 — Internal service error, 121 — Invalid phone number length or format, 199 — Unexpected error. null when no result is available yet.'
                      required:
                      - id
                      - number
                      - status
                      - phone_type
                      - carrier
                      - mcc
                      - mnc
                      - ported
                      - risky
                      - country
                      - task_id
                      - processed_at
                      - created_at
                      - valid
                      - price
                      - error_code
                    description: List of HLR lookup logs
                  pagination:
                    type: object
                    properties:
                      total:
                        type: integer
                        example: 1
                        description: Total number of items
                      total_pages:
                        type: integer
                        example: 1
                        description: Total number of pages
                      current_page:
                        type: integer
                        example: 1
                        description: Current page number
                      per_page:
                        type: integer
                        example: 10
                        description: Items per page
                    required:
                    - total
                    - total_pages
                    - current_page
                    - per_page
                    description: Pagination metadata
                required:
                - logs
                - pagination
              example:
                logs:
                - id: 56
                  number: '12125551234'
                  status: completed
                  phone_type: mobile
                  carrier: Acme Telecom
                  mcc: '310'
                  mnc: '260'
                  ported: false
                  risky: false
                  country: US
                  task_id: 41
                  processed_at: '2026-11-03T09:52:41Z'
                  created_at: '2026-11-03T09:52:41Z'
                  valid: true
                  price: '0.07'
                  error_code: null
                pagination:
                  total: 1
                  total_pages: 1
                  current_page: 1
                  per_page: 10
        '401':
          description: returns unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
              example:
                error: Unauthorized
        '403':
          description: returns forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
              example:
                error: Access to API V2 HLR is forbidden
    servers:
    - url: https://app.didlogic.com
      description: Production
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Authenticate API requests via API key like "Bearer YOUR_TOKEN"
x-refined-from:
- didlogic-com-public-api-openapi.yaml
- didlogic-com-openapi.yml