Prefect website screenshot

Prefect

Prefect is a Python-native workflow orchestration tool for building, scheduling, and monitoring data pipelines with fault tolerance. Prefect provides a hybrid execution model where the cloud control plane coordinates workflows while code and data remain in customer infrastructure, offering both a managed cloud platform and a self-hosted open-source server.

3 APIs 0 Features
AutomationData PipelinesOrchestrationPythonWorkflows

APIs

Prefect Cloud REST API

The Prefect Cloud REST API provides programmatic access to Prefect Cloud for orchestrating and managing workflows, deployments, flow runs, task runs, artifacts, and automations....

Prefect Server REST API

The Prefect Server REST API is the self-hosted variant of the Prefect orchestration API for managing workflows, flow runs, task runs, deployments, and work pools. When running P...

Prefect Python SDK

The Prefect Python SDK is used to build, test, and execute workflows against the Prefect API. It provides decorators such as @flow and @task for defining workflows, along with p...

Collections

Pricing Plans

Prefect Plans Pricing

3 plans

PLANS

Rate Limits

Prefect Rate Limits

5 limits

RATE LIMITS

FinOps

Resources

🔗
LinkedIn
LinkedIn
🌐
Portal
Portal
🚀
GettingStarted
GettingStarted
📰
Blog
Blog
💰
Pricing
Pricing
📝
Signup
Signup
💬
Support
Support
🔗
Community
Community
📄
ChangeLog
ChangeLog
🟢
StatusPage
StatusPage
🔗
Security
Security
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
👥
GitHubOrganization
GitHubOrganization
🔗
Login
Login
🔗
MCPServer
MCPServer
🔗
LlmsText
LlmsText

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Prefect Cloud API
  version: 0.8.4
items:
- info:
    name: Workspace Scopes
    type: folder
  items:
  - info:
      name: Get Workspace Scopes
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/workspace_scopes'
    docs: Get Workspace Scopes
- info:
    name: Accounts
    type: folder
  items:
  - info:
      name: List Permissions
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/permissions'
    docs: List account permissions
  - info:
      name: Read Account
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id'
      params:
      - name: account_id
        value: ''
        type: path
    docs: Get an account by id.
  - info:
      name: Update Account
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/api/accounts/:account_id'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update an account by id.
  - info:
      name: Delete Account
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/api/accounts/:account_id'
      params:
      - name: account_id
        value: ''
        type: path
    docs: Delete Account
  - info:
      name: Read Account Settings
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/settings'
      params:
      - name: account_id
        value: ''
        type: path
    docs: Read Account Settings
  - info:
      name: Update Account Settings
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/api/accounts/:account_id/settings'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update Account Settings
  - info:
      name: Read Account Domains
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/domains'
      params:
      - name: account_id
        value: ''
        type: path
    docs: Read Account Domains
  - info:
      name: Update Account Domains
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/api/accounts/:account_id/domains'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update an account's associated domains.
  - info:
      name: Read Account Usage Limits
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/usage_limits'
      params:
      - name: account_id
        value: ''
        type: path
    docs: Read Account Usage Limits
  - info:
      name: Read Account Usage
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/usage'
      params:
      - name: account_id
        value: ''
        type: path
    docs: Read Account Usage
- info:
    name: Account Images
    type: folder
  items:
  - info:
      name: Get Account Image
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/image'
      params:
      - name: account_id
        value: ''
        type: path
    docs: Get Account Image
  - info:
      name: Upload Account Image
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/api/accounts/:account_id/image'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: multipart-form
        data: []
    docs: Upload Account Image
  - info:
      name: Delete Account Image
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/api/accounts/:account_id/image'
      params:
      - name: account_id
        value: ''
        type: path
    docs: Delete Account Image
