curl --request POST \
--url https://api.example.com/work_pools/ \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"type": "prefect-agent",
"base_job_template": {},
"is_paused": false,
"concurrency_limit": 1,
"storage_configuration": {
"bundle_upload_step": {},
"bundle_execution_step": {},
"default_result_storage_block_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
'import requests
url = "https://api.example.com/work_pools/"
payload = {
"name": "<string>",
"description": "<string>",
"type": "prefect-agent",
"base_job_template": {},
"is_paused": False,
"concurrency_limit": 1,
"storage_configuration": {
"bundle_upload_step": {},
"bundle_execution_step": {},
"default_result_storage_block_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
type: 'prefect-agent',
base_job_template: {},
is_paused: false,
concurrency_limit: 1,
storage_configuration: {
bundle_upload_step: {},
bundle_execution_step: {},
default_result_storage_block_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
}
})
};
fetch('https://api.example.com/work_pools/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/work_pools/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'type' => 'prefect-agent',
'base_job_template' => [
],
'is_paused' => false,
'concurrency_limit' => 1,
'storage_configuration' => [
'bundle_upload_step' => [
],
'bundle_execution_step' => [
],
'default_result_storage_block_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/work_pools/"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"type\": \"prefect-agent\",\n \"base_job_template\": {},\n \"is_paused\": false,\n \"concurrency_limit\": 1,\n \"storage_configuration\": {\n \"bundle_upload_step\": {},\n \"bundle_execution_step\": {},\n \"default_result_storage_block_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/work_pools/")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"type\": \"prefect-agent\",\n \"base_job_template\": {},\n \"is_paused\": false,\n \"concurrency_limit\": 1,\n \"storage_configuration\": {\n \"bundle_upload_step\": {},\n \"bundle_execution_step\": {},\n \"default_result_storage_block_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/work_pools/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"type\": \"prefect-agent\",\n \"base_job_template\": {},\n \"is_paused\": false,\n \"concurrency_limit\": 1,\n \"storage_configuration\": {\n \"bundle_upload_step\": {},\n \"bundle_execution_step\": {},\n \"default_result_storage_block_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created": "2023-11-07T05:31:56Z",
"updated": "2023-11-07T05:31:56Z",
"name": "<string>",
"type": "<string>",
"description": "<string>",
"base_job_template": {},
"is_paused": false,
"concurrency_limit": 1,
"status": "READY",
"default_queue_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"storage_configuration": {
"bundle_upload_step": {},
"bundle_execution_step": {},
"default_result_storage_block_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"active_slots": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Create Work Pool
Creates a new work pool. If a work pool with the same name already exists, an error will be raised.
For more information, see https://docs.prefect.io/v3/concepts/work-pools.
curl --request POST \
--url https://api.example.com/work_pools/ \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"type": "prefect-agent",
"base_job_template": {},
"is_paused": false,
"concurrency_limit": 1,
"storage_configuration": {
"bundle_upload_step": {},
"bundle_execution_step": {},
"default_result_storage_block_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
'import requests
url = "https://api.example.com/work_pools/"
payload = {
"name": "<string>",
"description": "<string>",
"type": "prefect-agent",
"base_job_template": {},
"is_paused": False,
"concurrency_limit": 1,
"storage_configuration": {
"bundle_upload_step": {},
"bundle_execution_step": {},
"default_result_storage_block_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
type: 'prefect-agent',
base_job_template: {},
is_paused: false,
concurrency_limit: 1,
storage_configuration: {
bundle_upload_step: {},
bundle_execution_step: {},
default_result_storage_block_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
}
})
};
fetch('https://api.example.com/work_pools/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/work_pools/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'type' => 'prefect-agent',
'base_job_template' => [
],
'is_paused' => false,
'concurrency_limit' => 1,
'storage_configuration' => [
'bundle_upload_step' => [
],
'bundle_execution_step' => [
],
'default_result_storage_block_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/work_pools/"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"type\": \"prefect-agent\",\n \"base_job_template\": {},\n \"is_paused\": false,\n \"concurrency_limit\": 1,\n \"storage_configuration\": {\n \"bundle_upload_step\": {},\n \"bundle_execution_step\": {},\n \"default_result_storage_block_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/work_pools/")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"type\": \"prefect-agent\",\n \"base_job_template\": {},\n \"is_paused\": false,\n \"concurrency_limit\": 1,\n \"storage_configuration\": {\n \"bundle_upload_step\": {},\n \"bundle_execution_step\": {},\n \"default_result_storage_block_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/work_pools/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"type\": \"prefect-agent\",\n \"base_job_template\": {},\n \"is_paused\": false,\n \"concurrency_limit\": 1,\n \"storage_configuration\": {\n \"bundle_upload_step\": {},\n \"bundle_execution_step\": {},\n \"default_result_storage_block_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created": "2023-11-07T05:31:56Z",
"updated": "2023-11-07T05:31:56Z",
"name": "<string>",
"type": "<string>",
"description": "<string>",
"base_job_template": {},
"is_paused": false,
"concurrency_limit": 1,
"status": "READY",
"default_queue_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"storage_configuration": {
"bundle_upload_step": {},
"bundle_execution_step": {},
"default_result_storage_block_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"active_slots": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Headers
Body
Data used by the Prefect REST API to create a work pool.
The name of the work pool.
^[^/%&><]+$The work pool description.
The work pool type.
The work pool's base job template.
Pausing the work pool stops the delivery of all work.
A concurrency limit for the work pool.
x >= 0The storage configuration for the work pool.
Show child attributes
Show child attributes
Response
Successful Response
The name of the work pool.
^[^/%&><]+$The work pool type.
A description of the work pool.
The work pool's base job template.
Pausing the work pool stops the delivery of all work.
A concurrency limit for the work pool.
x >= 0The current status of the work pool.
READY, NOT_READY, PAUSED The id of the pool's default queue.
The storage configuration for the work pool.
Show child attributes
Show child attributes
The number of concurrency slots occupied by pending or running flow runs. None when concurrency_limit is not set.
Was this page helpful?