Early Access release track date: 10-Sep-2026
Default release track date: 21-Sep-2026
TestRail 10.8 brings OAuth 2.0 authorization to the API, significantly more powerful querying capabilities for integration teams, and a round of targeted performance improvements for large-scale instances. Read on for the full picture.
π API OAuth 2.0 Authorization
As teams connect AI tools and automation pipelines to TestRail, controlling what those integrations can access β and revoking that access when needed β has to be effortless. TestRail 10.8 introduces OAuth 2.0 authentication alongside a new centralized access management experience for administrators.
With OAuth 2.0, you can:
- Authenticate external tools through a secure browser-based sign-in flow β no API key required
- Review the exact permissions being requested before granting access, with clear scope declarations covering test data, file attachments, and your profile
- Issue short-lived, scoped tokens that limit each integration to only what it needs
With the new Access Management dashboard in Site Settings, administrators can:
- View all active tokens and API keys across your instance in one place β including who created them, when they were last used, and how many API calls they've made
- Revoke any token immediately, without involving the user who created it
- Restrict who can generate API access tokens using a new role-based permission
Best of all, existing API keys continue to work exactly as before. OAuth 2.0 is an additional authentication option β so you can adopt it on your own timeline without changing anything that's already running.
π API: Advanced Filtering, Incremental Sync & Field Selection
Integration teams and automation pipelines can now retrieve exactly the data they need β filtering, field scoping, and incremental sync all land in 10.8.
Incremental sync with updated_after
Add updated_after to any bulk list endpoint to fetch only records modified after a given timestamp. Sync jobs no longer need to re-fetch and diff your entire case library to find what changed.
GET /api/v2/get_cases/{project_id}&updated_after=1716249600Applies to: get_cases, get_runs, get_results, get_results_for_case, get_results_for_run, get_plans, get_bdd, get_bdds
Richer server-side filtering
Major list endpoints now accept standard filter parameters: status_id, priority_id, section_id, assignedto_id, label_id, created_by, updated_by, and milestone_id, applied at the database level, not client-side.
Field selection
Add a fields parameter to bulk list endpoints to request only the fields your integration needs.
GET /api/v2/get_cases/{project_id}&fields=id,title,updated_on,priority_idEspecially useful for BI pipelines, reporting tools, and sync workflows that only need identifiers, timestamps, or status fields β not full case objects with all custom fields included.
π API: Bulk Update Results
The new update_results endpoint updates multiple existing test results in a single API call.
POST /api/v2/update_results
- Before 10.8, updating 500 results required 500 individual calls and careful rate-limit management. Now a handful of bulk requests handles the same workload.
- Supports all standard and custom result fields - status_id, comment, elapsed, defects, assignedto_id, and any custom_* fields. Uses a partial success model: valid updates are applied; invalid ones fail individually with clear error detail so your integration can identify and retry only the affected records.
- Common use cases: post-processing automation results, syncing external test frameworks, bulk defect assignment, correcting imported execution data.
The existing single-result update_result endpoint is unchanged.
β‘ Performance Improvements
Several targeted improvements to speed and stability for teams working at scale:
- Dashboard charts now load from cached results by default and refresh in the background, preventing database pressure spikes when multiple users open dashboards simultaneously. A Refresh button lets you pull the latest data on demand.
- Faster Bulk Case Updates in Dynamic Runs changes to dynamic run's filter is dramatically faster on large runs. Previously a single case edit on a run with thousands of tests could stall for over a minute β now that execution runs quickly without causing page delays.
- API get_cases responses are faster for large suites, using batch data fetching to eliminate per-case database queries on list calls.
- Project activity reporting is faster on large accounts, with improved database indexing on activity tracking queries.
- Audit Trail Query Acceleration: Improved query efficiency when logging attachment metadata, preventing redundant database calls during bulk operations.
π Fixes and Improvements (11)
- TR-11152: Fixed an error that occurred when opening Pivotal Tracker projects from the TestRail plugin
- TR-13381: Fixed the "No Access" system role disappearing from the default roles list
- TR-14781: Fixed a Jira add-on configuration mismatch that occurred after updating integration project settings
- TR-14956: Fixed the "Assigned To" field not appearing in printed test reports
- TR-18368: Fixed custom case fields placed in the "Bottom" location disappearing after updating a test case
- TR-20034: Fixed an issue where changes to a test plan could not be saved
- TR-20211: Fixed the page automatically scrolling to the top after updating a test case status
- TR-20368: Fixed the AI Test Case Generator failing during the "Generate Test Steps" stage
- TR-20806: Fixed an issue preventing updates to user access permissions on the Users administration page
- TR-21395: Fixed API-submitted test result comments losing Markdown formatting and line breaks when viewed in the UI
- TR-21899: Fixed raw HTML tags displaying in test summary details for results submitted via the API