- info:
    name: Teams
    type: folder
  items:
  - info:
      name: Create Team
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/teams/'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Create or update a team''s metadata.


      Required account permissions: `create:team`'
  - info:
      name: Read Team
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/teams/:id'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: 'Get a team by id.


      Required account permissions: `read:team`'
  - info:
      name: Update Team
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/api/accounts/:account_id/teams/:id'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: '


      Required account permissions: `update:team`'
  - info:
      name: Delete Team
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/api/accounts/:account_id/teams/:id'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: 'Delete a team by id.


      Required account permissions: `delete:team`'
  - info:
      name: Read Teams
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/teams/filter'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Query for teams.


      Required account permissions: `read:team`'
  - info:
      name: Upsert Team Members
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/api/accounts/:account_id/teams/:id/members'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Upsert team memberships.


      Required account permissions: `update:team`'
  - info:
      name: Remove Team Member
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/api/accounts/:account_id/teams/:team_id/members/:actor_id'
      params:
      - name: account_id
        value: ''
        type: path
      - name: team_id
        value: ''
        type: path
      - name: actor_id
        value: ''
        type: path
    docs: 'Remove a member from a team.


      Required account permissions: `update:team`'
- info:
    name: Account Memberships
    type: folder
  items:
  - info:
      name: Read Account Memberships
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/account_memberships/filter'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Query for account memberships.


      Required account permissions: `read:account_membership`'
  - info:
      name: Count Account Memberships
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/account_memberships/count'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Query for account memberships count


      Required account permissions: `read:account_membership`'
  - info:
      name: Read Account Membership By User
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/account_memberships/by-user/:user_id'
      params:
      - name: user_id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: 'Get an Account Membership by user id.


      Looks up the membership for the given user within the account and returns

      enriched member details including timezone and team memberships.


      Returns 404 when the user is not a member of the account (e.g. they have

      since been removed), allowing the frontend to show a "deactivated user"

      fallback.


      Required account permissions: `read:account_membership`'
  - info:
      name: Read Account Membership By Bot
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/account_memberships/by-bot/:bot_id'
      params:
      - name: bot_id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: 'Get an Account Membership by bot id.


      Looks up the membership for the given bot within the account and returns

      enriched member details including team memberships.


      Returns 404 when the bot is not a member of the account.


      Required account permissions: `read:account_membership`'
  - info:
      name: Read Account Membership
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/account_memberships/:id'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: 'Get an Account Membership by membership id.


      Returns enriched member details including timezone and team memberships.

      Returns 404 for bot memberships — use the bots endpoint for those.


      Required account permissions: `read:account_membership`'
  - info:
      name: Update Account Membership
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/api/accounts/:account_id/account_memberships/:id'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Update an account membership by id.


      Required account permissions: `update:account_membership`'
  - info:
      name: Delete Account Membership
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/api/accounts/:account_id/account_memberships/:id'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: 'Delete an account membership by id.

      This will also delete any workspace accesses that the membership''s actor

      has under the account.


      Required account permissions: `delete:account_membership`'
  - info:
      name: Toggle Account Membership Active
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/api/accounts/:account_id/account_memberships/:id/active'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: '


      Required account permissions: `update:account_membership`'
  - info:
      name: Bulk Set Account Membership Active
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/account_memberships/set_active'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: '


      Required account permissions: `update:account_membership`'
- info:
    name: Account Roles
    type: folder
  items:
  - info:
      name: Read Account Role
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/account_roles/:id'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: 'Get an Account Role by id.


      Required account permissions: `read:account_role`'
  - info:
      name: Update Account Role
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/api/accounts/:account_id/account_roles/:id'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Update an account role by id.


      Required account permissions: `update:account_role`'
  - info:
      name: Delete Account Role
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/api/accounts/:account_id/account_roles/:id'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: 'Delete an account role by id.


      Required account permissions: `delete:account_role`'
  - info:
      name: Read Account Roles
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/account_roles/filter'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Query for account roles.


      Required account permissions: `read:account_role`'
