Skip to content
Start here

Create list items

rules.lists.items.create(strlist_id, ItemCreateParams**kwargs) -> ItemCreateResponse
POST/accounts/{account_id}/rules/lists/{list_id}/items

Appends new items to the list.

This operation is asynchronous. To get current the operation status, invoke the Get bulk operation status endpoint with the returned operation_id.

There is a limit of 1 pending bulk operation per account. If an outstanding bulk operation is in progress, the request will be rejected.

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
Accepted Permissions (at least one required)
Account Filter Lists Edit
ParametersExpand Collapse
account_id: str

The Account ID for this resource.

maxLength32
minLength32
list_id: str

The unique ID of the list.

maxLength32
minLength32
body: Iterable[Body]
One of the following:
class BodyListsListItemIPComment:
ip: str

An IPv4 address, an IPv4 CIDR, an IPv6 address, or an IPv6 CIDR.

comment: Optional[str]

Defines an informative summary of the list item.

class BodyListsListItemRedirectComment:
redirect: RedirectParam

The definition of the redirect.

source_url: str
target_url: str
include_subdomains: Optional[bool]
preserve_path_suffix: Optional[bool]
preserve_query_string: Optional[bool]
status_code: Optional[Literal[301, 302, 307, 308]]
One of the following:
301
302
307
308
subpath_matching: Optional[bool]
comment: Optional[str]

Defines an informative summary of the list item.

class BodyListsListItemHostnameComment:
hostname: HostnameParam

Valid characters for hostnames are ASCII(7) letters from a to z, the digits from 0 to 9, wildcards (*), and the hyphen (-).

url_hostname: str
exclude_exact_hostname: Optional[bool]

Only applies to wildcard hostnames (e.g., *.example.com). When true (default), only subdomains are blocked. When false, both the root domain and subdomains are blocked.

comment: Optional[str]

Defines an informative summary of the list item.

class BodyListsListItemASNComment:
asn: int

Defines a non-negative 32 bit integer.

comment: Optional[str]

Defines an informative summary of the list item.

ReturnsExpand Collapse
class ItemCreateResponse:
operation_id: str

The unique operation ID of the asynchronous action.

Create list items

import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
item = client.rules.lists.items.create(
    list_id="2c0fc9fa937b11eaa1b71c4d701ab86e",
    account_id="023e105f4ecef8ad9ca31a8372d0c353",
    body=[{
        "ip": "10.0.0.1"
    }],
)
print(item.operation_id)
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": {
    "operation_id": "4da8780eeb215e6cb7f48dd981c4ea02"
  },
  "success": true
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": {
    "operation_id": "4da8780eeb215e6cb7f48dd981c4ea02"
  },
  "success": true
}