Overview
ThePrefectClient
offers methods to simplify common operations against Prefect’s REST API that may not be abstracted away by the SDK.
For example, to reschedule flow runs, one might use methods like:
read_flow_runs
with aFlowRunFilter
to read certain flow runscreate_flow_run_from_deployment
to schedule new flow runsdelete_flow_run
to delete a veryLate
flow run
Getting a client
By default,get_client()
returns an asynchronous client to be used as a context manager, but you may also use a synchronous client.
Configure custom headers
You can configure custom HTTP headers to be sent with every API request by setting thePREFECT_CLIENT_CUSTOM_HEADERS
setting. This is useful for adding authentication headers, API keys, or other custom headers required by proxies, CDNs, or security systems.
Setting custom headers
Custom headers can be configured via environment variables or settings. The headers are specified as key-value pairs in JSON format.Protected headersCertain headers are protected and cannot be overridden by custom headers for security reasons:
User-Agent
- Managed by Prefect to identify client versionPrefect-Csrf-Token
- Used for CSRF protectionPrefect-Csrf-Client
- Used for CSRF protection
Examples
These examples are meant to illustrate how one might develop their own utilities for interacting with the API.If you believe a client method is missing, or you’d like to see a specific pattern better represented in the SDK generally, please open an issue.
Reschedule late flow runs
To bulk reschedule flow runs that are late, delete the late flow runs and create new ones in aScheduled
state with a delay. This is useful if you accidentally scheduled many
flow runs of a deployment to an inactive work pool, for example.
The following example reschedules the last three late flow runs of a deployment named
healthcheck-storage-test
to run six hours later than their original expected start time.
It also deletes any remaining late flow runs of that deployment.
First, define the rescheduling function:
View the complete example
View the complete example
reschedule_late_flows.py
Get the last N
completed flow runs from your workspace
To get the last N
completed flow runs from your workspace, use read_flow_runs
and prefect.client.schemas
.
This example gets the last three completed flow runs from your workspace:
View the complete example
View the complete example
get_recent_flows.py
DeploymentFilter
to get the last three completed flow runs of a specific deployment.
Transition all running flows to cancelled through the Client
Useget_client
to set multiple runs to a Cancelled
state.
This example cancels all flow runs that are in Pending
, Running
, Scheduled
, or Late
states when the script is run.
View the complete example
View the complete example
cancel_flows.py
Create, read, or delete artifacts
Create, read, or delete artifacts programmatically through the Prefect REST API. With the Artifacts API, you can automate the creation and management of artifacts as part of your workflow. For example, to read the five most recently created Markdown, table, and link artifacts, you can run the following:fixture:mock_post_200