Create pools
Instead of starting on your production domain, you likely should create a load balancer on a test or staging domain. This may involve temporary changes to your monitors and pools, depending on your infrastructure setup.
Starting with a test domain allows you to verify everything is working correctly before routing production traffic.
You can create a pool within the load balancer workflow or in the Pools tab:
- 
Go to Load Balancing. 
- 
Select the Pools tab and then Create pool. 
- 
For your pool, enter the following information: - A name (must be unique)
- A description to provide more detail on the name
- A choice for Endpoint Steering, which affects how your pool routes traffic to each endpoint
 
- 
For each endpoint, enter the following information: - A name (must be unique)
- The endpoint address or associated hostname
- (Optional) A Virtual Network. Required when the endpoint has a private IP address.
- A Weight
- (Optional) A hostname by clicking Add host header
- (Optional) The destination port to which the traffic will be served.
 
- 
Repeat this process for additional endpoints in the pool. 
- 
(Optional) Set up coordinates for Proximity Steering on the pool. 
- 
On the pool, update the following information: - Health Threshold: The Health Threshold is the number of healthy endpoints for the pool as a whole to be considered Healthy and receive traffic based on pool order in a load balancer. Increasing this number makes the pool more reliable, but also more likely to become unhealthy. 
- Monitor: Attach a monitor
- Health Monitor Regions: Choose whether to check pool health from multiple locations, which increases accuracy but can lead to probe traffic to your endpoint
- Pool Notifications: You can set up new alerts - and view existing alerts - to be notified when pools are enabled or disabled, or pools or endpoints have changes in their health status.
 
- Health Threshold: 
- 
When finished, select Save. 
For a full list of properties, refer to Create Pool. If you need help with API authentication, refer to Cloudflare API documentation.
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/load_balancers/pools" \--header "Authorization: Bearer <API_TOKEN>" \--header "Content-Type: application/json" \--data '{  "description": "Primary data center - Provider XYZ",  "name": "primary-dc-1",  "enabled": false,  "load_shedding": {    "default_percent": 0,    "default_policy": "random",    "session_percent": 0,    "session_policy": "hash"  },  "minimum_origins": 2,  "monitor": "f1aba936b94213e5b8dca0c0dbf1f9cc",  "check_regions": [    "WEU",    "ENAM"  ],  "origins": [    {      "name": "app-server-1",      "address": "0.0.0.0",      "enabled": true,      "weight": 0.56,      "header": {        "Host": [          "example.com"        ]      }    }  ],  "origin_steering": {    "policy": "random"  },  "notification_filter": {    "origin": {      "disable": false,      "healthy": null    },    "pool": {      "disable": false,      "healthy": null    }  }}'The response contains the complete definition of the new pool.
{  "success": true,  "errors": [],  "messages": [],  "result": {    "id": "17b5962d775c646f3f9725cbc7a53df4",    "created_on": "2021-01-01T05:20:00.12345Z",    "modified_on": "2021-01-01T05:20:00.12345Z",    "description": "Primary data center - Provider XYZ",    "name": "primary-dc-1",    "enabled": false,    "load_shedding": {      "default_percent": 0,      "default_policy": "random",      "session_percent": 0,      "session_policy": "hash"    },    "minimum_origins": 2,    "monitor": "f1aba936b94213e5b8dca0c0dbf1f9cc",    "check_regions": [      "WEU",      "ENAM"    ],    "origins": [      {        "name": "app-server-1",        "address": "0.0.0.0",        "enabled": true,        "weight": 0.56,        "header": {          "Host": [            "example.com"          ]        }      }    ],    "origin_steering": {      "policy": "random"    },    "notification_filter": {      "origin": {        "disable": false,        "healthy": null      },      "pool": {        "disable": false,        "healthy": null      }    }  }}After creating the pool, you would also want to create a new notification with the following parameters specified:
"alert_type": "load_balancing_health_alert","filters": {  "pool_id": <<ARRAY_OF_INCLUDED_POOL_IDS>>,  "new_health": <<ARRAY_OF_STATUS_TRIGGERS>> ["Unhealthy", "Healthy"],  "event_source": <<ARRAY_OF_OBJECTS_WATCHED>> ["pool", "origin"]}Was this helpful?
- Resources
- API
- New to Cloudflare?
- Products
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark