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/kore-wireless-diagnostics-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: 3.2.0
info:
title: Connectivity Diagnostics API
description: Connectivity APIs help users manage their connectivity through APIs.
version: 1.0.0
servers:
- url: https://api.korewireless.com/connectivity
description: Production
security:
- {}
- Auth: []
- api_key: []
tags:
- name: Diagnostics
description: ''
paths:
/v1/accounts/{account-id}/diagnostics:
get:
tags:
- Diagnostics
summary: Lists All Requests
description: Get all requests made for an account
operationId: getDiagnosticsRequestStatusByAccountId
parameters:
- name: account-id
in: path
description: The unique identifier of your account
required: true
style: simple
explode: false
schema:
type: string
- name: page
in: query
description: page number
required: false
style: form
explode: true
schema:
type: integer
- name: take
in: query
description: number of records
required: false
style: form
explode: true
schema:
type: integer
- name: subscription-id
in: query
required: false
style: form
explode: true
schema:
type: string
- name: iccid
in: query
description: The ICCID of the subscription
required: false
style: form
explode: true
schema:
type: string
- name: msisdn
in: query
description: The phone number attached to the subscription
required: false
style: form
explode: true
schema:
type: string
responses:
'200':
description: 200 response
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
total-records:
type: integer
total-pages:
type: integer
page:
type: integer
records:
type: array
items:
type: object
properties:
diagnostic-request-id:
type: string
number-of-subscriptions:
type: integer
service-type:
type: string
date-created:
type: string
format: dateTime
request-type:
type: string
date-completed:
type: string
format: dateTime
source:
type: string
requested-by:
type: string
account-id:
type: string
request-status:
type: string
example: null
$$ref: '#/components/schemas/Diagnostic_Requests_records'
$$ref: '#/components/schemas/DiagnosticRequests'
'400':
description: Bad Request
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
message:
type: string
$$ref: '#/components/schemas/xxx_Error'
'401':
description: Unauthorised User
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
required:
- error
- message
type: object
properties:
error:
type: integer
format: int32
message:
type: string
$$ref: '#/components/schemas/Error'
'403':
description: Forbidden
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
message:
type: string
$$ref: '#/components/schemas/xxx_Error'
'404':
description: The Specified Resource Was Not Found
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
INFO:
type: string
$$ref: '#/components/schemas/NotFound_Error'
'409':
description: Request Conflict
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
status:
type: string
errorMessage:
type: string
$$ref: '#/components/schemas/400_Error'
'500':
description: Server Error
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
message:
type: string
$$ref: '#/components/schemas/xxx_Error'
'502':
description: Bad Gateway
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
message:
type: string
$$ref: '#/components/schemas/xxx_Error'
'503':
description: Service Unavailable
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
message:
type: string
$$ref: '#/components/schemas/xxx_Error'
'504':
description: Gateway Timeout
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
message:
type: string
$$ref: '#/components/schemas/xxx_Error'
x-code-samples:
- lang: cURL
label: cURL
source: 'curl --location --globoff ''{{baseUrl}}/v1/accounts/{account-id}/diagnostics?page=<integer>&take=<integer>&subscription-id=<string>&iccid=<string>&msisdn=<string>'' \
--header ''Accept: application/json'''
- lang: js
label: NodeJs
source: "var request = require('request');\nvar options = {\n 'method': 'GET',\n 'url': '{{baseUrl}}/v1/accounts/{account-id}/diagnostics?page=<integer>&take=<integer>&subscription-id=<string>&iccid=<string>&msisdn=<string>',\n 'headers': {\n 'Accept': 'application/json'\n }\n};\nrequest(options, function (error, response) {\n if (error) throw new Error(error);\n console.log(response.body);\n});\n"
- lang: java
label: Java
source: "OkHttpClient client = new OkHttpClient().newBuilder()\n .build();\nMediaType mediaType = MediaType.parse(\"text/plain\");\nRequestBody body = RequestBody.create(mediaType, \"\");\nRequest request = new Request.Builder()\n .url(\"{{baseUrl}}/v1/accounts/{account-id}/diagnostics?page=<integer>&take=<integer>&subscription-id=<string>&iccid=<string>&msisdn=<string>\")\n .method(\"GET\", body)\n .addHeader(\"Accept\", \"application/json\")\n .build();\nResponse response = client.newCall(request).execute();"
- lang: cs
label: C#
source: "var options = new RestClientOptions(\"{{baseUrl}}/v1/accounts/{account-id}/diagnostics?page=<integer>&take=<integer>&subscription-id=<string>&iccid=<string>&msisdn=<string>\")\n{\n MaxTimeout = -1,\n};\nvar client = new RestClient(options);\nvar request = new RestRequest(\"\", Method.Get);\nrequest.AddHeader(\"Accept\", \"application/json\");\nRestResponse response = await client.ExecuteAsync(request);\nConsole.WriteLine(response.Content);"
- lang: PHP
label: Php
source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => '{{baseUrl}}/v1/accounts/{account-id}/diagnostics?page=<integer>&take=<integer>&subscription-id=<string>&iccid=<string>&msisdn=<string>',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'GET',\n CURLOPT_HTTPHEADER => array(\n 'Authorization: Bearer <YOUR BEARER TOKEN>',\n 'x-api-key: <YOUR API KEY>')\n CURLOPT_HTTPHEADER => array(\n 'Accept: application/json'\n ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n"
- lang: py
label: Python
source: "import requests\n\nurl = \"{{baseUrl}}/v1/accounts/{account-id}/diagnostics?page=<integer>&take=<integer>&subscription-id=<string>&iccid=<string>&msisdn=<string>\"\n\npayload = {}\nheaders = {\n 'Accept': 'application/json'\n}\n\nresponse = requests.request(\"GET\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
__originalOperationId: getDiagnosticsRequestStatusByAccountId
security:
- {}
- Auth: []
- api_key: []
post:
tags:
- Diagnostics
summary: Create A Diagnostic Request
description: Create a diagnostics request for an account
operationId: CreateDiagnosticRequest
parameters:
- name: account-id
in: path
description: The unique identifier of your account
required: true
style: simple
explode: false
schema:
type: string
requestBody:
description: create request body
content:
application/json:
schema:
type: object
properties:
cancel-device-location:
type: object
required:
- subscription
properties:
subscription:
description: Only one of the properties is expected in the subscription
properties:
subscription-id:
type: string
description: The subscription-id of the SIM
iccid:
type: string
description: The ICCID of the subscription
msisdn:
type: string
description: The phone number attached to the subscription
$$ref: '#/components/schemas/InputCreateDiagnosticsRequests_subscriptions'
$$ref: '#/components/schemas/InputCreateDiagnosticsRequests'
example: null
$$ref: '#/components/schemas/accountid_diagnosticrequests_body'
required: true
responses:
'200':
description: 200 response
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
status:
type: string
data:
type: object
properties:
diagnostics-request-id:
type: string
message:
type: string
example: null
$$ref: '#/components/schemas/DiagnosticCreateRequest_data'
$$ref: '#/components/schemas/DiagnosticCreateRequest'
'400':
description: Bad Request
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
status:
type: string
errorMessage:
type: string
$$ref: '#/components/schemas/400_Error'
'401':
description: Unauthorised User
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
required:
- error
- message
type: object
properties:
error:
type: integer
format: int32
message:
type: string
$$ref: '#/components/schemas/Error'
'403':
description: Forbidden
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
message:
type: string
$$ref: '#/components/schemas/xxx_Error'
'404':
description: The Specified Resource Was Not Found
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
INFO:
type: string
$$ref: '#/components/schemas/NotFound_Error'
'409':
description: Request Conflict
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
status:
type: string
errorMessage:
type: string
$$ref: '#/components/schemas/400_Error'
'500':
description: Server Error
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
message:
type: string
$$ref: '#/components/schemas/xxx_Error'
'502':
description: Bad Gateway
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
message:
type: string
$$ref: '#/components/schemas/xxx_Error'
'503':
description: Service Unavailable
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
message:
type: string
$$ref: '#/components/schemas/xxx_Error'
'504':
description: Gateway Timeout
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Credentials:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Headers:
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: object
properties:
message:
type: string
$$ref: '#/components/schemas/xxx_Error'
x-code-samples:
- lang: cURL
label: cURL
source: "curl --location --globoff '{{baseUrl}}/v1/accounts/{account-id}/diagnostics' \\\n--header 'Content-Type: application/json'\n--header 'Authorization: Bearer <YOUR BEARER TOKEN>' \n--header 'x-api-key: <YOUR API KEY>'\n--header 'Accept: application/json' \\\n--data '{\n \"cancel-device-location\": {\n \"subscription\": {\n \"subscription-id\": \"<string>\",\n \"iccid\": \"<string>\",\n \"msisdn\": \"<string>\"\n }\n }\n}'"
- lang: js
label: NodeJs
source: "var request = require('request');\nvar options = {\n 'method': 'POST',\n 'url': '{{baseUrl}}/v1/accounts/{account-id}/diagnostics',\n 'headers': {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n },\n body: JSON.stringify({\n \"cancel-device-location\": {\n \"subscription\": {\n \"subscription-id\": \"<string>\",\n \"iccid\": \"<string>\",\n \"msisdn\": \"<string>\"\n }\n }\n })\n\n};\nrequest(options, function (error, response) {\n if (error) throw new Error(error);\n console.log(response.body);\n});\n"
- lang: java
label: Java
source: "OkHttpClient client = new OkHttpClient().newBuilder()\n .build();\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\n \\\"cancel-device-location\\\": {\\n \\\"subscription\\\": {\\n \\\"subscription-id\\\": \\\"<string>\\\",\\n \\\"iccid\\\": \\\"<string>\\\",\\n \\\"msisdn\\\": \\\"<string>\\\"\\n }\\n }\\n}\");\nRequest request = new Request.Builder()\n .url(\"{{baseUrl}}/v1/accounts/{account-id}/diagnostics\")\n .method(\"POST\", body)\n .addHeader(\"Authorization\", \"Bearer <YOUR BEARER TOKEN>\")\n .addHeader(\"x-api-key\", \"<YOUR API KEY>\")\n .addHeader(\"Content-Type\", \"application/json\")\n .addHeader(\"Accept\", \"application/json\")\n .build();\nResponse response = client.newCall(request).execute();"
- lang: cs
label: C#
source: "var options = new RestClientOptions(\"{{baseUrl}}/v1/accounts/{account-id}/diagnostics\")\n{\n MaxTimeout = -1,\n};\nvar client = new RestClient(options);\nvar request = new RestRequest(\"\", Method.Post);\nrequest.AddHeader(\"Content-Type\", \"application/json\");\nrequest.AddHeader(\"Accept\", \"application/json\");\nvar body = @\"{\" + \"\\n\" +\n@\" \"\"cancel-device-location\"\": {\" + \"\\n\" +\n@\" \"\"subscription\"\": {\" + \"\\n\" +\n@\" \"\"subscription-id\"\": \"\"<string>\"\",\" + \"\\n\" +\n@\" \"\"iccid\"\": \"\"<string>\"\",\" + \"\\n\" +\n@\" \"\"msisdn\"\": \"\"<string>\"\"\" + \"\\n\" +\n@\" }\" + \"\\n\" +\n@\" }\" + \"\\n\" +\n@\"}\";\nrequest.AddStringBody(body, DataFormat.Json);\nRestResponse response = await client.ExecuteAsync(request);\nConsole.WriteLine(response.Content);"
- lang: PHP
label: Php
source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => '{{baseUrl}}/v1/accounts/{account-id}/diagnostics',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'POST',\n CURLOPT_HTTPHEADER => array(\n 'Content-Type: application/json',\n 'Authorization: Bearer <YOUR BEARER TOKEN>',\n 'x-api-key: <YOUR API KEY>'),\n CURLOPT_POSTFIELDS =>'{\n \"cancel-device-location\": {\n \"subscription\": {\n \"subscription-id\": \"<string>\",\n \"iccid\": \"<string>\",\n \"msisdn\": \"<string>\"\n }\n }\n}',\n CURLOPT_HTTPHEADER => array(\n 'Content-Type: application/json',\n 'Accept: application/json'\n ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n"
- lang: py
label: Python
source: "import requests\nimport json\n\nurl = \"{{baseUrl}}/v1/accounts/{account-id}/diagnostics\"\n\npayload = json.dumps({\n \"cancel-device-location\": {\n \"subscription\": {\n \"subscription-id\": \"<string>\",\n \"iccid\": \"<string>\",\n \"msisdn\": \"<string>\"\n }\n }\n})\nheaders = {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
__originalOperationId: CreateDiagnosticRequest
security:
- {}
- Auth: []
- api_key: []
/v1/accounts/{account-id}/diagnostics/{diagnostics-request-id}:
get:
tags:
- Diagnostics
summary: Finds Request Status By Diagnostics Request Id
description: Get details of a specific request made
operationId: getRequestStatusByDiagnosticsRequestId
parameters:
- name: account-id
in: path
description: The unique identifier of your account
required: true
style: simple
explode: false
schema:
type: string
- name: diagnostics-request-id
in: path
description: ''
required: true
style: simple
explode: false
schema:
type: string
responses:
'200':
description: 200 response
headers:
Access-Control-Allow-Origin:
style: simple
explode: false
schema:
type: string
Access-Control-Allow-Methods:
# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kore-wireless/refs/heads/main/openapi/kore-wireless-diagnostics-api-openapi.yml