Fetch docs
Fetch is an AI-first API client. Everything you make lives in your organization: workspaces, collections, folders, requests, environments, specs, mocks and monitors. Fetch is free; this page covers what you need to get going.
Getting started
- Create an account with a passkey (or GitHub/Google when offered). Save the recovery codes you're shown once.
- Open the app. Install it from your browser's menu (Install Fetch) to get its own window and offline start.
- Create a collection in the sidebar, add a request, type a URL and press ⌘/Ctrl + Enter.
- Create an environment for values like
{{baseUrl}}and pick it at the top right.
Invite teammates with an invite link (Fetch sends no email during the beta).
Where requests run
| Mode | Use it for | Notes |
|---|---|---|
| Browser | Public APIs that allow CORS | Fastest. Only CORS-exposed headers are visible; cookies are hidden. |
| Agent | localhost, private networks, mTLS, proxies, HTTP/3, databases, stdio MCP | Runs on your computer. Nothing counts against cloud caps. |
| Cloud | Public APIs without CORS | Runs on Fetch's executor; public internet only; counts toward the monthly cloud cap. |
Auto (the default) uses the agent for localhost and private hosts when it's paired, the browser for APIs known to allow it, then the agent, then the cloud.
The Fetch Agent
The agent is the fetch command-line tool running on your computer. It sends requests the browser can't (localhost, your LAN, client certificates, proxies), keeps vault secrets in your OS keychain, launches stdio MCP servers and proxies AI providers that don't allow browser calls. It listens only on 127.0.0.1:47823.
Download fetch for macOS, Linux or Windows, or install it from a terminal:curl -fsSL https://fetch.nightroll.app/install.sh | sh (macOS, Linux) orirm https://fetch.nightroll.app/install.ps1 | iex (Windows PowerShell).
fetch agent # start it (keep it running)
fetch agent pair # prints a 6-digit codeIn the app, open Agent from the send menu or the command palette (⌘K → "Pair the Fetch Agent") and enter the code. The pairing token stays on this device.
The CLI
The same fetch program (see Download):
fetch login # sign in from the terminal
fetch run <collection> -e <env> # run a collection; JUnit, JSON, HTML and CTRF reports for CI
fetch mock <collection> # serve a collection's examples locally
fetch runner --token <token> # a self-hosted runner for your org
fetch sync # mirror a workspace to a folder or Git repo
fetch mcp # Fetch's MCP server over stdiofetch run also runs Postman v3 collections, so you can switch CI before switching people.
MCP setup
Fetch is a remote MCP server at https://fetch.nightroll.app/mcp (Streamable HTTP; sign-in with OAuth 2.1 in your browser). Tools are grouped in toolsets: core, authoring, testing, docs-mocks and admin. Destructive tools ask for confirmation.
Claude (claude.ai and Claude Desktop)
Settings → Connectors → Add custom connector, name it Fetch and paste https://fetch.nightroll.app/mcp.
Claude Code
claude mcp add --transport http fetch https://fetch.nightroll.app/mcpChatGPT
Settings → Apps & Connectors → enable developer mode → Create, then use https://fetch.nightroll.app/mcp with OAuth.
Cursor
// ~/.cursor/mcp.json
{ "mcpServers": { "fetch": { "url": "https://fetch.nightroll.app/mcp" } } }VS Code (Copilot agent mode)
// .vscode/mcp.json
{ "servers": { "fetch": { "type": "http", "url": "https://fetch.nightroll.app/mcp" } } }Other clients, and stdio
Any client that speaks Streamable HTTP can use the URL above. For clients that only launch local processes, usefetch mcp (stdio, through the agent). You can also publish a collection as its own hosted MCP server.
Bring your own AI key
The in-app assistant uses your own key for Anthropic, OpenAI, OpenRouter or any OpenAI-compatible endpoint. Keys stay on your device; calls go straight from your browser (or through the agent for providers that don't allow browser calls). The assistant uses the same commands as the API and MCP server, shows a diff and asks before it changes anything.
Variables and secrets
Use {{name}} anywhere in a request. Scopes, narrowest first: local, data (collection runs), environment, collection, global. Dynamic values like {{$guid}}, {{$timestamp}} and {{$randomEmail}} work as in Postman.
- Default: stored and synced as typed.
- Secret: encrypted at rest, redacted from history, logs and MCP output.
- Vault: the value never leaves your device; only the name syncs.
- External: resolved at send time from 1Password, HashiCorp Vault, AWS, Azure, GCP or Bitwarden.
Scripts and tests
Pre-request and post-response scripts run on QuickJS with Postman's pm.* API and Fetch's typed fx.* API, plus chai, lodash, crypto-js, moment, uuid, ajv, tv4, xml2js, cheerio and csv-parse. No-code assertions cover status, headers, JSON paths, time and size. Collection-level and folder-level scripts run around every request inside them.
Sync and offline
The app keeps a full copy of your organization in your browser (SQLite on OPFS). Every edit is applied locally first, and waits in an outbox. The app syncs once when it opens; after that, press Sync at the top to send your changes and get your teammates'. Changes merge per field (the most recent edit to each field wins), and work offline until you sync again. Your edits leave the outbox once the server has stored them.
Importing from Postman
- In Postman, export the collection (Collection v2.1) and your environments, or the whole workspace.
- In Fetch, open the command palette (⌘K) and run Import with the file contents.
Fetch also imports Postman v2.0 and v3 YAML, Insomnia, Bruno and OpenCollection, Hoppscotch, Thunder Client, OpenAPI 3.x, Swagger 2.0, HAR, WSDL, GraphQL and cURL. Scripts using pm.* run unchanged in almost every case.
Limits
| What | Limit |
|---|---|
| Cloud requests | 10,000 per org per month; 30 per minute and 2 at a time per org |
| Hosted mock and MCP server calls | 100,000 per org per month; 10 per second per endpoint |
| Storage | 1 GB per org |
| Cloud responses | 10 MB and 30 seconds per request |
| API and sync | 600 calls per minute per user |
| MCP tool calls | 120 per minute |
| Monitors | Every 15 minutes at most |
| Organizations | 3 per account |
| Trash | Kept 30 days |
Monthly caps are hard stops during the beta (there's no billing yet). Requests sent from your browser or the agent don't count toward the cloud cap.
Keyboard shortcuts
| Send | ⌘/Ctrl Enter |
| Save | ⌘/Ctrl S |
| Command palette | ⌘/Ctrl K |
| New request | Alt N |
| Close tab | Alt W |
| Toggle sidebar | ⌘/Ctrl B |
| All shortcuts | ? |