# Twitter search API - Veezee

Search X (formerly Twitter) by keyword. `type` picks the mode: recent (default) sweeps chronologically and keeps paginating as far as you follow the cursor, popular ranks by engagement, people finds accounts. Advanced operators pass through verbatim: `from:nasa`, `min_faves:100`, quoted phrases, and `since:`/`until:` for time windows.

Each page costs 6 credits, so a deep sweep costs linearly in pages. Results are tweet summaries with engagement counts, ready for [tweet-level metrics](https://veezee.io/tweet-metrics-api) or [profile](https://veezee.io/twitter-profile-api) follow-ups.

## Try it now

No account, no card: mint a free key in one call, then call the endpoint.

```
curl -s -X POST https://api.veezee.io/v1/keys/mint
```

```
curl "https://api.veezee.io/v1/x/search?query=veezee+api" \
  -H "Authorization: Bearer $VEEZEE_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"
```

## Over MCP

Point an MCP client at `https://mcp.veezee.io/x` (streamable-http; `https://mcp.veezee.io/all` serves every platform over one connection) and call `x_search`:

```json
{
  "method": "tools/call",
  "params": {
    "name": "x_search",
    "arguments": {
      "query": "veezee api"
    }
  }
}
```

## Parameters

| Param | Required | Type | Description |
| --- | --- | --- | --- |
| `query` | yes | `string` | Free-text keywords; X advanced operators work, e.g. 'claude code from:AnthropicAI since:2026-06-01'. |
| `type` | no | `string` | recent = chronological deep sweep; popular = top engagement; people = account search (single page). |
| `cursor` | no | `string` | Cursor from a previous page. Not valid with type 'people'. |
| `freshness` | no | `string` | recent (default) serves cached data from the last few hours when available; realtime forces a live fetch for +2 credits (refunded if we fall back to cached data). Trial keys are cached-only and reject realtime with TRIAL_CAP_EXCEEDED; paying upgrades this same key to unlock it. |
| `max_credits` | no | `integer` | Spend ceiling for this one call. The call is rejected (nothing charged) if its quote exceeds this. Only the quote is ever reserved, never this ceiling. |

Returns a `x_search` envelope. Full field list: https://veezee.io/docs/fields#x_search

## Pricing

`x_search` costs 6 credits base per call (surcharges for optional sections, cursor pages, and batches: https://veezee.io/docs/tools/x_search). Every key starts with a free budget of 200 credits per IP per day, no account, no card; past that, credits are $2.00 per 1,000 with no subscription required.

## FAQ

**Is there a date-range parameter?**

No separate parameter: put `since:`/`until:` operators in the query itself.

**How do I search within one account?**

Add `from:handle` to the query.

**How deep does recent go?**

As far as you keep following the cursor; each page is a new 6 credits call.

## Read next

- [x_search: the full reference](https://veezee.io/docs/tools/x_search)
- [Brand monitoring API](https://veezee.io/brand-monitoring-api)
- [X (formerly Twitter) API for AI agents](https://veezee.io/x-api-for-ai-agents)
- [Pricing](https://veezee.io/pricing)
