Check the saved TestRail connection
const url = 'https://beta-api.plune.ai/v1/projects/example/integrations/testrail/test';const options = {method: 'POST', headers: {cookie: 'plune_session=<plune_session>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://beta-api.plune.ai/v1/projects/example/integrations/testrail/test \ --cookie plune_session=<plune_session>Owner only. Asks the instance for its first project (get_projects, one record) with the saved key — the cheapest question that needs it — and keeps what it found as the connection’s status. A check that went wrong is a 200 with ok: false and a code, not an error of this API. Only GET get_* methods are ever sent to a TestRail: the client has no other. A failure carries one of these codes: address_rejected - the address is not https, or does not resolve to a public address; unreachable - the instance did not answer in 30 seconds; credentials_rejected - TestRail answered 401 or 403: the e-mail and API key are not accepted (a revoked key included); rate_limited - TestRail asked Plune to wait: a short pause (30 seconds at most) is waited out up to three times in a call, a longer one ends the call at once; an import then goes on after the pause by itself, and fails after 20 pauses without progress; redirect_refused - the address answers with a redirect, which Plune never follows; not_json - the address answers, but not like TestRail; too_large - an answer past 20 MB; pagination_unsupported - the instance does not page its answers (limit and offset need TestRail 6.7): import a file instead; unexpected - a status the call did not expect: status carries it. The instance’s own text is never passed on. At most 10 requests a minute for a project, this, the list of projects and the two starts together, counted after the role. Session cookie only.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”An id from GET /v1/projects
Responses
Section titled “ Responses ”What the check found
object
Present exactly when ok is false.
The HTTP status TestRail answered with, when it did. Never its body.
Examples
The key works
{ "ok": true, "testedAt": "2026-09-16T09:12:04.151Z"}TestRail refuses the key
{ "ok": false, "failure": "credentials_rejected", "status": 401, "testedAt": "2026-09-16T09:12:04.151Z"}No / invalid session — a CLI token is refused here
You are in the project, but not as its owner
object
Example
{ "error": "project owner only"}No such project among yours, or no TestRail is connected
object
Examples
No such project among yours
{ "error": "project 'u-shop::default' not found"}Nothing saved to check
{ "error": "no TestRail is connected"}The saved key does not open under this server’s key (the platform key was replaced): connect again with the key
object
Example
{ "error": "the saved key cannot be read on this server - connect again with the key"}More than 10 requests to TestRail in a minute for this project. Retry-After carries the seconds until the window rolls over
object
Example generated
{ "error": "example"}Headers
Section titled “Headers ”Seconds until the window rolls over
The server has no key to keep TestRail keys under; nothing was sent
object
Example
{ "error": "the TestRail bridge is not configured on this server - contact your operator"}