# PayToll Twitter User Profile Lookup

> PayToll Twitter User Profile Lookup is a paid API for AI agents from api.paytoll.io, paid per call via x402, $0.02/call, status down (last checked 2026-10-12, last successful call 2026-04-15).

Fetches a Twitter/X user's public profile and metadata (followers, bio, metrics) by username or user ID as a paid API call.

## Facts

- Endpoint: POST https://api.paytoll.io/v1/twitter/user?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: down
- Last checked: 2026-10-12
- Last successful call: 2026-04-15
- Success rate: 55% of calls made through Zero
- Rating: 5.0 / 5 from 1 review
- Activations on Zero: 11
- Tags: x402
- Canonical page: https://www.zero.xyz/c/api-paytoll-io-2aa1fa9c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_IZ8rUtGbgKLgFB6vkuYQo

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 api-paytoll-io-2aa1fa9c -d '<json body>'
```

Example prompt: Can you look up the Twitter profile for the username 'elonmusk' and tell me their follower count, bio, and profile image?

## When to prefer this

Use this endpoint when you need structured Twitter/X public profile metadata (follower counts, bio, profile image) for a known username or user ID, especially in agent workflows where micropayment-based access (USDC on Base) is acceptable and no OAuth token is available. Prefer over scraping or full Twitter API integration when cost per call is acceptable at $0.02 and only public data is needed.

## Known failure modes

- User not found: invalid or suspended username/ID returns an error
- Invalid input: providing both username and userId simultaneously
- Invalid username format: username doesn't match pattern ^[A-Za-z0-9_]{1,15}$
- Invalid userId format: userId doesn't match numeric pattern ^[0-9]+$
- Payment failure: insufficient USDC balance or x402 payment rejected
- Rate limiting: too many requests in a short period
- Account withheld in certain countries: partial data returned with withheld country codes

## How this service works

Payment required: $0.02

## Output

Returns a user object containing the Twitter user's ID, display name, username, bio description, profile image URL, withheld country codes, and public metrics including follower count, following count, tweet count, like count, media count, and listed count.

## Example request

```json
{
 "username": "twitter"
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "userId": {
   "type": "string",
   "pattern": "^[0-9]+$",
   "description": "Twitter user ID. Provide username OR userId, not both."
  },
  "username": {
   "type": "string",
   "pattern": "^[A-Za-z0-9_]{1,15}$",
   "description": "Twitter username (without @). Provide username OR userId, not both."
  },
  "userFields": {
   "type": "array",
   "items": {
    "enum": [
     "id",
     "name",
     "username",
     "description",
     "public_metrics",
     "profile_image_url",
     "verified",
     "created_at",
     "location",
     "url"
    ],
    "type": "string"
   },
   "description": "User fields to return. Defaults to: id, name, username, description, public_metrics, profile_image_url"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/api-paytoll-io-2aa1fa9c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.paytoll.io](https://www.zero.xyz/host/api.paytoll.io/llms.txt)
