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

# API pull request testing

> Start a pull request review from any CI that can send an HTTP request.

Use the API when the pipeline is not GitHub Actions, GitLab CI, or Bitrise. Bitbucket, Azure DevOps, CircleCI, Jenkins, and any other system that can send an HTTPS request can start the same review.

## Set it up

<CardGroup cols={2}>
  <Card title="Start a change review" icon="code" href="/api-reference/chat/start-change-review-chat">
    `POST /v1/chat/change-review` with `mode: "pr"` and the request URL.
  </Card>

  <Card title="Mobile build" icon="mobile" href="/pr-testing/agents/mobile">
    Upload the build first, then pass `applicationBuildShortId`.
  </Card>

  <Card title="Post on GitHub" icon="github" href="/configuration/github-app">
    Install the GitHub App so the agent can read the diff and post the review.
  </Card>

  <Card title="Post on GitLab" icon="gitlab" href="/configuration/gitlab#set-up-gitlab-mr-reviews">
    Connect the repository under **Settings → Integrations → GitLab**.
  </Card>
</CardGroup>

Create the API key and find the IDs on [Other CI (API)](/configuration/ci-cd-integration). Without the GitHub App or the GitLab connection, the API cannot read the diff or write the review. A test plan run does not need either. See the [regression API](/regression-testing/api).

## What works over the API

| Capability                                   | API                                                                                                             |
| :------------------------------------------- | :-------------------------------------------------------------------------------------------------------------- |
| Review on a preview URL, before merge        | Yes. Send the request URL and the preview URL in the body.                                                      |
| Review after merge, with no preview URL      | Yes. Send the merged request URL after the deploy, and target the deployed environment.                         |
| Review a mobile build for that pull request  | Yes. Upload the build, then pass `applicationBuildShortId`. See [mobile PR testing](/pr-testing/agents/mobile). |
| Run a regression test plan                   | Not this endpoint. Use the [regression API](/regression-testing/api).                                           |
| Block the pipeline until the review finishes | No built-in check. The request starts the review. GitHub's Change Review Action is the one that waits for you.  |

## What this does not do

* It does not replace the GitHub App or the GitLab connection. Those are what allow the review to be posted.
* It does not schedule runs. Schedules belong on a [test plan](/core-concepts/test-plans).
* Envoyer is not a substitute. Envoyer cannot start a change review.
