KPN

KPN Request API

The Request API from KPN — 2 operation(s) for request.

Operations 2

POST /{level} Synchronously get information about a phone number #
POST /advanced/async Asynchronously get information about a phone number

Documentation

📖
Documentation
https://developer.kpn.com/products/kpn-number-verify
📖
Documentation
https://developer.kpn.com/documentation/kpn-number-verify-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/numberverify-kpn
📖
Documentation
https://developer.kpn.com/products/kpn-account-takeover-protection
📖
Documentation
https://developer.kpn.com/documentation/kpn-account-takeover-protection-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/simswap-kpn
📖
Documentation
https://developer.kpn.com/products/kpn-match
📖
Documentation
https://developer.kpn.com/documentation/kpn-match-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/match-kpn
📖
Documentation
https://developer.kpn.com/products/kpn-sms-api
📖
Documentation
https://developer.kpn.com/documentation/kpn-sms-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/sms-kpn
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/sms-inbound
📖
Documentation
https://developer.kpn.com/products/kpn-mobile-services-management-api
📖
Documentation
https://developer.kpn.com/documentation/kpn-mobile-services-management-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/mobileservicesmanagement-kpn
📖
Documentation
https://developer.kpn.com/products/federated-identity-and-access-management
📖
Documentation
https://developer.kpn.com/documentation/fiam-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/fiam-kpn
📖
Documentation
https://developer.kpn.com/products/fiam-eneco-data-products
📖
Documentation
https://developer.kpn.com/documentation/eneco-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/fiam-eneco-data-products
📖
Documentation
https://developer.kpn.com/products/kpn-disturbance-check-api
📖
Documentation
https://developer.kpn.com/documentation/kpn-disturbance-check-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/disturbance-check-kpn
📖
Documentation
https://developer.kpn.com/products/kpn-internet-speed-check-api
📖
Documentation
https://developer.kpn.com/documentation/kpn-internet-speed-check-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/internet-speed-check-kpn
📖
Documentation
https://developer.kpn.com/products/kpn-high-level-design-fttx-api
📖
Documentation
https://developer.kpn.com/documentation/kpn-high-level-design-fttx-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/high-level_design_ftth
📖
Documentation
https://developer.kpn.com/products/kpn-lora-device-management-api
📖
Documentation
https://developer.kpn.com/documentation/kpn-lora-device-management-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/lora-device-management-kpn
📖
Documentation
https://developer.kpn.com/products/kpn-sd-lan-sd-wan-network-view-api
📖
Documentation
https://developer.kpn.com/documentation/kpn-sd-lan-sd-wan-network-view-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/kpn-sd_lan_sd_wan_network_view_api
📖
Documentation
https://developer.kpn.com/products/kpn-servicenow-connect-api
📖
Documentation
https://developer.kpn.com/documentation/kpn-servicenow-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/servicenow-kpn
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/ise-kpn
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/tv-guide-kpn
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/webhook-signing-key-management-kpn
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/webhook-privacy-config-manager
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/wholesale-wba-kpn
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/wholesale-broadband_access_fpi_cip
📖
Documentation
https://developer.kpn.com/products/pollyhelp-knowledge-management-api
📖
Documentation
https://developer.kpn.com/documentation/pollyhelp-knowledge-management-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/knowledge-management-polly.help
📖
Documentation
https://developer.kpn.com/products/xdroid-speech-text-api
📖
Documentation
https://developer.kpn.com/documentation/xdroid-xdroid-speech-text-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/speech-to-text-xdroid
📖
Documentation
https://developer.kpn.com/products/parley-secure-messenger-api
📖
Documentation
https://developer.kpn.com/documentation/parley-chat-and-messaging-api-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/secure-messenger-parley
📖
Documentation
https://developer.kpn.com/products/social-media-chat-and-messaging
📖
Documentation
https://developer.kpn.com/documentation/parley-webcare-parley-documentation-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/socialmediawebcare-tracebuzz
📖
Documentation
https://developer.kpn.com/products/weseedo-weseedo-direct-api
📖
Documentation
https://developer.kpn.com/documentation/weseedo-weseedo-direct-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/weseedo-direct-weseedo
📖
Documentation
https://developer.kpn.com/products/weseedo-weseedo-personal-api
📖
Documentation
https://developer.kpn.com/documentation/weseedo-weseedo-personal-weseedo-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/weseedo-personal-weseedo
📖
Documentation
https://developer.kpn.com/products/vonage-messages-api
📖
Documentation
https://developer.kpn.com/documentation/vonage-messages-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/messages-nexmo
📖
Documentation
https://developer.kpn.com/products/vonage-voice-api
📖
Documentation
https://developer.kpn.com/documentation/vonage-voice-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/voice-nexmo
📖
Documentation
https://developer.kpn.com/products/vonage-phone-numbers-api
📖
Documentation
https://developer.kpn.com/documentation/vonage-phone-numbers-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/phone-numbers-nexmo
📖
Documentation
https://developer.kpn.com/products/vonage-number-insight-api
📖
Documentation
https://developer.kpn.com/documentation/vonage-number-insight-api-documentation
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/number-insight-nexmo
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/sms-nexmo
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/verify-nexmo
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/apidaze-voice-voip-innovations
📖
APIReference
https://app.swaggerhub.com/apis-docs/kpn/registeredemail-registeredemail

Specifications

Other Resources

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/kpn-request-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 email required.

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

OpenAPI Specification

kpn-request-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Number Insight - Vonage Request API
  version: v1.1.1
  termsOfService: https://developer.kpn.com/legal
  contact:
    name: API Support
    email: api_developer@kpn.com
    url: https://developer.kpn.com/support
  description: "Vonage's Number Insight API provides details about the validity, reachability and roaming status of a phone number, as well as giving you details on how to format the number properly in your application. There are three levels of the Number Insight API available:\n   - Basic\n   - Standard\n   - Advanced\n   \n  The advanced API is available asynchronously as well as synchronously.\n\n## [Source view](https://app.swaggerhub.com/apis/kpn/number-insight-nexmo/)<br/> [Documentation view](https://app.swaggerhub.com/apis-docs/kpn/number-insight-nexmo/)\n---\n## [KPN Developer](https://developer.kpn.com/)<br/> [Getting Started](https://developer.kpn.com/getting-started)\n---"
servers:
- url: https://api-prd.kpn.com/communication/nexmo/number-insight
tags:
- name: Request
paths:
  /{level}:
    post:
      summary: Synchronously get information about a phone number
      operationId: NumberInsight
      tags:
      - Request
      description: "**Number Insight Basic**\nYou can use Vonage's Number Insight Basic API to retrieve local and international representations of a phone number by doing semantic checks on the number you submit. This can help you normalise and consistently print numbers in your user interface and gives you information to help you decide if a phone number accept the phone number entered by your user, or ask them to check and correct it.\n\n  Number Insight Basic API is a free synchronous, easy-to-use RESTful web service. For any phone number you can\n  \n   - Retrieve the international and local format.\n   - Know the country where the number is registered.\n \n### Example\n  \n  Request:\n  \n  ```\n  curl -X POST \\\n    https://api-prd.kpn.com/communication/nexmo/number-insight/basic \\\n    -H 'authorization: Bearer ZvV84AtjcXoHU48hA6b5AZljegdy' \\\n    -H 'content-type: application/x-www-form-urlencoded' \\\n    -d 'number=447700900000'\n\n  ```\n  \n  Response:\n  \n  ```\n  {\n      \"status\": 0,\n      \"status_message\": \"Success\",\n      \"request_id\": \"fcb1e9a2-db9c-4ea2-84be-4e60da45e187\",\n      \"international_format_number\": \"447700900000\",\n      \"national_format_number\": \"07700 900000\",\n      \"country_code\": \"GB\",\n      \"country_code_iso3\": \"GBR\",\n      \"country_name\": \"United Kingdom\",\n      \"country_prefix\": \"44\"\n  }\n  \n  ```"
      parameters:
      - in: path
        name: level
        description: The level of request you wish to make.
        required: true
        schema:
          type: string
          enum:
          - basic
          - standard
          - advanced
      responses:
        '200':
          description: OK
          content:
            application:
              schema:
                $ref: '#/components/schemas/niResponseBasic'
        '400':
          description: Bad Request
          content:
            application:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Server Error
          content:
            application:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service Unavailable
          content:
            application:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - OAuth2: []
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                number:
                  type: string
                  pattern: ^[0-9-+\(\)\s]*$
                  description: "The single phone number that you need insight about in national or international format.\n    example: 447700900000"
                country:
                  type: string
                  pattern: '[A-Z]{2}'
                  description: "If a number does not have a country code or is uncertain, set the two-character country code. This code must be in ISO 3166-1 alpha-2 format and in upper case. For example, GB or US. If you set country and number is already in [E.164](https://en.wikipedia.org/wiki/E.164) format, country must match the country code in number.\n  example: GB"
                cnam:
                  type: boolean
                  description: "Indicates if the name of the person who owns the phone number should be looked up and returned in the response. Set to true to receive phone number owner name in the response. This features is available for US numbers only and incurs an additional charge.\n  example: true"
                ip:
                  type: string
                  description: "The IP address of the user. If supplied, we will compare this to the country the user's phone is located in and return an error if it does not match.\n  example: 123.0.0.255"
              required:
              - number
  /advanced/async:
    post:
      summary: Asynchronously get information about a phone number
      tags:
      - Request
      description: "**Number Insight Advanced Async**\nYou can use Vonage's Number Insight Async API to retrieve a user's landline or mobile number, including checking to see that it is registered to an operator. This can help you verify that a phone number is real and give you information on how to format the number.\n\nNumber Insight Advanced Async API is an asynchronous web service that returns data to a webhook. For any phone number you can\n\n- Retrieve the international and local format.\n- Know the country where the number is registered.\n- Line type detection (mobile/landline/virtual number/premium/toll-free)\n- Detect mobile country code (MCC) and mobile network code (MNC)\n- Detect if number is ported\n- Identify caller name (USA only)\n- Identify network when roaming\n- Confirm user's IP address is in same location as their mobile phone\n\nUsers are advised that the Advanced API does not give any information about landlines that is not already given by the Standard API. For number insights about landlines, you should use the Standard API.\n\n ### Example\n  \n  Request:\n  \n  ```\n  curl -X POST \\\n    https://api-prd.kpn.com/communication/nexmo/number-insight/advanced/async \\\n    -H 'authorization: Bearer ZvV84AtjcXoHU48hA6b5AZljegdy' \\\n    -H 'content-type: application/x-www-form-urlencoded' \\\n    -d 'number=31620028461'\n    -d 'callback=https://example.com/callback'\n  \n  ```\n  \n  Response:\n  \n  ```\n  {\n      \"request_id\": \"c510011c-d782-4f49-bfa9-38a2254884e4\",\n      \"number\": \"447700900000\",\n      \"remaining_balance\": \"10.000000\",\n      \"request_price\": \"0.03000000\",\n      \"status\": 0\n  }\n  ```        "
      responses:
        '200':
          description: OK
          content:
            application:
              schema:
                $ref: '#/components/schemas/niResponseAsync'
        '400':
          description: Bad Request
          content:
            application:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Server Error
          content:
            application:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service Unavailable
          content:
            application:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - OAuth2: []
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                number:
                  type: string
                  pattern: ^[0-9-+\(\)\s]*$
                  description: "The single phone number that you need insight about in national or international format.\n    example: 447700900000"
                callback:
                  type: string
                  description: "The callback URL\n  example: https://example.com/callback"
                country:
                  type: string
                  pattern: '[A-Z]{2}'
                  description: "If a number does not have a country code or is uncertain, set the two-character country code. This code must be in ISO 3166-1 alpha-2 format and in upper case. For example, GB or US. If you set country and number is already in [E.164](https://en.wikipedia.org/wiki/E.164) format, country must match the country code in number.\n  example: GB"
                cnam:
                  type: boolean
                  description: "Indicates if the name of the person who owns the phone number should be looked up and returned in the response. Set to true to receive phone number owner name in the response. This features is available for US numbers only and incurs an additional charge.\n  example: true"
                ip:
                  type: string
                  description: "The IP address of the user. If supplied, we will compare this to the country the user's phone is located in and return an error if it does not match.\n  example: 123.0.0.255"
              required:
              - number
              - callback
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        transactionId:
          type: string
          description: transaction id of the the request
          title: Transaction ID
        status:
          type: string
          description: Status
          title: Status
        name:
          type: string
          description: Error name
          title: Error name
        message:
          type: string
          description: Error message
          title: Error message
        info:
          type: string
          description: Additional information about error
          title: Info
    niResponseAsync:
      type: object
      properties:
        request_id:
          type: string
          description: The unique identifier for your request. This is a alphanumeric string up to 40 characters.
          example: aaaaaaaa-bbbb-cccc-dddd-0123456789ab
          maxLength: 40
        number:
          type: string
          description: The `number` in your request
          example: '447700900000'
        remaining_balance:
          type: string
          description: Your account balance in EUR after this request. Not returned with Number Insight Advanced Async API.
          example: '1.23456789'
        request_price:
          type: number
          description: If there is an internal lookup error, the `refund_price` will reflect the lookup price. If `cnam` is requested for a non-US number the `refund_price` will reflect the `cnam` price. If both of these conditions occur, `refund_price` is the sum of the lookup price and `cnam` price.
          example: '0.01500000'
        status:
          $ref: '#/components/schemas/niStatus'
    niStatus:
      type: integer
      example: 0
      enum:
      - 0
      - 1
      - 3
      - 4
      - 5
      - 9
      - 19
      - 43
      - 44
      - 45
      - 999
      description: "Code | Text\n-- | --\n0 | Success - request accepted for delivery by Vonage.\n1 | Busy - you have made more requests in the last second than are permitted by your Vonage account. Please retry.\n3 | Invalid - your request is incomplete and missing some mandatory parameters.\n4 | Invalid credentials - the _api_key_ or _api_secret_ you supplied is either not valid or has been disabled.\n5 | Internal Error - the format of the recipient address is not valid.\n9 | Partner quota exceeded - your Vonage account does not have sufficient credit to process this request.\n\n#### Standard and Advanced only\n\nCode | Text\n-- | --\n19 | Facility Not Allowed - your request makes use of a facility that is not enabled on your account.\n43, 44, 45 | Live mobile lookup not returned. Not all return parameters are available.\n999 | Request unparseable. \n"
    niResponseBasic:
      type: object
      description: Basic
      properties:
        status:
          $ref: '#/components/schemas/niStatus'
        status_message:
          type: string
          description: The status description of your request.
          example: Success
        request_id:
          type: string
          description: The unique identifier for your request. This is a alphanumeric string up to 40 characters.
          example: aaaaaaaa-bbbb-cccc-dddd-0123456789ab
          maxLength: 40
        international_format_number:
          type: string
          description: The `number` in your request in international format.
          example: '447700900000'
        national_format_number:
          type: string
          description: The `number` in your request in the format used by the country the number belongs to.
          example: 07700 900000
        country_code:
          type: string
          description: Two character country code for `number`. This is in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
          example: GB
          pattern: '[A-Z]{2}'
        country_code_iso3:
          type: string
          description: Three character country code for `number`. This is in [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) format.
          example: GBR
          pattern: '[A-Z]{3}'
        country_name:
          type: string
          description: The full name of the country that `number` is registered in.
          example: United Kingdom
        country_prefix:
          type: string
          description: The numeric prefix for the country that `number` is registered in.
          example: '44'
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: https://api-prd.kpn.com/oauth/client_credential/accesstoken?grant_type=client_credentials
externalDocs:
  description: HTTP response headers
  url: https://developer.kpn.com/documentation-response-headers