{"openapi":"3.1.0","info":{"title":"Coalesce Transform (BYOK) API","version":"0.1.0","description":"Coalesce Transform (BYOK) lets an AI assistant read your own Coalesce Transform data through the Coalesce Transform API with a key you supply (Coalesce API token). Read-only: 9 tools (list_projects, get_project, list_environments, get_environment, list_environment_nodes, list_workspace_nodes, list_runs, get_run, list_run_results). The BYOK key travels with each request, is used for that one call...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-coalesce-transform.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-coalesce-transform/docs"},"termsOfService":"https://connectorbay.com/byok-coalesce-transform/terms"},"servers":[{"url":"https://byok-coalesce-transform.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-coalesce-transform/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_projects":{"post":{"operationId":"list_projects","summary":"List Coalesce projects of the organization with name, description, Git repository URL, status and timestamps; optionally","description":"List Coalesce projects of the organization with name, description, Git repository URL, status and timestamps; optionally with nested workspaces and jobs. Use for \"Which projects exist in my Coalesce organization\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_workspaces":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include the workspaces of each project.","title":"Include Workspaces"},"include_jobs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include the jobs of each workspace.","title":"Include Jobs"}},"title":"list_projectsArguments","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_project":{"post":{"operationId":"get_project","summary":"Get one Coalesce project by id with name, description, Git repository URL, status and optionally its workspaces and jobs","description":"Get one Coalesce project by id with name, description, Git repository URL, status and optionally its workspaces and jobs. Use for \"Show Coalesce project 1 with its workspaces and jobs\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Id of the project.","maxLength":200,"title":"Project Id","type":"string"},"include_workspaces":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include the project's workspaces.","title":"Include Workspaces"},"include_jobs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include the jobs of each workspace.","title":"Include Jobs"}},"required":["project_id"],"title":"get_projectArguments","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_environments":{"post":{"operationId":"list_environments","summary":"List Coalesce environments with project, status and creator. Cursor paginated. Use for \"Which Coalesce environments exis","description":"List Coalesce environments with project, status and creator. Cursor paginated. Use for \"Which Coalesce environments exist and what is their status\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only environments of this project id.","title":"Project"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many items to return (1 to 500).","title":"Limit"},"starting_from":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the next field of the previous answer; leave empty for the first page.","title":"Starting From"}},"title":"list_environmentsArguments","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_environment":{"post":{"operationId":"get_environment","summary":"Get one Coalesce environment: project, status, Git branch and commit, deployed commit, storage mapping, running jobs and","description":"Get one Coalesce environment: project, status, Git branch and commit, deployed commit, storage mapping, running jobs and timestamps. Use for \"What commit is deployed in Coalesce environment 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"environment_id":{"description":"Id of the Coalesce environment.","maxLength":200,"title":"Environment Id","type":"string"}},"required":["environment_id"],"title":"get_environmentArguments","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_environment_nodes":{"post":{"operationId":"list_environment_nodes","summary":"List the nodes (tables, views and other objects) deployed in an environment with type, database, schema and location. Cu","description":"List the nodes (tables, views and other objects) deployed in an environment with type, database, schema and location. Cursor paginated. Use for \"Which nodes are deployed in Coalesce environment 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"environment_id":{"description":"Id of the Coalesce environment.","maxLength":200,"title":"Environment Id","type":"string"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many items to return (1 to 500).","title":"Limit"},"starting_from":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the next field of the previous answer; leave empty for the first page.","title":"Starting From"}},"required":["environment_id"],"title":"list_environment_nodesArguments","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_workspace_nodes":{"post":{"operationId":"list_workspace_nodes","summary":"List the nodes in a development workspace with type, database, schema and location. Cursor paginated. Use for \"Which nod","description":"List the nodes in a development workspace with type, database, schema and location. Cursor paginated. Use for \"Which nodes are in Coalesce workspace 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace_id":{"description":"Id of the workspace.","maxLength":200,"title":"Workspace Id","type":"string"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many items to return (1 to 500).","title":"Limit"},"starting_from":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the next field of the previous answer; leave empty for the first page.","title":"Starting From"}},"required":["workspace_id"],"title":"list_workspace_nodesArguments","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_runs":{"post":{"operationId":"list_runs","summary":"List Coalesce runs, newest first by default, with type, status, environment, start and end time, failure reason and test","description":"List Coalesce runs, newest first by default, with type, status, environment, start and end time, failure reason and test failure flag. Use for \"Which Coalesce runs failed recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many runs to return (1 to 1000).","title":"Limit"},"starting_from":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the next field of the previous answer; requires order_by.","title":"Starting From"},"order_by":{"anyOf":[{"enum":["id","runStartTime","runEndTime"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field.","title":"Order By"},"order_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Order Direction"},"project_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only runs of this project id.","title":"Project Id"},"environment_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only runs of this environment id.","title":"Environment Id"},"run_type":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only runs of this type, for example deploy or refresh.","title":"Run Type"},"run_status":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only runs with this status, for example completed, failed or running.","title":"Run Status"}},"title":"list_runsArguments","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_run":{"post":{"operationId":"get_run","summary":"Get one Coalesce run: type, status, start and end time, nodes in the run, selectors, parallelism and test failure flag. ","description":"Get one Coalesce run: type, status, start and end time, nodes in the run, selectors, parallelism and test failure flag. Use for \"Show Coalesce run 123 and whether it had test failures\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"run_id":{"description":"Numeric id of the run.","maximum":999999999,"minimum":1,"title":"Run Id","type":"integer"}},"required":["run_id"],"title":"get_runArguments","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_run_results":{"post":{"operationId":"list_run_results","summary":"List the per-node results of a Coalesce run: node id and name, run state, origin, running and test failure flags. Query ","description":"List the per-node results of a Coalesce run: node id and name, run state, origin, running and test failure flags. Query SQL and row counts are not included. Use for \"Which nodes failed in Coalesce run 123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"run_id":{"description":"Numeric id of the run.","maximum":999999999,"minimum":1,"title":"Run Id","type":"integer"}},"required":["run_id"],"title":"list_run_resultsArguments","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}}}}