qaclan api
A full API client that shares a project with your browser tests.
Collections, environments, variables, assertions, pre/post scripts, auth and generated documentation — in the same tool that records your browser journeys, and in the same ordered run.
getting requests in
Three ways in, none of them retyping.
Nobody should rebuild a request collection by hand to try a new tool. Bring what exists, or capture it from a session.
Capture what your app already calls
A browser session records every request your application fires while you use it, then asks which ones to keep. The API side of your coverage comes out of a journey you were testing anyway.
qaclan api record --url https://your-app.test
Import what you already maintain
A HAR capture, an OpenAPI or Swagger document as a file or a URL in YAML or JSON, a Postman collection, or Bruno files. Format detection is automatic.
qaclan api import openapi.yaml --format auto
Or paste a curl command
Drop in one or more curl commands and they become requests, with method, URL, headers and body already filled in.
building the checks
Everything you would expect from a request client.
Collections, folders and variables
Group requests the way your API is actually shaped. Collection and environment variables resolve as {{var}} anywhere — URL, header, query or body.
Auth injected at run time
Bearer tokens, basic auth, API keys and OAuth2 are configured once and applied when the request runs, instead of being pasted into every header by hand.
Assertions without writing code
Assert on the status, a JSONPath value in the body, a header, the response time or raw body text. Choose a field, an operator and an expected value.
status · json_path · header · response_time · body_text
Scripts when a check needs real logic
Pre- and post-request scripts run in JavaScript or Python, so you can sign a payload, pull a value out of one response and set it for the next, or add a header conditionally.
GraphQL bodies
GraphQL requests get a dedicated editor with syntax highlighting, bracket matching and grammar-level completion. It does not load your schema, so there is no field-level autocomplete.
Run one request or the whole collection
Send a single request while you build it, then run the collection against an environment when you want the full set checked.
qaclan api run <name> --collection <name> --env staging




documentation
A reference built from traffic, not from good intentions.
Hand-written API docs go stale the week after they are written. Every request that runs here updates a reference automatically: the method, the path with variables inferred, and the shapes that came back.
Export it as OpenAPI YAML when someone outside the team needs it. Collections themselves export as Postman JSON or Bruno files, so nothing here is a one-way door.


Record your next regression pass instead of repeating it.
Install the agent, record one journey, and look at the API calls it fired. That is the whole first session — no card, no clock.
curl -fsSL https://raw.githubusercontent.com/qaclan/agent/master/install.sh | sh