- info:
    name: Account SSO
    type: folder
  items:
  - info:
      name: Read Sso Setup Url
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/sso/setup_url'
      params:
      - name: account_id
        value: ''
        type: path
    docs: 'Get an SSO connection setup URL for a given account


      Returns a URL if the account doesn''t already have SSO configured


      Required account permissions: `administrate:sso`'
  - info:
      name: Read Dsync Setup Url
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/sso/dsync_setup_url'
      params:
      - name: account_id
        value: ''
        type: path
    docs: 'Get an Directory Sync connection setup URL for a given account


      Returns a URL if the account doesn''t already have Directory Sync configured


      Required account permissions: `administrate:sso`'
  - info:
      name: Validate
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/sso/validate'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Validate that the current actor has recently authenticated with the

      Account''s authenticator.


      Required account permissions: `read:account`'
  - info:
      name: Integrations
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/sso/integrations'
      params:
      - name: account_id
        value: ''
        type: path
    docs: 'Return details about an Account''s SSO / SCIM integrations.


      Required account permissions: `administrate:sso`'
  - info:
      name: Remove Integration
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/api/accounts/:account_id/sso/integrations/:integration_id'
      params:
      - name: account_id
        value: ''
        type: path
      - name: integration_id
        value: ''
        type: path
    docs: 'Return details about an Account''s SSO / SCIM integrations.


      Required account permissions: `administrate:sso`'
- info:
    name: Bots
    type: folder
  items:
  - info:
      name: Create Bot
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/bots/'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Create a Bot


      Required account permissions: `create:bot`'
  - info:
      name: Read Bot
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/bots/:id'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: 'Get a bot by id.


      Required account permissions: `read:bot`'
  - info:
      name: Update Bot
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/api/accounts/:account_id/bots/:id'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Update a bot by id.


      Required account permissions: `update:bot`'
  - info:
      name: Delete Bot
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/api/accounts/:account_id/bots/:id'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: 'Delete a bot by id.


      Required account permissions: `delete:bot`'
  - info:
      name: Read Bots
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/bots/filter'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Query for bots.


      Required account permissions: `read:bot`'
  - info:
      name: Rotate Api Key
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/bots/:id/rotate_api_key'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Rotate the api key for a Bot.


      Required account permissions: `update:bot`'
  - info:
      name: Read Bot Api Keys
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/bots/:id/read_bot_api_keys'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: 'Get a bot''s api keys by id.


      Required account permissions: `read:bot`'
  - info:
      name: Delete Bot Api Key
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/api/accounts/:account_id/bots/:id/delete_bot_api_key/:api_key_id'
      params:
      - name: id
        value: ''
        type: path
      - name: api_key_id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: 'Delete a bot''s api key by id.


      Required account permissions: `update:bot`'
- info:
    name: Invitations
    type: folder
  items:
  - info:
      name: Create Invitation
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/invitations/'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Invite user(s) to an account.

      Any PENDING invitations for the same user to the account will be revoked.


      Required account permissions: `create:invitation`'
  - info:
      name: Read Invitation
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/invitations/:id'
      params:
      - name: account_id
        value: ''
        type: path
      - name: id
        value: ''
        type: path
    docs: 'Get an invitation by id


      Required account permissions: `read:invitation`'
  - info:
      name: Read Invitations
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/invitations/filter'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Query for invitations


      Required account permissions: `read:invitation`'
  - info:
      name: Count Invitations
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/invitations/count'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Query for invitations count


      Required account permissions: `read:invitation`'
  - info:
      name: Revoke Invitation
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/invitations/:id/revoke'
      params:
      - name: account_id
        value: ''
        type: path
      - name: id
        value: ''
        type: path
    docs: 'Delete an invitation by id


      Required account permissions: `update:invitation`'
  - info:
      name: Accept Invitation
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/invitations/:id/accept'
      params:
      - name: id
        value: ''
        type: path
      - name: invite_code
        value: ''
        type: query
    docs: Accept an invitation
  - info:
      name: Reject Invitation
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/invitations/:id/reject'
      params:
      - name: id
        value: ''
        type: path
      - name: invite_code
        value: ''
        type: query
    docs: Reject an invitation
