# Prefect ## Getting Started ### Get started - [Introduction](https://prefect-bd373955.mintlify.dev/docs/v3/get-started/index.md): Prefect turns Python functions into production workflows. Learn what Prefect does and where to start with installation, the quickstart, and guides. - [Install Prefect](https://prefect-bd373955.mintlify.dev/docs/v3/get-started/install.md): Install Prefect with pip, uv, or Docker, confirm the install with prefect version, and learn about Windows setup and the minimal client package. - [Quickstart](https://prefect-bd373955.mintlify.dev/docs/v3/get-started/quickstart.md): Create your first workflow ## Concepts - [Concepts](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/index.md): An overview of Prefect's core concepts, from workflows and deployments to configuration, automations, and Prefect Cloud features. ### Workflows - [Flows](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/flows.md): Flows compose work into a workflow. - [Tasks](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/tasks.md): Tasks are atomic units of work with transactional semantics. - [Assets](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/assets.md): Assets represent objects your workflows produce. - [Caching](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/caching.md): How Prefect caching works: cache keys, cache policies, expiration, storage, isolation, and sharing cached results across tasks. - [States](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/states.md): Prefect states contain information about the status of a flow or task run. - [Runtime context](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/runtime-context.md): The runtime context allows global access to information about the current run. - [Artifacts](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/artifacts.md): Artifacts are persisted outputs designed for human consumption and available in the UI. - [Task runners](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/task-runners.md): Learn about task runners for concurrent, parallel or distributed execution of tasks. - [Global concurrency limits](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/global-concurrency-limits.md): Understand how global concurrency limits control execution and manage resource usage. - [Tag-based concurrency limits](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/tag-based-concurrency-limits.md): Understand how tag-based concurrency limits prevent too many tasks from running simultaneously. ### Deployments - [Deployments](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/deployments.md): Learn how to use deployments to trigger flow runs remotely. - [Schedule flow runs](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/schedules.md): Prefect can schedule when to automatically create new flow runs. - [Work pools](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/work-pools.md): Learn how to configure dynamic infrastructure provisioning with work pools - [Workers](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/workers.md): Workers poll work pools for new runs to execute. ### Configuration - [Variables](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/variables.md): Variables are dynamically-named, mutable JSON values that can be used to store and reuse non-sensitive bits of data. - [Blocks](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/blocks.md): Prefect blocks allow you to manage configuration schemas, infrastructure, and secrets for use with deployments or flow scripts. - [Settings and profiles](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/settings-and-profiles.md): Prefect settings let you customize behavior across different environments. - [Prefect server](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/server.md): Self-host your own Prefect server instance. - [Telemetry](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/telemetry.md): Learn about Prefect's anonymous usage telemetry ### Automations - [Events](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/events.md): An event is a notification of a change - a record of activity in your stack. - [Automations](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/automations.md): Learn how to automatically take action in response to events. - [Define event triggers](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/event-triggers.md): Define a custom trigger to react to many kinds of events and metrics. ### Prefect Cloud - [Rate limits and data retention](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/rate-limits.md): Understand Prefect Cloud's API rate limits, request size limits, and data retention policies. - [Measure reliability with Service Level Agreements](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/slas.md): Define the performance expectations for your flows and to enable automated alerts when those expectations are not met. - [Webhooks](https://prefect-bd373955.mintlify.dev/docs/v3/concepts/webhooks.md): Understand Prefect Cloud webhooks, their configuration, and how to use templates to transform incoming HTTP requests into Prefect events. ## How-to Guides - [How-to Guides](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/index.md): An index of practical guides for writing workflows, deploying them, configuring Prefect, setting up automations, and running on your infrastructure. ### Workflows - [How to write and run a workflow](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/workflows/write-and-run.md): Turn a Python function into a Prefect flow with the @flow decorator, add tasks and child workflows, set timeouts, and configure flows and tasks. - [How to use assets to track workflow outputs](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/workflows/assets.md): Use the @materialize decorator to track the data, files, and models your workflows produce as assets, and declare dependencies between them. - [How to automatically rerun your workflow when it fails](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/workflows/retries.md): Configure automatic retries for flows and tasks, including retry delays, jitter, custom retry conditions, and global retry settings. - [How to manually retry a flow run](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/workflows/retry-flow-runs.md): Use prefect flow-run retry to re-execute a failed or cancelled flow run while keeping its original ID and parameters. - [How to customize a workflow's metadata](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/workflows/custom-metadata.md): Set custom names, descriptions, and run names for flows and tasks so they are easier to find in the Prefect UI. - [How to pass inputs to a workflow](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/workflows/pass-inputs.md): Define parameters on a flow function to pass inputs to a workflow, and understand how Prefect validates input types. - [How to add logging to a workflow](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/workflows/add-logging.md): Emit custom logs with get_run_logger, capture print statements, and send logs from subprocesses and threads to Prefect. - [How to access runtime information](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/workflows/access-runtime-info.md): Use the prefect.runtime module to read flow run, task run, and deployment information from inside a workflow. - [How to run work concurrently](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/workflows/run-work-concurrently.md): Run tasks concurrently with .submit and .map, choose a task runner, handle futures and failures, and use asyncio in flows. - [How to cache workflow step outputs](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/workflows/cache-workflow-steps.md): Cache task results based on inputs, a subset of inputs, or an expiration, ignore the cache when needed, and share caches across machines. - [How to run background tasks](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/workflows/run-background-tasks.md): Serve tasks as background workers and trigger them with .delay() from other processes, one at a time or in batches. - [How to respond to state changes](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/workflows/state-change-hooks.md): Learn how to execute code in response to entering states in your workflows. - [How to produce workflow artifacts](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/workflows/artifacts.md): Create link, progress, Markdown, table, and image artifacts from your workflows, then read, fetch, or delete them. - [How to test workflows](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/workflows/test-workflows.md): Learn how to test Prefect flows and tasks with the test harness, pytest fixtures, and common troubleshooting patterns. - [How to apply global concurrency and rate limits](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/workflows/global-concurrency-limits.md): Learn how to control concurrency and apply rate limits using Prefect's provided utilities. - [How to limit concurrent task runs with tags](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/workflows/tag-based-concurrency-limits.md): Prevent too many tasks from running simultaneously using tags. ### Deployments - [How to create deployments](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployments/create-deployments.md): Learn how to create deployments via the CLI, Python, or Terraform. - [Trigger ad-hoc deployment runs](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployments/run-deployments.md): Learn how to trigger deployment runs using the Prefect CLI and Python SDK. - [How to create schedules](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployments/create-schedules.md): Learn how to create schedules for your deployments. - [Manage Deployment schedules](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployments/manage-schedules.md): Learn how to pause, resume, and remove deployment schedules using the Prefect CLI. - [How to deploy flows with Python](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployments/deploy-via-python.md): Learn how to use the Python SDK to deploy flows to run in work pools. - [How to define deployments with YAML](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployments/prefect-yaml.md): Use YAML to schedule and trigger flow runs and manage your code and deployments. - [How to retrieve code from storage](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployments/store-flow-code.md): Learn about code storage as it relates to execution of deployments - [How to version deployments](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployments/versioning.md): Track changes to your deployments and roll back to previous versions - [How to override job variables](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployments/customize-job-variables.md): Override job variables on a deployment or flow run to set environment variables, specify a Docker image, allocate resources, and more. ### Configuration - [How to store secrets](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/configuration/store-secrets.md): Store secret strings and service credentials in Prefect blocks, encrypted at rest, and load them inside your workflows. - [How to share configuration between workflows](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/configuration/variables.md): Create, read, update, and delete Prefect variables to share non-sensitive configuration between workflows and deployment steps. - [How to manage settings](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/configuration/manage-settings.md): View, set, and unset Prefect settings from the CLI, create profiles, and configure settings for a project or a single process. ### Automations - [How to create automations](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/automations/creating-automations.md): Learn how to define automations that trigger actions based on events. - [Custom notifications](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/automations/custom-notifications.md): Send notifications with custom webhook payloads. - [How to create deployment triggers](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/automations/creating-deployment-triggers.md): Learn how to define automations that trigger deployment runs based on events. - [How to chain deployments with events](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/automations/chaining-deployments-with-events.md): Learn how to establish event-based dependencies between individual workflows. - [How to access deployment and flow run parameters](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/automations/access-parameters-in-templates.md): Learn how to access deployment and flow run parameters in templates - [How to pass event payloads to flows](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/automations/passing-event-payloads-to-flows.md): Learn how to pass custom event payload data to flows triggered by automations ### Workflow Infrastructure - [How to manage work pools](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployment_infra/manage-work-pools.md): Configure Prefect work pools using the CLI, Terraform, or REST API - [How to run flows in local processes](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployment_infra/run-flows-in-local-processes.md): Create a deployment for a flow by calling the `serve` method. - [How to run flows on serverless compute](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployment_infra/serverless.md): Learn how to use Prefect push work pools to schedule work on serverless infrastructure without having to run a worker. - [How to run flows in Docker containers](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployment_infra/docker.md): Learn how to execute deployments in isolated Docker containers - [How to run flows in a long-lived Docker container](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployment_infra/serve-flows-docker.md): Learn how to serve a flow in a long-lived Docker container - [How to run flows on Kubernetes](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployment_infra/kubernetes.md): Learn how to run flows on Kubernetes using containers. - [How to run flows on Modal](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployment_infra/modal.md): Learn how to use Modal as a push work pool to schedule, run, and debug your Prefect flows - [How to run flows on Coiled](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployment_infra/coiled.md): Deploy cloud infrastructure without expertise with Coiled #### Managed Infrastructure - [How to run flows on Prefect Managed infrastructure](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployment_infra/managed.md): Learn how Prefect runs deployments on Prefect's infrastructure. - [Using cloud workload identity with Prefect Managed work pools](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/deployment_infra/managed-aws-federated-identity.md): Learn how to configure cloud provider workload identity with short-lived credentials in Prefect Managed work pools. ### Prefect Cloud - [How to connect to Prefect Cloud](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/cloud/connect-to-cloud.md): Configure a local execution environment to access Prefect Cloud. - [How to manage workspaces](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/cloud/workspaces.md): Organize and compartmentalize your workflows with workspaces. - [How to create a webhook](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/cloud/create-a-webhook.md): Learn how to setup a webhook in the UI to trigger automations from external events. - [How to troubleshoot Prefect Cloud](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/cloud/troubleshoot-cloud.md): Learn how to identify and resolve common issues with Prefect Cloud. - [Prefect scope of support](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/cloud/scope-of-support.md): Understand what Prefect support covers and where to find help for requests outside its scope. #### Manage accounts - [How to manage user accounts](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/cloud/manage-users/index.md): Special features for Prefect Cloud users - [How to manage service accounts](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/cloud/manage-users/service-accounts.md): Workspaces are isolated environments for flows and deployments within Prefect Cloud. - [How to manage teams](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/cloud/manage-users/manage-teams.md): Manage teams of users in Prefect Cloud. - [How to manage account roles](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/cloud/manage-users/manage-roles.md): Configure user workspace roles in Prefect Cloud. - [How to manage API keys](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/cloud/manage-users/api-keys.md): Create an API key to access Prefect Cloud from a local execution environment. - [How to configure single sign-on](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/cloud/manage-users/configure-sso.md): Configure single sign-on (SSO) for your Prefect Cloud users. - [How to audit Cloud activity](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/cloud/manage-users/audit-logs.md): Monitor user access and activity with audit logs in Prefect Cloud. - [How to manage Access Control Lists (ACLs)](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/cloud/manage-users/object-access-control-lists.md): Restrict block and deployment access to individual actors within a workspace. - [How to secure access by IP address](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/cloud/manage-users/secure-access-by-ip-address.md): Manage network access to Prefect Cloud accounts with IP Allowlists. - [How to secure access over PrivateLink](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/cloud/manage-users/secure-access-by-private-link.md): Manage network access to Prefect Cloud accounts over PrivateLink. ### Prefect Self-hosted - [How to run a local Prefect server](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/self-hosted/server-cli.md): Get started with self-hosting by running Prefect server locally. - [How to run the Prefect server in Docker](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/self-hosted/server-docker.md): Run a containerized Prefect server instance with Docker. - [How to run Prefect on Windows](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/self-hosted/server-windows.md): Learn how to run Prefect server and workers on Windows with PowerShell. - [How to run the Prefect Server via Docker Compose](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/self-hosted/docker-compose.md): Deploy a self-hosted Prefect server environment using Docker Compose, including PostgreSQL, Redis, server, background services, and worker. ### AI - [AI assistants with Prefect MCP](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/ai/index.md): Connect AI assistants to Prefect with the Prefect MCP server to inspect runs and search the docs, and use AI log summaries in Prefect Cloud. - [How to use the Prefect MCP server](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/ai/use-prefect-mcp-server.md): Connect AI assistants to Prefect using the Model Context Protocol. - [AI log summaries](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/ai/flow-run-log-summaries.md): Use AI-generated summaries of flow run logs to understand failures faster. ### Migrate - [How to Migrate from Airflow](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/migrate/airflow.md): Migration from Apache Airflow to Prefect: A Comprehensive How-To Guide - [How to upgrade to Prefect 3.0](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/migrate/upgrade-to-prefect-3.md): Learn how to upgrade from Prefect 2.x to Prefect 3.0. - [How to upgrade from agents to workers](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/migrate/upgrade-agents-to-workers.md): Learn how to upgrade from agents to workers to significantly enhance the experience of deploying flows. - [How to transfer resources between Prefect environments](https://prefect-bd373955.mintlify.dev/docs/v3/how-to-guides/migrate/transfer-resources.md): Migrate flows, deployments, work pools, and other resources between Prefect profiles ## Advanced - [Advanced](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/index.md): An index of advanced Prefect topics: workflow patterns, automations, infrastructure, platform management, scaling, and extensibility. ### Workflows - [How to customize asset metadata](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/assets.md): This guide covers how to enhance your assets with rich metadata, custom properties, and explicit dependency management beyond what's automatically inferred from your task graph. - [How to customize caching behavior](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/caching.md): Store cache records apart from results, isolate cache access with locks, coordinate caching across tasks, and handle non-serializable inputs. - [How to customize Prefect's logging configuration](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/logging-customization.md): Override Prefect's logging configuration with settings, customize formatters and styles, include logs from other libraries, or disable logging. - [How to write transactional workflows](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/transactions.md): Group tasks into transactions that commit or roll back together, control commit timing, and build idempotent workflows. - [How to cancel running workflows](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/cancel-workflows.md): Cancel a scheduled or running flow run from the CLI, UI, Python client, or REST API, and learn how workers enforce cancellation. - [How to write interactive workflows](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/interactive.md): Pause or suspend a flow until it receives typed input in the Prefect UI, and send and receive input while a flow is running. - [How to persist and retrieve workflow results](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/results.md): Results represent the data returned by a flow or a task and enable features such as caching. - [How to deploy a web application powered by background tasks](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/background-tasks.md): Learn how to background heavy tasks from a web application to dedicated infrastructure. ### Deployments - [Configure UI forms for validating workflow inputs](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/form-building.md): Learn how to craft validated and user-friendly input forms for workflows. - [How to generate a custom SDK for your deployments](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/generate-custom-sdk.md): Generate a custom Python SDK from your deployments for IDE autocomplete and type checking. ### Automations - [How to debounce events](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/debouncing-events.md): Learn how to use the within parameter to handle multiple events in quick succession without creating a flow run for each event. - [How to detect and respond to zombie flows](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/detect-zombie-flows.md): Learn how to detect and respond to zombie flows. - [How to emit and use custom events](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/use-custom-event-grammar.md): Learn how to define specific trigger conditions based on custom event grammar. ### Workflow Infrastructure - [How to configure worker healthchecks](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/worker-healthchecks.md): Learn how to monitor worker health and automatically restart workers when they become unresponsive. - [How to daemonize worker processes](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/daemonize-processes.md): Learn how Prefect flow deployments enable configuring flows for scheduled and remote execution with workers. - [How to submit flows directly to dynamic infrastructure](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/submit-flows-directly-to-dynamic-infrastructure.md): Submit flows directly to different infrastructure types without a deployment ### Platform - [How to scale self-hosted Prefect](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/self-hosted.md): Learn how to run multiple Prefect server instances for high availability and load distribution - [How to maintain your Prefect database](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/database-maintenance.md): Monitor and maintain your PostgreSQL database for self-hosted Prefect deployments - [How to build deployments via CI/CD](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/deploy-ci-cd.md): CI/CD resources for working with Prefect. - [How to manage Prefect resources using Infrastructure as Code](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/infrastructure-as-code.md): Declaratively manage Prefect resources with additional tools - [How to self-host the Prefect Server with Helm](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/server-helm.md): Self-host your own Prefect server and connect a Prefect worker to it with Helm. - [How to secure a self-hosted Prefect server](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/security-settings.md): Learn about the Prefect settings that add security to your self-hosted server. - [How to configure network access for restricted environments](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/configure-network-access.md): Learn which endpoints and ports to allow for Prefect Cloud and self-hosted Prefect server in restricted network environments. ### Extensibility - [How to use and configure the API client](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/api-client.md): Use PrefectClient to call the Prefect REST API from Python: get a client, paginate queries, set custom headers, and manage flow runs. - [Customizing Base Job Templates](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/customize-base-job-templates.md): Learn how to customize Kubernetes base job templates for work pools - [How to create custom blocks](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/custom-blocks.md): Define custom block types by subclassing Block, register them, add secret fields, customize their display, and update existing block types. - [How to develop a custom worker](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/developing-a-custom-worker.md): Learn how to create a Prefect worker to run your flows. - [How to write a Prefect plugin](https://prefect-bd373955.mintlify.dev/docs/v3/advanced/plugins.md): Write a Prefect plugin that runs hooks on import to fetch credentials, set environment variables, or initialize external services. ## Examples - [Overview](https://prefect-bd373955.mintlify.dev/docs/v3/examples/index.md): Browse runnable Prefect examples, from a first flow to ETL pipelines, dbt orchestration, and AI agents, each with its source code. ### Examples - [Hello, world!](https://prefect-bd373955.mintlify.dev/docs/v3/examples/hello-world.md): Your first steps with Prefect – learn how to create a basic flow and understand core concepts. - [API-sourced ETL](https://prefect-bd373955.mintlify.dev/docs/v3/examples/run-api-sourced-etl.md): Build a small ETL pipeline that fetches JSON from a public API, transforms it with pandas, and writes a CSV – all orchestrated by Prefect. - [dbt Model Orchestration](https://prefect-bd373955.mintlify.dev/docs/v3/examples/run-dbt-with-prefect.md): Orchestrate any dbt project with bullet-proof retries, observability, and a single Python file — no hand-authored YAML or shell scripts required. - [Social Analytics Dashboard](https://prefect-bd373955.mintlify.dev/docs/v3/examples/atproto-dashboard-with-prefect-assets.md): Build a social media analytics dashboard using Prefect Assets, ATProto/Bluesky APIs, dbt transformations, and Streamlit visualization. - [Simple web scraper](https://prefect-bd373955.mintlify.dev/docs/v3/examples/simple-web-scraper.md): Learn how to scrape article content from web pages with Prefect tasks, retries, and automatic logging. - [AI-Powered Data Analyst](https://prefect-bd373955.mintlify.dev/docs/v3/examples/ai-data-analyst-with-pydantic-ai.md): Build a resilient AI data analyst using Prefect and `pydantic-ai` to analyze datasets, detect anomalies, and generate insights. - [Database Cleanup with Human or AI Approval](https://prefect-bd373955.mintlify.dev/docs/v3/examples/ai-database-cleanup-with-approval.md): Build database cleanup workflows that evolve from human oversight to AI autonomy. - [Per-worker task concurrency](https://prefect-bd373955.mintlify.dev/docs/v3/examples/per-worker-task-concurrency.md): Use Global Concurrency Limits to control how many tasks can use a worker's local resources simultaneously. - [Resume Flow Run on PR Merge](https://prefect-bd373955.mintlify.dev/docs/v3/examples/resume-flow-run-on-pr-merge.md): Automatically resume failed flow runs when a hotfix PR is merged in GitHub. - [Integrations (156 pages)](https://prefect-bd373955.mintlify.dev/docs/_llms/integrations.txt): Documentation for Integrations. - [API Reference (586 pages)](https://prefect-bd373955.mintlify.dev/docs/_llms/api-reference.txt): Documentation for API Reference. ## Contribute ### Contribute - [Contribute](https://prefect-bd373955.mintlify.dev/docs/contribute/index.md): Join the community, improve Prefect, and share knowledge - [Contribute to documentation](https://prefect-bd373955.mintlify.dev/docs/contribute/docs-contribute.md): Learn how to contribute to the Prefect docs. - [Develop on Prefect](https://prefect-bd373955.mintlify.dev/docs/contribute/dev-contribute.md): Learn how to set up Prefect for development, experimentation and code contributions. - [Contribute to integrations](https://prefect-bd373955.mintlify.dev/docs/contribute/contribute-integrations.md): How to contribute to an existing Prefect integration: fork the repository, make your change under src/integrations, test it, and open a pull request. - [Code and development style guide](https://prefect-bd373955.mintlify.dev/docs/contribute/styles-practices.md): Prefect's code style conventions, including how to structure imports, expose interfaces from __init__ files, and follow the Google Python Style Guide. - [Code of conduct](https://prefect-bd373955.mintlify.dev/docs/contribute/code-of-conduct.md): Learn about the standards we hold ourselves and our community to. ## Release Notes - [Release Notes](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/index.md): Browse release notes for Prefect OSS versions, Prefect integrations, and Prefect Cloud. - [Versioning and compatibility](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/versioning.md): How Prefect versions releases and which client versions are compatible with a given server or Prefect Cloud ### OSS - [3.9](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/oss/version-3-9.md): Release notes for Prefect 3.9.0 and 3.9.1, including Python 3.15 support, custom state discovery and filters, and the end of Python 3.10 support. - [3.8](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/oss/version-3-8.md): Release notes for Prefect 3.8.0 through 3.8.8, including the V2 UI as the default for self-hosted servers and deployment filters on flow run triggers. - [3.7](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/oss/version-3-7.md): Release notes for Prefect 3.7.0 through 3.7.8, which make infrastructure decorators and the plugin system generally available and add Mermaid flow graphs. - [3.6](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/oss/version-3-6.md): Release notes for Prefect 3.6.0 through 3.6.29, including the pydocket background task system and --output json for CLI list commands. - [3.5](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/oss/version-3-5.md): Release notes for Prefect 3.5.0, which drops Python 3.9, adds on_running task hooks, and removes deprecated Runner functionality and system blocks. - [3.4](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/oss/version-3-4.md): Release notes for Prefect 3.4.0 through 3.4.25, including Python 3.14 support, work pool default result storage, and removal of flow run notifications. - [3.3](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/oss/version-3-3.md): Release notes for Prefect 3.3.0 through 3.3.7, including Python 3.13 support, infrastructure decorators, and the removal of deprecated features. - [3.2](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/oss/version-3-2.md): Release notes for Prefect 3.2.0 through 3.2.15, including per-schedule flow parameters and prefect-client Docker images. - [3.1](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/oss/version-3-1.md): Release notes for Prefect 3.1.0 through 3.1.15, including the refactored settings system with prefect.toml and pyproject.toml support. - [3.0](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/oss/version-3-0.md): Release notes for Prefect 3.0.0 through 3.0.11, the first 3.x releases, with open-source events and automations and a transactional interface. ### Integrations - [prefect-aws](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-aws.md): Release notes for prefect-aws 0.5.14 through 0.7.12, including event-based ECS crash detection and a configurable base directory for included files. - [prefect-azure](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-azure.md): Release notes for prefect-azure 0.4.6 through 0.4.13, including the Azure DevOps credentials block and fixes for Azure Container Instances. - [prefect-bitbucket](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-bitbucket.md): Release notes for prefect-bitbucket 0.3.3 through 0.3.6, including credential templating for repository URLs and updated prefect lower bounds. - [prefect-databricks](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-databricks.md): Release notes for prefect-databricks 0.4.0 through 0.4.2, including service principal authentication for Databricks credentials. - [prefect-dbt](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-dbt.md): Release notes for prefect-dbt 0.7.7 through 0.7.25, including dbt Cloud asset materializations and dbt unit test support in PrefectDbtRunner. - [prefect-docker](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-docker.md): Release notes for prefect-docker 0.7.0 through 0.7.4, including registry authentication only when an image pull is required and Podman fixes. - [prefect-email](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-email.md): Release notes for prefect-email 0.4.3, which adds Python 3.13 support, drops Python 3.9, and sets up generated API reference docs. - [prefect-gcp](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-gcp.md): Release notes for prefect-gcp 0.6.11 through 0.6.22, including GCS bundle fixes, BigQuery dry-run fixes, and crash reporting for failed Vertex AI jobs. - [prefect-github](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-github.md): Release notes for prefect-github 0.3.2 through 0.4.3, including a git argument injection fix in GitHubRepository and symlink preservation in get_directory. - [prefect-gitlab](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-gitlab.md): Release notes for prefect-gitlab 0.3.2 through 0.3.4, including credential templating for repository URLs and updated prefect lower bounds. - [prefect-kubernetes](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-kubernetes.md): Release notes for prefect-kubernetes 0.6.5 through 0.8.0, including options to disable the worker observer and server-side filtering of observer watches. - [prefect-ray](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-ray.md): Release notes for prefect-ray 0.5.0 and 0.6.0, which drop Python 3.9 and 3.10 support and only shut down Ray clusters the task runner started. - [prefect-redis](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-redis.md): Release notes for prefect-redis 0.2.4 through 0.3.0, including Redis Sentinel support and the end of Python 3.10 support. - [prefect-shell](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-shell.md): Release notes for prefect-shell 0.3.2 through 0.3.7, including the log_prefix option on ShellOperation to suppress the PID output prefix. - [prefect-slack](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-slack.md): Release notes for prefect-slack 0.4.0, which drops Python 3.9, adds Python 3.13 support, and includes the subject in SlackWebhook notifications. - [prefect-snowflake](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-snowflake.md): Release notes for prefect-snowflake 0.28.7 through 0.28.9, including cursor reset error handling when closing SnowflakeConnector and regenerated API docs. - [prefect-sqlalchemy](https://prefect-bd373955.mintlify.dev/docs/v3/release-notes/integrations/prefect-sqlalchemy.md): Release notes for prefect-sqlalchemy 0.6.0 and 0.6.1, which split the connector into SqlAlchemyConnector and AsyncSqlAlchemyConnector. ## OpenAPI Specs - [schema](/docs/v3/api-ref/rest-api/server/schema.json) > The links below point to documentation indexes. Follow each `/_llms/` index recursively until you reach documentation pages. ## Indexes - [Integrations (156 pages)](https://prefect-bd373955.mintlify.dev/docs/_llms/integrations.txt): Documentation for Integrations. - [API Reference (586 pages)](https://prefect-bd373955.mintlify.dev/docs/_llms/api-reference.txt): Documentation for API Reference.