# Standard endpoints: one URL per job, the cheapest provider behind it

Call the job; FetchAPI picks the cheapest provider that is working today, falls back to the next one if it fails or
answers empty, and returns the same shape whichever provider served it. You pay what that call cost (failed tries are
free). `GET https://fetchapi.co/api/v1` lists them.

| Endpoint | Params | Answer | Typical cost |
|---|---|---|---|
| `GET /api/v1/google/search` | `q`, `country` (US), `limit` (10) | `results[]`: position, title, url, domain, snippet; `related[]` | $0.0005 |
| `GET /api/v1/x/user` | `username` | `user`: id, username, name, bio, followers, following, posts, verified, avatar, location, created_at | $0.00009 |
| `GET /api/v1/x/search` | `q`, `sort` (latest / top), `cursor` | `posts[]`: id, text, created_at, likes, reposts, replies, views, url, author; `next_cursor` | $0.00009 |
| `GET /api/v1/tiktok/user` | `username` | `user`: id, username, name, bio, followers, following, likes, videos, verified, private, avatar | $0.00002 |
| `GET /api/v1/youtube/video` | `id` (or a YouTube URL) | `video`: id, title, url, channel, views, likes, comments, duration_seconds, published_at, category, keywords, description | $0.00001 |

```bash
curl "https://fetchapi.co/api/v1/x/user?username=balajis" -H "x-api-key: $FETCHAPI_KEY"
```

Every answer: `{"status": "success", "data": {...}, "meta": {"job", "attempts", "cost_usd", "ms"}}`.
MCP: tool `get_data {job, params}`. Need a job that isn't here? `POST /api/requests` (see /docs/requests.md).
