Auto API
SUPPORT · v1.7.0

Help, troubleshooting, and answers for Auto API.

Auto API is a Chrome side-panel extension that captures every API call your app makes, generates runnable test code in eight frameworks, and runs the tests right here in the browser. If something's not working — or you're just getting started — this is the page that explains it.

All systems operational Latest release · v1.7.0 MV3 · Side panel
GET /quick-start

From install to first export in 60 seconds.

Four steps. No accounts, no setup, no config files. Everything happens locally in your browser.

01

Pin Auto API to your toolbar

After install, click the puzzle icon at the top-right of Chrome and press the pin next to Auto API. The icon stays visible so the side panel is one click away.

02

Open the side panel and click Start

Click the Auto API toolbar icon to open the side panel, then click the gradient Start button. It turns red and starts pulsing — capture is live.

03

Browse your app, then click Stop

Use your app the way a tester would. Every fetch and XMLHttpRequest is recorded with full headers, bodies, and response. Click Stop when you're done — a suite is auto-saved.

04

Export the project or run the suite

Open Health Check, pick a format (pytest, RestAssured, Playwright), and click Download .zip for a complete runnable project — or switch to the Run tab to execute every request right here in the panel.

GET /faq

Frequently asked questions.

Click any question to expand. Don't see your question? Get in touch.

How does Auto API capture network requests?

Two rails working together. The primary path attaches to the active tab via the Chrome DevTools Protocol (the chrome.debugger API) and listens for Network.requestWillBeSent + Network.responseReceived events. That gives Auto API access to every fetch and XMLHttpRequest with full headers and bodies, including responses.

The fallback path is a page-world script injected via chrome.scripting that hooks window.fetch and the XHR prototype. This catches edge cases CDP misses — for example, requests dispatched from service workers, or page contexts where CDP attachment is restricted.

Both rails feed the same in-memory store, deduplicated by request ID. You don't see duplicate rows even when both pick up the same call.

Does Auto API send my data anywhere?

No. Every captured request, response body, header, and saved suite lives in your browser's own IndexedDB store (via Dexie). Nothing is sent to a server, no analytics, no telemetry, no remote logging. The extension has no network hosts allowlisted — you can verify this in manifest.json.

When you click Clear, the local store is wiped. When you uninstall the extension, Chrome deletes the IndexedDB store with it. There's no cloud component.

Nothing is being captured — what's wrong?

Three things to check, in order:

  • The Start button should be showing as red Stop with a pulsing dot. If it still says Start, click it.
  • Refresh the target tab after clicking Start. The page-world interceptor only hooks fetch and XHR at script-injection time; requests dispatched before injection are missed.
  • If you have Chrome DevTools open on the same tab, only one client can attach via CDP at a time. Close DevTools or use a different tab.