- info:
    name: Workspaces
    type: folder
  items:
  - info:
      name: Create Workspace
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/workspaces/'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Create a Workspace


      Required account permissions: `create:workspace`'
  - info:
      name: Read Workspace
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/workspaces/:workspace_id'
      params:
      - name: workspace_id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: 'Get a workspace by id.


      Required account permissions: `read:workspace`'
  - info:
      name: Update Workspace
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/api/accounts/:account_id/workspaces/:workspace_id'
      params:
      - name: workspace_id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Update a workspace by id.


      Required workspace scopes: `write_workspace_settings`'
  - info:
      name: Delete Workspace
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/api/accounts/:account_id/workspaces/:workspace_id'
      params:
      - name: workspace_id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: 'Delete a workspace by id.


      Required workspace scopes: `manage_workspace_settings`'
  - info:
      name: Read Managed Execution Details
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/workspaces/:workspace_id/managed_execution/details'
      params:
      - name: workspace_id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: "Retrieves information about the managed execution usage and terms for a given workspace.\nThis includes the total\
      \ compute time in seconds utilized by the workspace during the current billing period,\nas well as limits pertaining\
      \ to the account terms, such as concurrency, work pool, and compute limits.\n\nReturns:\n    WorkspaceLimitsUsageResponse:\
      \ An object containing the compute usage in seconds and limits on\n    concurrency, work pool, and compute usage for\
      \ the specified workspace.\n\nRequired accoun"
  - info:
      name: Read Workspaces
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/workspaces/filter'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Query for workspaces.


      Required account permissions: `read:workspace`'
  - info:
      name: Transfer Workspace
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/workspaces/:workspace_id/transfer'
      params:
      - name: workspace_id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Transfer a workspace to a new account


      Required account permissions: `delete:workspace`'
  - info:
      name: Validate Transfer Workspace
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/workspaces/:workspace_id/validate_transfer'
      params:
      - name: workspace_id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Validate transfer of a workspace to a new account, returning any validation errors


      Required account permissions: `delete:workspace`'
  - info:
      name: Find Workspace Without Account Id
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/workspaces/:workspace_id'
      params:
      - name: workspace_id
        value: ''
        type: path
    docs: Redirects to the full account-scoped URL of a workspace
  - info:
      name: Read Workspace Settings
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/workspaces/:workspace_id/settings'
      params:
      - name: workspace_id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: 'Read a workspace''s settings by id.


      Required workspace scopes: `see_workspace_settings`'
  - info:
      name: Update Workspace Settings
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/api/accounts/:account_id/workspaces/:workspace_id/settings'
      params:
      - name: workspace_id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Update a workspace''s settings by id.


      Required workspace scopes: `write_workspace_settings`'
- info:
    name: Workspace Roles
    type: folder
  items:
  - info:
      name: Create Workspace Role
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/workspace_roles/'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Create a custom workspace role.


      Required account permissions: `create:workspace_role`'
  - info:
      name: Read Workspace Role
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/workspace_roles/:id'
      params:
      - name: id
        value: ''
        type: path
      - name: account_id
        value: ''
        type: path
    docs: 'Read a workspace role.


      Required account permissions: `read:workspace_role`'
  - info:
      name: Update Workspace Role
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/api/accounts/:account_id/workspace_roles/:id'
      params:
      - name: account_id
        value: ''
        type: path
      - name: id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Update a custom workspace role.


      Required account permissions: `update:workspace_role`'
  - info:
      name: Delete Workspace Role
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/api/accounts/:account_id/workspace_roles/:id'
      params:
      - name: account_id
        value: ''
        type: path
      - name: id
        value: ''
        type: path
    docs: 'Delete a custom workspace role.


      Required account permissions: `delete:workspace_role`'
  - info:
      name: Read Workspace Roles
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/api/accounts/:account_id/workspace_roles/filter'
      params:
      - name: account_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Query for workspace roles.


      Required account permissions: `read:workspace_role`'
