API Reference
The Aiqaramba API gives you full programmatic access to everything the platform can do. Create projects, define tests, launch agents, check results, manage schedules. All endpoints live under /api/v1/, accept JSON, and require Bearer token authentication.
Most people use the API to set up their tests and schedules, but you can also build custom solutions around it. Want a CI/CD pipeline that triggers test runs after every deploy and blocks the release if something fails? Want a dashboard that aggregates test results across multiple projects? The API gives you everything you need to build that.
Machine-readable reference
The full API contract is available as an OpenAPI 3.0 document at /docs/api/openapi.yaml — every page here is rendered from it. For LLMs and coding agents, the same reference is available as a single plain-text file at /docs/llm.txt, following the emerging llms.txt convention. Paste it into your coding agent and it can write API calls for you.
Authentication
All API requests require a Bearer token in the Authorization header. You can create and manage API keys from your API keys page. The examples on these pages read the key from the AIQA_API_KEY environment variable.
Authorization: Bearer YOUR_API_KEY
Errors
Every API error is returned as an RFC 7807 problem document with Content-Type: application/problem+json. The response body is a JSON object with structured fields:
title— A short human-readable summary of the problem type, such as "Not Found".status— The HTTP status code, repeated from the response status line.detail— A human-readable explanation specific to this occurrence of the problem.violations— Present only on validation errors; lists each rejected field together with the reason it was rejected.
{
"title": "Unprocessable Entity",
"status": 422,
"detail": "the test plan failed validation",
"violations": [
{
"field": "steps.login.parents",
"message": "unknown parent label"
}
]
}Rate Limits
The API enforces rate limits per IP address. These are intentionally generous since most API usage involves creating and managing entities like projects, tests, and schedules rather than high-frequency polling. You are unlikely to hit these limits during normal usage.
- 30 requests per second per IP address, with a burst allowance of 50 requests that are processed immediately.
- 10 concurrent connections per IP address.
- HTTP 429 Too Many Requests is returned when you exceed the limit. If you do hit it, implement exponential backoff and retry after a short delay.
Resources
Browse endpoints by resource to manage projects, launch agents, run tests, and configure schedules.
Projects
Projects are containers that group together your tests, agents, schedules, and other resources. They are simple organizational buckets with no behavior of their own.
Models
Models are the LLM configurations that power agents. These are managed by Aiqaramba and this endpoint lets you query which models are currently available.
Tunnels
Tunnels expose a local development server to Aiqaramba's agents and browsers through an encrypted connection, without making it reachable from the public internet. Open a tunnel with `aiqa tunnel <port>`; the assigned hostname stays reachable only from inside Aiqaramba's network. A tunnel lives exactly as long as its connection: closing the CLI closes the tunnel.
Mailboxes
A mailbox is a real email address your agents can read. Every message delivered to `{name}@agents.aiqaramba.com` is stored against the matching mailbox and exposed via the API. Attach a mailbox to a test or a test run to grant that run read access to the inbox, useful for magic links, verification codes, and signup confirmations. Mailboxes are read-only: there is no API to send mail.
Findings
Findings are issues discovered by agents during test runs, discoveries, and test plans. Each finding includes severity, evidence linking back to specific agent trace steps, and a lifecycle status (open, regressed, resolved, dismissed).
Mobile Apps
Upload and manage Android APK files used by mobile tests and mobile discoveries. Mobile apps are immutable artifacts; upload each build separately.
Files
Manage tenant-scoped files that can be attached to agent runs. Upload files to your tenant store, then reference them when creating agents or running tests to copy them into the agent workspace.
Roles
Roles are reusable prompt injection templates. A role's system prompt is injected into the agent's system prompt, shaping how it behaves during execution. Roles can carry attached knowledge documents (reference material) that the agent can consult while running.
Agents
An agent carries out a set of instructions in Aiqaramba. It uses a browser or mobile device to complete the task and records what happened. The API lets you follow the run and inspect its result.
Tests
A test saves the instructions and settings for a task you want to run more than once. Running a test spawns an agent with that setup. Aiqaramba links each run to the test so you can review results over time.
Discoveries
Discoveries automatically explore a website or Android application by spawning multiple agents across several phases. Starting from a URL (web) or an APK (Android), agents map pages/screens, forms, and interactions, then the system identifies gaps and sends agents to explore further.
Test Plans
Chain several tests into a directed acyclic graph (DAG): each step runs one test under a named browser profile and declares the outputs it records. Every value recorded by a step's ancestors is provided to that step's agent automatically — prompts refer to them in plain language (e.g. "log in with the credentials from the register step"), no template syntax needed. The runner walks the graph in dependency order, runs independent steps in parallel, and shares one logged-in browser across all steps that name the same profile.
Recordings
Recordings capture user flows from the Aiqaramba Recorder browser extension. Each recording contains rrweb DOM events (clicks, typing, scrolling, navigation) and optionally tab video with audio. Recordings can be converted into tests for automated replay.
Schedules
Schedules automate recurring test execution. Assign tests to a schedule, set a daily run time, and the system runs them on a rotating basis, most-overdue first.