Restricted pages (chrome://*, the Chrome Web Store, other extensions' pages) don't allow CDP attachment by design — Auto API can't capture there.

What's the difference between Export and Run?

Export generates a complete runnable project bundle — test_*.py + conftest.py + requirements.txt + .env.example + README.md for pytest, or the equivalent Maven / Node project layout for RestAssured / Playwright. You download the .zip, drop it in your repo, and it runs in CI.

Run executes every captured request right inside the extension, sequentially, through the same engine. Each row shows pass / fail against the originally captured status code. It's a fast smoke test — "do my captured flows still work?" — without ever leaving the panel.

My exported test fails with 401 / 403 when I run it. Why?

By far the most common cause: the Authorization bearer token captured during recording has expired. Auto API extracts auth tokens into a typed env var (AUTH_TOKEN) precisely for this — open .env in the exported project, drop in a fresh token, and re-run.

Other tokens follow the same pattern: API_KEY, CSRF_TOKEN, ACCESS_TOKEN, SESSION_ID. All live in .env; none are hard-coded in the test file.

Can I capture only specific requests?

Two approaches:

  • Filter while capturing: use the search bar to narrow by URL, method, or GraphQL op name. Use the category sidebar to scope to a class of requests (Auth, Users, Orders, etc.). Toggle Show noise off to hide static-asset requests, beacons, and similar low-value traffic.
  • Capture everything, export a subset: tick the checkboxes next to the requests you want, click Export N in the selection toolbar, and choose a format. The bundle contains only the requests you selected, in capture order.
Can I paste a cURL command and get test code?

Yes — click cURL in the top bar. The parser handles every flavor:

  • Chrome DevTools "Copy as cURL" (backslash continuations, --compressed)
  • Postman "Copy → cURL" (--location, multi-line --data JSON)
  • Hand-written one-liners with -X, -H, -d
  • -u user:pass becomes a proper Authorization: Basic … header
  • Body Content-Type is sniffed from shape if not set

Once parsed, the same Export menu and Run flow that work on captured requests work on the pasted one.

Does Auto API work on every site?

Most. The exceptions are sites Chrome itself protects from extensions:

  • chrome://* and the Chrome Web Store
  • Other extensions' background and options pages
  • Pages where another DevTools client is already attached (close DevTools to free the slot)
  • Some sandboxed iframes

Everywhere else — your staging, your prod, third-party APIs, GraphQL endpoints, internal tools — works the same way.

Where is my captured data stored?

In your browser's IndexedDB, scoped to the extension. The schema has four tables: current (the active capture), sessions (capture metadata), suites (auto-saved test suites), and settings (your preferences).

Clicking Clear empties the current and sessions tables. Deleting an individual suite removes it from the suites table. Uninstalling the extension removes the entire store.

Why does Auto API need the "debugger" permission?

It's the only way to listen for the network requests your page makes at a level that gives you full headers and full response bodies. The same permission powers Chrome DevTools itself.

When the extension is attached, Chrome shows a yellow infobar at the top of the tab — "Auto API started debugging this browser". That's Chrome being transparent about an extension having that capability. The bar disappears as soon as you click Stop or close the tab.

The permission is only used to attach to the tab you're capturing in, and never sends data anywhere. Full permission list.

Can I edit the generated test before exporting?

Auto API regenerates the bundle every time you switch format or change the active suite, so direct in-extension editing isn't supported — your edits would be lost on the next regeneration. Instead, download the .zip and edit the files in your own editor. They're plain Python / Java / TypeScript with no tool-specific markup.

Can I run a single captured request, not the whole suite?

Yes — click any captured request to focus it, then open the Replay tab. You can edit method, URL, headers, and body before sending, then click Send to fire just that one request. The response shows up in the same panel, with headers and body fully inspectable.

POST /troubleshooting

Common symptoms — and how to fix them.

Most issues come from one of these five causes. If yours isn't listed, open a ticket and we'll add it.

Symptom Likely cause Fix
Side panel won't open Toolbar icon not pinned Click the puzzle icon at the top-right of Chrome, then click the pin next to Auto API.
List stays empty after clicking Start Page loaded before capture started, or DevTools is open Refresh the tab after Start; close any open DevTools window on the same tab.
Chrome shows "Auto API started debugging this browser" Expected — the debugger permission triggers this infobar No action needed. The bar disappears when you click Stop or close the tab.
Run shows every step failing with 401 / 403 Captured auth token has expired For the exported suite, update .env with a fresh AUTH_TOKEN. For in-extension Run, re-capture the login flow.
Run shows steps timing out API endpoint slow or unreachable Click Stop to cancel. Each step has a 30s timeout; check the failing request individually in Replay to inspect the error.
cURL paste shows "No URL found" Command was truncated mid-paste, or the URL is missing Make sure the command includes the URL (with quotes if it has special characters) and starts with curl.
Generated pytest test_*.py says "ModuleNotFoundError" Dependencies not installed in the export project In the extracted folder, run pip install -r requirements.txt, then pytest -v.
Exported Maven project won't build Java 17+ not available, or no Maven 3.8+ on path Install Maven and a JDK 17+. Then mvn test from the extracted folder.
GET /permissions

What Auto API can and can't do.

Each permission in manifest.json, what it's actually used for, and what it doesn't enable.

debugger
Attach to the active tab via the Chrome DevTools Protocol to listen for Network.* events. Powers the primary capture rail. Triggers Chrome's yellow "Auto API started debugging this browser" infobar (a built-in transparency feature — not an error). Only used while capture is active.
scripting
Inject the page-world fetch / XHR interceptor as a fallback for cases CDP can't see (service-worker dispatches, certain edge cases). The injected script only forwards captured calls to the extension's background; it doesn't read DOM, cookies, or storage.
sidePanel
Open the side-panel UI when the toolbar icon is clicked. This is the only UI surface Auto API uses — no popups, no overlays, no new tabs.
activeTab
Reference the currently active tab for capture targeting and the page URL displayed in the side panel header. Does not grant cross-tab access.
storage
Persist your preferences (theme, capture toggles, noise filter state) across sessions via chrome.storage.local.
host_permissions: <all_urls>
Required so capture works on every site you'd want to test against — your staging, your prod, third-party APIs. The extension itself never makes outbound network requests to any host. The host permission is only used to attach the debugger and inject the interceptor into the tab you've opened.
GET /privacy

Your data never leaves your browser.

Auto API is designed to be auditable. Five concrete statements:

Captured requests are stored locally. Everything you record lives in your browser's IndexedDB. Nothing is uploaded, mirrored, or backed up to any external system.

No telemetry, no analytics, no remote logging. The extension makes zero outbound network requests of its own. You can verify this in the manifest — there are no fetch calls to any external host in the background or side-panel code.

No account, no signup, no email required. The extension works fully offline. You don't tell us anything about yourself; we have nothing to know.

Auth tokens are extracted, not shared. When exporting a suite, Auto API extracts bearer tokens, API keys, and CSRF tokens into environment variables. The captured value appears as a comment in .env.example so you can see what shape to expect, never as a default. Secrets stay out of version control by construction.

Uninstalling wipes everything. Chrome deletes the extension's IndexedDB store and chrome.storage entries on uninstall. Nothing persists on your machine.

POST /contact

Get in touch.

The fastest way to a fix is a reproducible bug report. The fastest way to a feature is a concrete use case.