Phone Type Detection
Infer a phone number's line type from numbering-plan data. Returns line-type flags, SMS capability and country where available.
Pay by wallet (x402)
phone-type-detect Example
Example answer
{
"error": "Could not parse phone number.",
"input": "INVALID_TEST_VALUE_12345",
"is_voip": false,
"is_mobile": false,
"phone_type": "unknown",
"is_landline": false,
"sms_capable": false,
"country_code": null
} Inputs
| Field | Type | Required | What it is |
|---|---|---|---|
country_code | string | No | ISO 2-letter country code hint (optional) |
phone_number | string | Yes | Phone number in any format |
Output fields
How reliably each field appears in a successful answer.
| Field | Type | Appears |
|---|---|---|
is_voip | boolean | Always (present in every successful answer) |
is_mobile | boolean | Always (present in every successful answer) |
phone_type | string | Always (present in every successful answer) |
is_landline | boolean | Always (present in every successful answer) |
sms_capable | boolean | Always (present in every successful answer) |
country_code | string | Always (present in every successful answer) |
is_toll_free | — | Always (present in every successful answer) |
is_premium | — | Always (present in every successful answer) |
input | — | Always (present in every successful answer) |
How to call it
The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.
# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "phone-type-detect",
"inputs": {
"phone_number": "+46701234567"
},
"max_price_cents": 2
}' {
"tool": "strale_execute",
"arguments": {
"slug": "phone-type-detect",
"inputs": {
"phone_number": "+46701234567"
},
"max_price_cents": 2
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "phone-type-detect",
inputs: {
"phone_number": "+46701234567"
},
max_price_cents: 2,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="phone-type-detect",
inputs={
"phone_number": "+46701234567",
},
max_price_cents=2,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i 'https://api.strale.io/x402/v2/phone-type-detect?phone_number=%2B46701234567' Limitations
Line type does not confirm service or SMS delivery
Line type and SMS capability are inferred from numbering-plan data. They do not show that the number is assigned or in service, or that it can receive an SMS.
Type detection depends on number range allocation
Phone type is determined by number range allocation data — ported numbers may show the original type
Related tools
- Address Validation €0.03
- Age Check €0.02
- Bank BIC Lookup €0.05
- Bulk Email Validation €0.15
- Business Day Check €0.02
- Company ID Detection €0.05