Skip to content
Start here

Update a payment rule

client.Monetization.Rules.EditRule(ctx, ruleID, params) (*MonetizationRuleCollection, error)
PATCH/zones/{zone_id}/monetization/rules/{rule_id}

Applies a partial update to a single Payment Required rule. Only the fields present in the request body are changed; omitted fields keep their current values. Returns the full resulting rule collection.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
ParametersExpand Collapse
ruleID string
maxLength32
params RuleEditRuleParams
ZoneID param.Field[string]

Path param: The unique ID of the zone.

MonetizationRulePatch param.Field[MonetizationRulePatch]

Body param: Partial update to a single payment rule. Only the fields present are modified; omitted fields keep their existing values.

ReturnsExpand Collapse
type MonetizationRuleCollection struct{…}

The zone’s payment rules. Mirrors the shape of the ruleset submitted to the deploy endpoint, so the response can be read back as the desired state.

The zone’s payment rules, in the order they are evaluated. Empty when the zone has no payment rules.

One of the following:
type MonetizationRuleMonetizationRulesMonetizationRuleInputFixedPrice struct{…}

Payment rule with a fixed price set at configuration time.

ID string

The server-assigned unique ID of the payment rule. Stable across full-ruleset replacements.

maxLength32
type MonetizationRuleMonetizationRulesMonetizationRuleInputOriginControlled struct{…}

Payment rule whose price the origin server sets dynamically. The rule carries no price and the price field must be omitted — any provided value, including “0”, is rejected because it would not be enforced.

ID string

The server-assigned unique ID of the payment rule. Stable across full-ruleset replacements.

maxLength32

Update a payment rule

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/monetization"
  "github.com/cloudflare/cloudflare-go/option"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  monetizationRuleCollection, err := client.Monetization.Rules.EditRule(
    context.TODO(),
    "023e105f4ecef8ad9ca31a8372d0c353",
    monetization.RuleEditRuleParams{
      ZoneID: cloudflare.F("9f1839b6152d298aca64c4e906b6d074"),
      MonetizationRulePatch: monetization.MonetizationRulePatchParam{

      },
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", monetizationRuleCollection.Rules)
}
{
  "errors": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "messages": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "result": {
    "rules": [
      {
        "address": "0x1234567890abcdef1234567890abcdef12345678===",
        "expression": "(http.request.uri.path eq \"/premium\" and http.request.method in {\"GET\" \"POST\"})",
        "price": "250000",
        "scheme": "exact",
        "id": "023e105f4ecef8ad9ca31a8372d0c353",
        "description": "Premium API endpoint",
        "enabled": true
      }
    ]
  },
  "success": true
}
Returns Examples
{
  "errors": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "messages": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "result": {
    "rules": [
      {
        "address": "0x1234567890abcdef1234567890abcdef12345678===",
        "expression": "(http.request.uri.path eq \"/premium\" and http.request.method in {\"GET\" \"POST\"})",
        "price": "250000",
        "scheme": "exact",
        "id": "023e105f4ecef8ad9ca31a8372d0c353",
        "description": "Premium API endpoint",
        "enabled": true
      }
    ]
  },
  "success": true
}