> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tester.army/llms.txt
> Use this file to discover all available pages before exploring further.

# API Overview

> Authenticate against the TesterArmy REST API with an API key, then create projects and tests, queue runs, and read results from your own tooling.

The TesterArmy API exposes the same projects, tests, groups, and runs you manage in the dashboard. Use it to wire TesterArmy into CI, internal tools, or an agent that cannot use the dashboard.

## Base URL

All endpoints live under a single origin:

```text theme={"theme":"vesper"}
https://tester.army/api
```

The OpenAPI document is served at [`/openapi.json`](https://docs.tester.army/openapi.json) and is the source of every endpoint page in this reference.

## Authentication

Every request carries an [API key](/auth/api-keys) as a bearer token:

```bash theme={"theme":"vesper"}
curl https://tester.army/api/v1/projects \
  -H "Authorization: Bearer $TESTERARMY_API_KEY"
```

Keys are scoped to the team that created them. A key never sees projects, tests, or runs that belong to another team.

<Note>
  Coding agents can authenticate without a dashboard-issued key by following
  [https://tester.army/auth.md](https://tester.army/auth.md). The [MCP server](/cli/mcp) and the
  [CLI](/cli) call the same API on your behalf.
</Note>

## Responses and errors

Responses are JSON. Errors return a JSON body with an `error` code and a human-readable `message`, for example `{ "error": "NoMobileApp", "message": "..." }`. Status codes are conventional: `400` for a body that fails validation, `401` for a missing or revoked key, `403` for a resource outside the key's team, `404` for an unknown id, `409` for a conflict with the current state (for example cancelling a finished run), `422` for a valid request that cannot run (for example no uploaded mobile app or a platform mismatch), and `429` for rate limits or `UsageLimitExceeded` when the team is out of monthly runs.

## Where to start

<CardGroup cols={2}>
  <Card title="Trigger a test run" icon="play" iconType="duotone" href="/api-reference/tests/trigger-a-test-run">
    Queue a saved test and poll its status.
  </Card>

  <Card title="Signed group webhooks" icon="webhook" iconType="duotone" href="/run/group-webhooks">
    Fire a whole group from any CI or deployment provider without an API key.
  </Card>

  <Card title="CLI" icon="terminal" iconType="duotone" href="/cli">
    Drive the same API from a terminal or a coding agent.
  </Card>

  <Card title="MCP server" icon="plug" iconType="duotone" href="/cli/mcp">
    Connect Claude, Cursor, or any MCP client directly to TesterArmy.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.