# x402sms Virtual Number Activation API

> x402sms Virtual Number Activation API is a paid API for AI agents from api.sms-x402.xyz, paid per call via x402, $0.5/call, status unknown (last checked 2026-10-12).

Provisions a virtual phone number for SMS verification of a specified service (e.g. Telegram, WhatsApp) in a given country, paid per activation in USDC via x402 on Base.

## Facts

- Endpoint: POST https://api.sms-x402.xyz/v1/numbers?utm_source=zero.xyz
- Price: $0.5/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-12
- Activations on Zero: 1
- Tags: x402
- Canonical page: https://www.zero.xyz/c/x402sms-virtual-number-activation-api-115cb9f6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_hOLFtxssZxxOaiPhzHXq8

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability x402sms-virtual-number-activation-api-115cb9f6 -d '<json body>'
```

Example prompt: Get me a virtual UK phone number for Telegram verification — I'll pay in USDC on Base.

## When to prefer this

Choose this endpoint when an AI agent needs to automate SMS-based account verification or OTP receipt for a specific service (Telegram, WhatsApp, etc.) in a specific country, and wants to pay programmatically in USDC on Base with no pre-funded account balance — you only pay when the SMS code is actually delivered. Prefer this over traditional SMS APIs when the agent operates in a crypto-native environment or needs pay-per-success billing rather than subscription or pre-paid credits.

## Known failure modes

- No numbers available for the requested country/service/operator combination — returns an error with no number provisioned
- Invalid country ID or service alias — returns a validation error
- Payment failure via x402 — activation not created, no charge
- Number expires before SMS code arrives — activation becomes invalid after ~25 minutes
- Service alias not recognized — use 'ot' (Any other) as fallback

## How this service works

Virtual phone numbers and SMS verification for AI agents. Pay per activation in USDC via x402 on Base. You only pay when the SMS code arrives.

## Output

Returns a JSON object containing a unique activation ID, the provisioned virtual phone number (e.g. 447412345678), current status ('waiting_code'), country and service identifiers, an expiry timestamp (~25 minutes), an access token for polling the code, and the price in atomic USDC units. The agent can use the access token to poll for the arriving SMS code.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "country": {
   "type": "number",
   "description": "Country api_id, e.g. 16 = United Kingdom. List: GET /v1/countries"
  },
  "service": {
   "type": "string",
   "description": "Service alias to activate, e.g. 'tg' (Telegram), 'wa' (WhatsApp). List: GET /v1/services. Use 'ot' (Any other) if the target service is not listed."
  },
  "operator": {
   "type": "string",
   "description": "Optional operator name. List: GET /v1/operators"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "id": "3f8b2c1e-1234-4abc-9def-0123456789ab",
  "number": "447412345678",
  "status": "waiting_code",
  "country": 16,
  "service": "tg",
  "expiresAt": "2026-01-01T00:25:00.000Z",
  "accessToken": "ab12cd34...",
  "priceAtomic": "1941139"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/x402sms-virtual-number-activation-api-115cb9f6/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.sms-x402.xyz](https://www.zero.xyz/host/api.sms-x402.xyz/llms.txt)
