Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

BrowserStack Test Management API is a REST API for creating, reading, updating, and tracking Test Management data. It covers projects, test cases, test runs, results, test plans, attachments, configurations, reviewers, pagination, and custom fields. Requests use HTTP Basic Authentication with your BrowserStack username and access key, while role-based access control determines which operations your account may perform.

This guide explains the documented scope, authentication model, resource relationships, bulk and asynchronous behavior, implementation patterns, and common failure modes. BrowserStack’s API documentation is the authority for the exact endpoint paths, request schemas, and response fields; those details can change, so verify them before deploying an integration.

What the BrowserStack Test Management API does

Test Management is BrowserStack’s product for organizing manual and automated test cases, executing runs, recording results, and reporting on quality. The API exposes that Test Management data; it is not a single API for every BrowserStack product.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The official API overview groups the interface into these areas:

#1 Best Overall
Sale
Pearson Computer Networking, 8E
  • brand: Pearson
  • Computer Networking, 8e
  • Projects
  • Folders and test cases
  • Reviewers
  • Test runs and test results
  • Test plans and linked runs
  • Attachments and configurations
  • Custom fields
  • Pagination and filtering support

Responses are JSON by default and use standard HTTP status codes. Use the resource-specific reference for the operation’s method, path, required fields, and response shape: API overview.

Authentication and permissions

HTTP Basic Authentication

BrowserStack states that “Test Management API uses HTTP Basic Auth for authentication.” Send your BrowserStack account username as the Basic Auth user and your access key as the password on every request. Credentials are available from the Test Management settings dashboard; keep the key out of source control and logs.

The authentication reference includes cURL examples and current account guidance: BrowserStack API authentication.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Authentication is not authorization

A valid credential does not automatically grant every operation. BrowserStack secures endpoints with role-based access control, so the account, team, or user must have permission for the requested project and action. A read may succeed while a create, update, or bulk operation returns a permission error. Confirm access in your account configuration when designing a service account.

Resource model and typical workflow

Projects are the boundary

Projects organize cases, runs, and results. The Projects API documents listing projects and creating one, with role-based controls applied to both reads and modifications: Projects API.

Cases, folders, and custom fields

Test cases can be retrieved with pagination and filters, created individually or in bulk, and represented in BDD-style form. Folders provide organization inside a project, while custom fields carry team-specific metadata. Read each operation’s update semantics carefully: the case reference warns that omitted or empty values can change fields in update requests.

Runs and results

A test run selects cases for execution and accepts results as they become available. The runs reference documents listing and creating runs, selecting cases through filters, and adding results: Test runs API.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Plans and linked runs

Test plans group and track linked runs. Use plans when you need a reusable release or regression grouping rather than a single execution record: Test plans API.

Supporting resources

Attachments, configurations, reviewers, and custom fields support evidence, environment details, approval flow, and reporting. The introduction page links to each current resource reference; do not infer fields from another resource’s schema.

Bulk test-case behavior

The test-case reference documents one bulk-create request containing from 1 to 10,000 cases. Requests with 30 or fewer cases run synchronously; larger requests run asynchronously. Your client therefore needs two paths:

  1. Submit the bulk request and inspect the HTTP response and JSON body for completion or job information.
  2. For an asynchronous submission, retain the returned identifier and follow the operation’s documented status mechanism before treating the import as complete.
  3. Record per-case errors and retry only failed items, rather than replaying an entire successful batch.

Do not assume that an omitted property means “leave unchanged.” The API reference specifically cautions that omitted or empty values can affect fields in some update operations.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Calling the API from code

The snippets below deliberately take the API URL from an environment variable. Set it to the exact endpoint shown in the current BrowserStack reference for the operation you are implementing; endpoint paths and schemas are resource-specific.

cURL

export BROWSERSTACK_USERNAME='your-username'
export BROWSERSTACK_ACCESS_KEY='your-access-key'
export TM_API_URL='https://your-current-test-management-endpoint'

curl --fail-with-body --user "$BROWSERSTACK_USERNAME:$BROWSERSTACK_ACCESS_KEY" 
  --header 'Accept: application/json' 
  "$TM_API_URL"

Use --fail-with-body so an HTTP error produces a non-zero exit status while retaining BrowserStack’s response body for diagnosis.

Python

import os
import requests

url = os.environ["TM_API_URL"]
response = requests.get(
    url,
    auth=(os.environ["BROWSERSTACK_USERNAME"], os.environ["BROWSERSTACK_ACCESS_KEY"]),
    headers={"Accept": "application/json"},
    timeout=60,
)
response.raise_for_status()
data = response.json()
print(data)

