{"openapi":"3.1.0","info":{"title":"Prefect Cloud (BYOK) API","version":"0.1.0","description":"Prefect Cloud (BYOK) lets an AI assistant read your own Prefect Cloud data through the Prefect Cloud API with a key you supply (API key). Read-only: 8 tools (get_my_accounts, get_account, get_account_usage, list_workspaces, list_flows, list_deployments, list_flow_runs, list_work_pools). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached;...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-prefect.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-prefect/docs"},"termsOfService":"https://connectorbay.com/byok-prefect/terms"},"servers":[{"url":"https://byok-prefect.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-prefect/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/get_my_accounts":{"post":{"operationId":"get_my_accounts","summary":"List the Prefect Cloud accounts the key can access, with account id, name, handle, your role and plan type. Use for \"Whi","description":"List the Prefect Cloud accounts the key can access, with account id, name, handle, your role and plan type. Use for \"Which Prefect Cloud accounts do I belong to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_my_accountsArguments","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":"Show one Prefect Cloud account: name, handle and creation time. Use for \"What is the name and handle of my Prefect Cloud","description":"Show one Prefect Cloud account: name, handle and creation time. Use for \"What is the name and handle of my Prefect Cloud account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). get_my_accounts returns it; it is also in dashboard URLs.","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}},"/v1/tools/get_account_usage":{"post":{"operationId":"get_account_usage","summary":"Show Prefect Cloud usage per workspace: number of deployments, automations and work pools. Use for \"How many deployments","description":"Show Prefect Cloud usage per workspace: number of deployments, automations and work pools. Use for \"How many deployments and work pools does each Prefect workspace have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). get_my_accounts returns it; it is also in dashboard URLs.","maxLength":200,"title":"Account Id","type":"string"}},"required":["account_id"],"title":"get_account_usageArguments","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_workspaces":{"post":{"operationId":"list_workspaces","summary":"List workspaces in a Prefect Cloud account with id, name, handle and visibility. Use for \"Which workspaces are in my Pre","description":"List workspaces in a Prefect Cloud account with id, name, handle and visibility. Use for \"Which workspaces are in my Prefect Cloud account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). get_my_accounts returns it; it is also in dashboard URLs.","maxLength":200,"title":"Account Id","type":"string"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 200).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip.","title":"Offset"}},"required":["account_id"],"title":"list_workspacesArguments","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_flows":{"post":{"operationId":"list_flows","summary":"List flows registered in a Prefect workspace with name, tags and creation time. Use for \"Which flows are registered in m","description":"List flows registered in a Prefect workspace with name, tags and creation time. Use for \"Which flows are registered in my Prefect workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). get_my_accounts returns it; it is also in dashboard URLs.","maxLength":200,"title":"Account Id","type":"string"},"workspace_id":{"description":"Prefect Cloud workspace id (UUID). list_workspaces returns it; it is also in dashboard URLs.","maxLength":200,"title":"Workspace Id","type":"string"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 200).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip.","title":"Offset"},"sort":{"anyOf":[{"enum":["CREATED_DESC","CREATED_ASC","UPDATED_DESC","UPDATED_ASC","NAME_ASC","NAME_DESC"],"type":"string"},{"type":"null"}],"default":"NAME_ASC","description":"Sort order.","title":"Sort"}},"required":["account_id","workspace_id"],"title":"list_flowsArguments","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_deployments":{"post":{"operationId":"list_deployments","summary":"List deployments in a Prefect workspace with flow id, work pool, paused and schedule flags and last update. Use for \"Whi","description":"List deployments in a Prefect workspace with flow id, work pool, paused and schedule flags and last update. Use for \"Which Prefect deployments are paused\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). get_my_accounts returns it; it is also in dashboard URLs.","maxLength":200,"title":"Account Id","type":"string"},"workspace_id":{"description":"Prefect Cloud workspace id (UUID). list_workspaces returns it; it is also in dashboard URLs.","maxLength":200,"title":"Workspace Id","type":"string"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 200).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip.","title":"Offset"},"sort":{"anyOf":[{"enum":["CREATED_DESC","CREATED_ASC","UPDATED_DESC","UPDATED_ASC","NAME_ASC","NAME_DESC"],"type":"string"},{"type":"null"}],"default":"NAME_ASC","description":"Sort order.","title":"Sort"}},"required":["account_id","workspace_id"],"title":"list_deploymentsArguments","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_flow_runs":{"post":{"operationId":"list_flow_runs","summary":"List flow runs in a Prefect workspace with flow, deployment, state, start and end time and total run time. Parameters an","description":"List flow runs in a Prefect workspace with flow, deployment, state, start and end time and total run time. Parameters and logs are not returned. Use for \"Which Prefect flow runs failed recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). get_my_accounts returns it; it is also in dashboard URLs.","maxLength":200,"title":"Account Id","type":"string"},"workspace_id":{"description":"Prefect Cloud workspace id (UUID). list_workspaces returns it; it is also in dashboard URLs.","maxLength":200,"title":"Workspace Id","type":"string"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 200).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip.","title":"Offset"},"sort":{"anyOf":[{"enum":["ID_DESC","START_TIME_ASC","START_TIME_DESC","EXPECTED_START_TIME_ASC","EXPECTED_START_TIME_DESC","NAME_ASC","NAME_DESC","NEXT_SCHEDULED_START_TIME_ASC","END_TIME_DESC","DURATION_DESC","LATENESS_DESC"],"type":"string"},{"type":"null"}],"default":"START_TIME_DESC","description":"Sort order.","title":"Sort"}},"required":["account_id","workspace_id"],"title":"list_flow_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/list_work_pools":{"post":{"operationId":"list_work_pools","summary":"List work pools in a Prefect workspace with type, paused flag, concurrency limit, status and last poll time. Use for \"Ar","description":"List work pools in a Prefect workspace with type, paused flag, concurrency limit, status and last poll time. Use for \"Are my Prefect work pools ready and when were they last polled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). get_my_accounts returns it; it is also in dashboard URLs.","maxLength":200,"title":"Account Id","type":"string"},"workspace_id":{"description":"Prefect Cloud workspace id (UUID). list_workspaces returns it; it is also in dashboard URLs.","maxLength":200,"title":"Workspace Id","type":"string"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 200).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip.","title":"Offset"},"sort":{"anyOf":[{"enum":["NAME_ASC","NAME_DESC"],"type":"string"},{"type":"null"}],"default":"NAME_ASC","description":"Sort order.","title":"Sort"}},"required":["account_id","workspace_id"],"title":"list_work_poolsArguments","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}}}}