# StablePhone iMessage/FaceTime Lookup

> StablePhone iMessage/FaceTime Lookup is a paid API for AI agents from StablePhone at stablephone.dev, paid per call via MPP or x402, $0.05/call, status unknown (last checked 2026-10-10).

Check whether a US phone number is registered for iMessage or FaceTime, returning a polling token for async results.

## Facts

- Endpoint: POST https://stablephone.dev/api/lookup?utm_source=zero.xyz
- Price: $0.05/call
- Payment: MPP, x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Provider: StablePhone
- Docs: https://stablephone.dev
- Website: https://stablephone.dev
- Tags: phone, call, voice, ai-call, imessage, ai, social
- Canonical page: https://www.zero.xyz/c/stablephone-lookup-990b137c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_fqYNp1qwWANBri8uStpHG

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 stablephone-lookup-990b137c -d '<json body>'
```

Example prompt: Can you check if +12125551234 has iMessage or FaceTime enabled?

## When to prefer this

Use this endpoint when you need to determine whether a specific US phone number supports iMessage or FaceTime before deciding on a communication channel. It is the only endpoint to use for Apple messaging capability detection in the StablePhone ecosystem. Prefer this over manual outreach or SMS-fallback guesswork when building communication automation pipelines.

## Known failure modes

- Invalid phone number format (must be E.164 US format +1XXXXXXXXXX) returns a validation error
- Payment not completed or insufficient USDC balance returns 402 Payment Required
- Phone number outside US (+1) format is rejected by schema validation
- Token expiry — the returned JWT has a limited validity window; polling must happen before expiry
- Network timeout on async lookup if carrier or Apple registry is slow to respond

## How this service works

Check if a phone number has iMessage/FaceTime ($0.05 via x402). Returns a token to poll for async results.

## Output

Returns a JSON object containing a single `token` string (a JWT) that the caller must use to poll the separate Status endpoint for the actual iMessage/FaceTime lookup result. The token encodes the request ID, phone number, and expiry.

## Example request

```json
{
 "phone_number": "+12025551234"
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "phone_number"
 ],
 "properties": {
  "phone_number": {
   "type": "string",
   "pattern": "^\\+1\\d{10}$"
  }
 },
 "additionalProperties": false
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "token"
 ],
 "properties": {
  "token": {
   "type": "string"
  }
 },
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/stablephone-lookup-990b137c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from stablephone.dev](https://www.zero.xyz/host/stablephone.dev/llms.txt)
