Configure Bulk Redirects using Terraform
This Terraform example configures account-level Bulk Redirects. It creates a Bulk Redirect List populated with URL redirects and a corresponding Bulk Redirect Rule to activate them.
# Cloudflare account IDvariable "cloudflare_account_id" {  default = "<ACCOUNT_ID>"}
# Bulk redirect list descriptionvariable "bulk_redirect_list_description" {  default = "my bulk redirect description"}
# Bulk redirect list namevariable "bulk_redirect_list_name" {  default = "my_bulk_redirect_list_name"}
# Bulk redirect list item (URL redirect)variable "bulk_redirects" {  type = map(object({    source_url  = string    target_url  = string    status_code = number  }))
  default = {    "redirect1" = {      source_url = "https://source.url/redirect/1"      target_url = "https://target.url/?redirect=1"      status_code = 301    }    "redirect2" = {      source_url = "https://source.url/redirect/2"      target_url = "https://target.url/?redirect=2"      status_code = 302    }    "redirect3" = {      source_url = "https://source.url/redirect/3"      target_url = "https://target.url/?redirect=3"      status_code = 307    }  }}
# Create redirect listresource "cloudflare_list" "bulk_redirect_to_id" {  account_id  = var.cloudflare_account_id  name        = var.bulk_redirect_list_name  description = var.bulk_redirect_list_description  kind        = "redirect"}
# Add redirect item into the redirect listresource "cloudflare_list_item" "bulk_redirect_to_id_item" {  for_each = { for redirect in var.bulk_redirects : "${redirect.source_url}" => redirect }
  account_id = var.cloudflare_account_id  list_id    = cloudflare_list.bulk_redirect_to_id.id
  redirect {    source_url  = each.value.source_url    target_url  = each.value.target_url    status_code = each.value.status_code  }
  depends_on = [    cloudflare_list.bulk_redirect_to_id  ]
}
# Create bulk redirect and attach redirect listresource "cloudflare_ruleset" "bulk_root_redirect_to_id" {  account_id  = var.cloudflare_account_id  name        = var.bulk_redirect_list_name  description = var.bulk_redirect_list_description  kind        = "root"  phase       = "http_request_redirect"
  rules {    action = "redirect"    action_parameters {      from_list {        name = var.bulk_redirect_list_name        key  = "http.request.full_uri"      }    }    expression  = "http.request.full_uri in ${"$"}${var.bulk_redirect_list_name}"    description = var.bulk_redirect_list_description    enabled     = true  }
  depends_on = [    cloudflare_list_item.bulk_redirect_to_id_item  ]}Your API token must have at least the following permissions:
- Account Filter Lists > Edit
 - Bulk URL Redirects > Edit
 
- Account Rule Lists Write
 - Bulk URL Redirects Write
 
For additional guidance on using Terraform with Cloudflare, refer to the following resources:
- Terraform documentation
 - Cloudflare Provider for Terraform ↗ (reference documentation)
 
Was this helpful?
- Resources
 - API
 - New to Cloudflare?
 - Directory
 - 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
 -