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.
The official API overview groups the interface into these areas:
#1 Best Overall
- 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.
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.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →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:
- Submit the bulk request and inspect the HTTP response and JSON body for completion or job information.
- For an asynchronous submission, retain the returned identifier and follow the operation’s documented status mechanism before treating the import as complete.
- 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.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsCalling 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.
Rank #3
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).
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.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallA 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.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.
Recommended Free Tools
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.
Best Value
- Used Book in Good Condition
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.
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.
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.
Quick Recap
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.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →

