{"openapi":"3.1.0","info":{"title":"LambdaTest (BYOK) API","version":"0.1.0","description":"LambdaTest (BYOK) lets an AI assistant read your own LambdaTest data through the LambdaTest API with a key you supply (LambdaTest username). Read-only: 9 tools (list_builds, get_build, list_sessions, get_session, get_session_video, list_tunnels, get_concurrency, list_platforms, list_uploaded_files). The BYOK key travels with each request, is used for that one call only and is never stored, logged...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-lambdatest.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-lambdatest/docs"},"termsOfService":"https://connectorbay.com/byok-lambdatest/terms"},"servers":[{"url":"https://byok-lambdatest.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-lambdatest/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_builds":{"post":{"operationId":"list_builds","summary":"List automation test builds with status, owner, project, tags and duration. Filter by status (running, queued, completed","description":"List automation test builds with status, owner, project, tags and duration. Filter by status (running, queued, completed, timeout, error), dates (YYYY-MM-DD) or user. Use for \"Which LambdaTest builds ran this week and how did they end\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated statuses to include, for example 'completed,error'.","title":"Status"},"fromdate":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only builds started on or after this date, YYYY-MM-DD.","title":"Fromdate"},"todate":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only builds started on or before this date, YYYY-MM-DD.","title":"Todate"},"username":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only builds of this user (comma-separate several).","title":"Username"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Offset"}},"title":"list_buildsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_build":{"post":{"operationId":"get_build","summary":"Get one build by id: owner, status, timestamps, tags, duration and dashboard link. Use for \"Show the details of LambdaTe","description":"Get one build by id: owner, status, timestamps, tags, duration and dashboard link. Use for \"Show the details of LambdaTest build 101\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"build_id":{"description":"Numeric build id from list_builds.","minimum":1,"title":"Build Id","type":"integer"}},"required":["build_id"],"title":"get_buildArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_sessions":{"post":{"operationId":"list_sessions","summary":"List test sessions (individual browser runs) with browser, platform, status, duration and remark. Filter by build, user,","description":"List test sessions (individual browser runs) with browser, platform, status, duration and remark. Filter by build, user, test name, status, tags or dates. Use for \"Which LambdaTest sessions failed in build 101\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"build_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only sessions of this build id.","title":"Build Id"},"username":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only sessions of this user.","title":"Username"},"test_name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only sessions with this test name.","title":"Test Name"},"status":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated statuses, for example 'failed,error'.","title":"Status"},"tags":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated test tags to match.","title":"Tags"},"fromdate":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Start date, YYYY-MM-DD.","title":"Fromdate"},"todate":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"End date, YYYY-MM-DD.","title":"Todate"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Offset"}},"title":"list_sessionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_session":{"post":{"operationId":"get_session","summary":"Get one test session with browser, platform, status, remark and links to its video, screenshots and logs. Use for \"Show ","description":"Get one test session with browser, platform, status, remark and links to its video, screenshots and logs. Use for \"Show LambdaTest session details for session S1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"session_id":{"description":"Session id (the 'session_id' value from list_sessions).","maxLength":200,"title":"Session Id","type":"string"}},"required":["session_id"],"title":"get_sessionArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_session_video":{"post":{"operationId":"get_session_video","summary":"Get the recorded-video link of a test session. Use for \"Where is the video of LambdaTest session S1\".","description":"Get the recorded-video link of a test session. Use for \"Where is the video of LambdaTest session S1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"session_id":{"description":"Session id from list_sessions.","maxLength":200,"title":"Session Id","type":"string"}},"required":["session_id"],"title":"get_session_videoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_tunnels":{"post":{"operationId":"list_tunnels","summary":"List the running Lambda Tunnels of the account with name, user, start time and status. Use for \"Which LambdaTest tunnels","description":"List the running Lambda Tunnels of the account with name, user, start time and status. Use for \"Which LambdaTest tunnels are running\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_tunnelsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_concurrency":{"post":{"operationId":"get_concurrency","summary":"Show how many tests are running and queued right now for the organisation. Use for \"How many LambdaTest tests are runnin","description":"Show how many tests are running and queued right now for the organisation. Use for \"How many LambdaTest tests are running or queued right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_concurrencyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_platforms":{"post":{"operationId":"list_platforms","summary":"List the operating systems and browsers (with versions) available for Selenium tests. Use for \"Which browsers and platfo","description":"List the operating systems and browsers (with versions) available for Selenium tests. Use for \"Which browsers and platforms can I run LambdaTest tests on\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_platformsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_uploaded_files":{"post":{"operationId":"list_uploaded_files","summary":"List files uploaded for pre-run use (name, size, last modified). Use for \"What pre-run files have we uploaded to LambdaT","description":"List files uploaded for pre-run use (name, size, last modified). Use for \"What pre-run files have we uploaded to LambdaTest\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_uploaded_filesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}