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.
From install to first export in 60 seconds.
Four steps. No accounts, no setup, no config files. Everything happens locally in your browser.
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.
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.
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.
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.
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
fetchand 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--dataJSON) - Hand-written one-liners with
-X,-H,-d -u user:passbecomes a properAuthorization: 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.
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. |
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.
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.
chrome.storage.local.
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.
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.
For private bug reports, sensitive findings, or anything you'd rather not put on a public tracker.
sajb8722@gmail.com
GitHub issues
Open a public issue with steps to reproduce, your Chrome version, and a screenshot if possible. Browse existing reports to see if it's already known.
Feature requests
Tell us what you're trying to do — not just what you want built. Concrete use cases ship faster than generic suggestions.
Reviews & ratings
If Auto API helps your team, leave a review on the Chrome Web Store — it's the most impactful thing a happy user can do.