For POST or PATCH operations, add the JSON body documented for that specific resource and use json=payload. Validate required fields before sending.

Node.js

const response = await fetch(process.env.TM_API_URL, {
  method: 'GET',
  headers: {
    'Accept': 'application/json',
    'Authorization': 'Basic ' + Buffer.from(
      `${process.env.BROWSERSTACK_USERNAME}:${process.env.BROWSERSTACK_ACCESS_KEY}`
    ).toString('base64')
  }
});

if (!response.ok) {
  throw new Error(`HTTP ${response.status}: ${await response.text()}`);
}
console.log(await response.json());

For a JSON write, add Content-Type: application/json and serialize the documented payload with body: JSON.stringify(payload).

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Pagination, filtering, and idempotent integration design

Pagination

List operations are paginated. Follow the reference’s page and size parameters (or its returned continuation metadata) instead of assuming one response contains every case or run. Persist the last successful page so a transient failure does not force a full re-import.

Filtering

Use server-side filters for cases and run selection where documented. Filtering reduces response size and helps keep a run aligned with a known folder, label, or custom-field criterion.

Retries and deduplication

  • Retry network timeouts and transient 5xx responses with bounded exponential backoff.
  • Do not blindly retry validation or permission failures.
  • Store BrowserStack identifiers returned after creation and use them to prevent duplicate projects, cases, or runs.
  • For asynchronous bulk jobs, poll at a controlled interval and persist job state.

The reviewed documentation does not establish rate limits, quotas, pricing, or service-level guarantees. Obtain those values from your current account documentation before capacity planning.

Integrating CI and issue tracking

BrowserStack positions Test Management as a unified manual and automated test workflow with dashboards, imports, reporting, and integrations. Its feature page names Jira, Azure DevOps, and Asana for issue tracking, and Jenkins, Azure Pipelines, Bamboo, and CircleCI for CI/CD. These are vendor statements, and availability or entitlement can change; verify the integration for your account: Test Management features.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A practical pipeline usually creates or locates a run, submits automated results, attaches evidence when supported, and links failures to the team’s issue tracker. Keep credentials in the CI secret store and grant the minimum project permissions required.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshooting

401 Unauthorized

Check that the username and access key are paired correctly, Basic Auth is being sent, and shell quoting has not truncated either value. Generate a fresh key from the Test Management settings dashboard if necessary.

403 Forbidden

The credentials are recognized but the account lacks the role or project permission for that operation. Ask an administrator to confirm role-based access for the target project.

400 Bad Request

Compare the payload with the operation-specific schema. Check required fields, enum values, nested objects, and whether an empty or omitted field has update semantics. Start with one small case before submitting a bulk request.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

404 Not Found

Verify the current resource path and identifier, and ensure the object belongs to the project in the URL or body. Do not reuse an ID from another environment.

Unexpectedly incomplete lists

Implement pagination and inspect continuation metadata. A successful first page is not evidence that all cases or runs were returned.

Bulk request appears stuck

Requests larger than 30 cases are asynchronous according to the case reference. Save the returned operation information, poll using the documented mechanism, and inspect item-level failures before retrying.

Or skip the browser setup

If your immediate need is a clean image or PDF of API documentation, a status page, or a test report, ScreenshotNeo provides a single-call website screenshot API. It accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; bot checks, blank pages, failed loads, timeouts, and cache hits are not billed, and response headers identify the page verdict and billing result. Its MCP server exposes take_screenshot, get_page_info, and capture_pdf to Claude, Cursor, and other MCP clients.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo API documentation for options such as full-page capture, CSS selectors, device presets, dark mode, custom headers and cookies, waits, blocking rules, PDF settings, signed links, asynchronous jobs, bulk capture, and usage reporting. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Create a free ScreenshotNeo account.

FAQ

Is this the same as BrowserStack’s browser automation APIs?

No. This interface is specifically for Test Management records such as cases, runs, results, and plans. Use the API reference for the product you are automating.

Can I send 10,000 test cases in one request?

The test-case reference documents bulk-create requests of 1 to 10,000 cases. Batches above 30 are asynchronous, so production clients must handle completion and partial failures.

Where do I confirm current endpoint details?

Start with BrowserStack’s Test Management documentation, then open the resource-specific reference linked from the API overview.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Frequently Asked Questions

Does every authenticated user have write access?

No. BrowserStack applies role-based access control, and permissions are account- and project-specific.

Are API rate limits and pricing documented here?

The reviewed API pages do not establish current rate limits, pricing, or service-level guarantees; verify them in your account documentation or with BrowserStack support.

What format do responses use?

BrowserStack documents JSON responses by default together with standard HTTP status codes.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.