- info:
    name: Rate Limits
    type: folder
  items:
  - info:
      name: Read Rate Limit Status
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/rate-limits/status'
      params:
      - name: account_id
        value: ''
        type: path
    docs: 'Check whether the account is currently exceeding any rate limits.


      Returns a list of bucket names that are currently exceeded. The frontend

      uses this to display a warning banner. The exceeded status auto-clears

      ~15 minutes after the last denied request.


      Required account permissions: `read:account`'
  - info:
      name: Read Rate Limit Usage
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/rate-limits/usage'
      params:
      - name: account_id
        value: ''
        type: path
      - name: since
        value: ''
        type: query
        description: The start date of the usage period
      - name: until
        value: ''
        type: query
        description: The end date of the usage period
      - name: keys
        value: ''
        type: query
        description: The keys to query usage for
    docs: 'Read rate limit usage for a given account.


      Required account permissions: `read:account`'
  - info:
      name: Download Rate Limit Usage
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/rate-limits/usage/download'
      params:
      - name: account_id
        value: ''
        type: path
      - name: since
        value: ''
        type: query
        description: The start date of the usage period
      - name: until
        value: ''
        type: query
        description: The end date of the usage period
      - name: keys
        value: ''
        type: query
        description: The keys to query usage for
    docs: 'Download rate limit usage for a given account as a CSV file.


      Required account permissions: `read:account`'
  - info:
      name: Read Orchestration Api Grouped Usage
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/rate-limits/orchestration-api'
      params:
      - name: account_id
        value: ''
        type: path
      - name: since
        value: ''
        type: query
        description: Start time of the usage period (inclusive)
      - name: until
        value: ''
        type: query
        description: End time of the usage period (inclusive)
      - name: group_by
        value: ''
        type: query
        description: The dimension to group usage by (e.g., workspace_id, api_key_name)
      - name: workspace_id
        value: ''
        type: query
        description: Filter by workspace ID
      - name: api_key_name
        value: ''
        type: query
        description: Filter by API key name
      - name: actor_name
        value: ''
        type: query
        description: Filter by actor name
    docs: 'Read orchestration API rate limit usage grouped by a dimension over time.


      Required account permissions: `read:account`'
  - info:
      name: Read Events Grouped Usage
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/rate-limits/events'
      params:
      - name: account_id
        value: ''
        type: path
      - name: since
        value: ''
        type: query
        description: Start time of the usage period (inclusive)
      - name: until
        value: ''
        type: query
        description: End time of the usage period (inclusive)
      - name: group_by
        value: ''
        type: query
        description: The dimension to group usage by (e.g., workspace_id, event_name)
      - name: workspace_id
        value: ''
        type: query
        description: Filter by workspace ID
      - name: api_key_name
        value: ''
        type: query
        description: Filter by API key name
      - name: actor_name
        value: ''
        type: query
        description: Filter by actor name
    docs: 'Read events rate limit usage grouped by a dimension over time.


      Required account permissions: `read:account`'
  - info:
      name: List Api Key Names
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/api/accounts/:account_id/rate-limits/api-key-names'
      params:
      - name: account_id
        value: ''
        type: path
      - name: since
        value: ''
        type: query
        description: Start time of the search period (inclusive)
      - name: until
        value: ''
        type: query
        description: End time of the search period (inclusive)
      - name: search
        value: ''
        type: query
        description: Fuzzy search string (case-insensitive substring match)
      - name: limit
 

# --- truncated at 32 KB (240 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/prefect/refs/heads/main/apis.yml