Skip to content

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

A captured request named List orders open in the QAClan agent, showing its method, URL and the Params, Auth, Headers, Body, Pre-Script, Post-Script and Assertions tabsA captured request named List orders open in the QAClan agent, showing its method, URL and the Params, Auth, Headers, Body, Pre-Script, Post-Script and Assertions tabs
one requestEvery tab it needs — params, auth, headers, body, scripts, assertions.
API run history in the QAClan agent: an Orders collection run failed with three of four requests passing, beside four runs that passedAPI run history in the QAClan agent: an Orders collection run failed with three of four requests passing, beside four runs that passed
collection runThe assertions that failed, per request.

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.

An API reference generated by the QAClan agent, its endpoints grouped by resource with path segments inferred as variables — /posts/{post_id} and /albums/{album_id}/photos among themAn API reference generated by the QAClan agent, its endpoints grouped by resource with path segments inferred as variables — /posts/{post_id} and /albums/{album_id}/photos among them
inferred/posts/{post_id} came from real calls — nobody wrote that path by hand.

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