{"openapi":"3.1.0","info":{"title":"Integrate.io (BYOK) API","version":"0.1.0","description":"Integrate.io (BYOK) lets an AI assistant read your own Integrate.io data through the Integrate.io API with a key you supply (Integrate.io API key (Settings, Account info)). Read-only: 11 tools (list_clusters, list_jobs, list_packages, list_schedules, list_connections, list_connection_groups, list_hooks, list_regions, list_stacks, get_rate_limit_status, get_account). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-integrate-io.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-integrate-io/docs"},"termsOfService":"https://connectorbay.com/byok-integrate-io/terms"},"servers":[{"url":"https://byok-integrate-io.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-integrate-io/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_clusters":{"post":{"operationId":"list_clusters","summary":"List the clusters of your account with status, type, node count, region, stack, running jobs and idle settings. Use for ","description":"List the clusters of your account with status, type, node count, region, stack, running jobs and idle settings. Use for \"Which Integrate.io clusters are available right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Your Integrate.io account id (the account name in your dashboard URL and the API base path).","maxLength":200,"title":"Account Id","type":"string"},"status":{"anyOf":[{"enum":["pending","creating","available","scaling","pending_terminate","terminating","terminated","error"],"type":"string"},{"type":"null"}],"default":null,"description":"Only clusters in this state.","title":"Status"},"sort":{"anyOf":[{"enum":["id","name","nodes","type","status","created_at","updated_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by: id, name, nodes, type, status, created_at, updated_at.","title":"Sort"},"direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Direction"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip.","title":"Offset"}},"required":["account_id"],"title":"list_clustersArguments","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_jobs":{"post":{"operationId":"list_jobs","summary":"List recent package runs (jobs) with status, progress, runtime, cluster, package and start or failure times; run variabl","description":"List recent package runs (jobs) with status, progress, runtime, cluster, package and start or failure times; run variables and output details are not returned. Use for \"Which Integrate.io jobs failed recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Your Integrate.io account id (the account name in your dashboard URL and the API base path).","maxLength":200,"title":"Account Id","type":"string"},"status":{"anyOf":[{"enum":["idle","pending","queued","running","completed","failed","pending_stoppage","stopping","stopped"],"type":"string"},{"type":"null"}],"default":null,"description":"Only jobs in this state.","title":"Status"},"since":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only jobs created after this ISO 8601 time.","title":"Since"},"sort":{"anyOf":[{"enum":["id","status","created_at","updated_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by: id, status, created_at, updated_at.","title":"Sort"},"direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Direction"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip.","title":"Offset"}},"required":["account_id"],"title":"list_jobsArguments","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_packages":{"post":{"operationId":"list_packages","summary":"List the pipeline packages (data flows) of your account with name, description, status and update times. Use for \"Which ","description":"List the pipeline packages (data flows) of your account with name, description, status and update times. Use for \"Which Integrate.io packages exist\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Your Integrate.io account id (the account name in your dashboard URL and the API base path).","maxLength":200,"title":"Account Id","type":"string"},"sort":{"anyOf":[{"enum":["id","name","created_at","updated_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by: id, name, created_at, updated_at.","title":"Sort"},"direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Direction"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip.","title":"Offset"}},"required":["account_id"],"title":"list_packagesArguments","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_schedules":{"post":{"operationId":"list_schedules","summary":"List the schedules that run packages, with status, start time, next run, interval and overlap and cluster reuse settings","description":"List the schedules that run packages, with status, start time, next run, interval and overlap and cluster reuse settings. Use for \"When does the next Integrate.io schedule run\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Your Integrate.io account id (the account name in your dashboard URL and the API base path).","maxLength":200,"title":"Account Id","type":"string"},"status":{"anyOf":[{"enum":["enabled","disabled"],"type":"string"},{"type":"null"}],"default":null,"description":"Only schedules in this state.","title":"Status"},"sort":{"anyOf":[{"enum":["id","name","created_at","updated_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by: id, name, created_at, updated_at.","title":"Sort"},"direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Direction"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip.","title":"Offset"}},"required":["account_id"],"title":"list_schedulesArguments","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_connections":{"post":{"operationId":"list_connections","summary":"List the source and destination connections with name, type and connection group; credentials are never returned. Use fo","description":"List the source and destination connections with name, type and connection group; credentials are never returned. Use for \"Which connections are set up in Integrate.io\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Your Integrate.io account id (the account name in your dashboard URL and the API base path).","maxLength":200,"title":"Account Id","type":"string"},"type":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only connections of this type, for example snowflake or postgres.","title":"Type"},"connection_group_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only connections in this connection group id.","title":"Connection Group Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip.","title":"Offset"}},"required":["account_id"],"title":"list_connectionsArguments","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_connection_groups":{"post":{"operationId":"list_connection_groups","summary":"List the connection groups (named sets of connections used to separate environments) with name and description. Use for ","description":"List the connection groups (named sets of connections used to separate environments) with name and description. Use for \"Which Integrate.io connection groups exist\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Your Integrate.io account id (the account name in your dashboard URL and the API base path).","maxLength":200,"title":"Account Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip.","title":"Offset"}},"required":["account_id"],"title":"list_connection_groupsArguments","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_hooks":{"post":{"operationId":"list_hooks","summary":"List the hooks (notifications on job events) with type, name, active flag and the events they watch; hook settings and s","description":"List the hooks (notifications on job events) with type, name, active flag and the events they watch; hook settings and salt are not returned. Use for \"Which Integrate.io hooks are active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Your Integrate.io account id (the account name in your dashboard URL and the API base path).","maxLength":200,"title":"Account Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip.","title":"Offset"}},"required":["account_id"],"title":"list_hooksArguments","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_regions":{"post":{"operationId":"list_regions","summary":"List the cloud regions where Integrate.io clusters can be created. Use for \"Which regions can Integrate.io clusters run ","description":"List the cloud regions where Integrate.io clusters can be created. Use for \"Which regions can Integrate.io clusters run in\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Your Integrate.io account id (the account name in your dashboard URL and the API base path).","maxLength":200,"title":"Account Id","type":"string"}},"required":["account_id"],"title":"list_regionsArguments","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_stacks":{"post":{"operationId":"list_stacks","summary":"List the supported cluster stacks. Use for \"Which stacks does Integrate.io support\".","description":"List the supported cluster stacks. Use for \"Which stacks does Integrate.io support\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Your Integrate.io account id (the account name in your dashboard URL and the API base path).","maxLength":200,"title":"Account Id","type":"string"}},"required":["account_id"],"title":"list_stacksArguments","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_rate_limit_status":{"post":{"operationId":"get_rate_limit_status","summary":"Show the API request limit and how many requests remain in the current window. Use for \"How many Integrate.io API calls ","description":"Show the API request limit and how many requests remain in the current window. Use for \"How many Integrate.io API calls do I have left\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Your Integrate.io account id (the account name in your dashboard URL and the API base path).","maxLength":200,"title":"Account Id","type":"string"}},"required":["account_id"],"title":"get_rate_limit_statusArguments","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_account":{"post":{"operationId":"get_account","summary":"Get the account summary: name, region, your role, creation time and counts of connections, members, packages and jobs; b","description":"Get the account summary: name, region, your role, creation time and counts of connections, members, packages and jobs; billing e-mail and keys are not returned. Use for \"How many packages and jobs does my Integrate.io account have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Your Integrate.io account id (the account name in your dashboard URL and the API base path).","maxLength":200,"title":"Account Id","type":"string"}},"required":["account_id"],"title":"get_accountArguments","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}}}}