Skip to content
Start here

Create BGP Prefix

addressing.prefixes.bgp_prefixes.create(strprefix_id, BGPPrefixCreateParams**kwargs) -> BGPPrefix
POST/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes

Create a BGP prefix, controlling the BGP advertisement status of a specific subnet. When created, BGP prefixes are initially withdrawn, and can be advertised with the Update BGP Prefix API.

Security

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
account_id: str

Identifier of a Cloudflare account.

maxLength32
prefix_id: str

Identifier of an IP Prefix.

maxLength32
cidr: str

IP Prefix in Classless Inter-Domain Routing format.

ReturnsExpand Collapse
class BGPPrefix:
id: Optional[str]

Identifier of BGP Prefix.

maxLength32
asn: Optional[int]

Autonomous System Number (ASN) the prefix will be advertised under.

asn_prepend_count: Optional[int]

Number of times to prepend the Cloudflare ASN to the BGP AS-Path attribute

maximum3
minimum0
auto_advertise_withdraw: Optional[bool]

Determines if Cloudflare advertises a BYOIP BGP prefix even when there is no matching BGP prefix in the Magic routing table. When true, Cloudflare will automatically withdraw the BGP prefix when there are no matching BGP routes, and will resume advertising when there is at least one matching BGP route.

bgp_signal_opts: Optional[BGPSignalOpts]
enabled: Optional[bool]

Whether control of advertisement of the prefix to the Internet is enabled to be performed via BGP signal

modified_at: Optional[datetime]

Last time BGP signaling control was toggled. This field is null if BGP signaling has never been enabled.

formatdate-time
cidr: Optional[str]

IP Prefix in Classless Inter-Domain Routing format.

created_at: Optional[datetime]
formatdate-time
modified_at: Optional[datetime]
formatdate-time
on_demand: Optional[OnDemand]
advertised: Optional[bool]

Prefix advertisement status to the Internet. This field is only not ‘null’ if on demand is enabled.

advertised_modified_at: Optional[datetime]

Last time the advertisement status was changed. This field is only not ‘null’ if on demand is enabled.

formatdate-time
on_demand_enabled: Optional[bool]

Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled.

on_demand_locked: Optional[bool]

Whether the advertisement status of the prefix is locked, meaning it cannot be changed.

Create BGP Prefix

import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_email=os.environ.get("CLOUDFLARE_EMAIL"),  # This is the default and can be omitted
    api_key=os.environ.get("CLOUDFLARE_API_KEY"),  # This is the default and can be omitted
)
bgp_prefix = client.addressing.prefixes.bgp_prefixes.create(
    prefix_id="2af39739cc4e3b5910c918468bb89828",
    account_id="258def64c72dae45f3e4c8516e2111f2",
    cidr="192.0.2.0/24",
)
print(bgp_prefix.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"
      }
    }
  ],
  "success": true,
  "result": {
    "id": "7009ba364c7a5760798ceb430e603b74",
    "asn": 13335,
    "asn_prepend_count": 2,
    "auto_advertise_withdraw": true,
    "bgp_signal_opts": {
      "enabled": false,
      "modified_at": "2014-01-01T05:20:00.12345Z"
    },
    "cidr": "192.0.2.0/24",
    "created_at": "2014-01-01T05:20:00.12345Z",
    "modified_at": "2014-01-01T05:20:00.12345Z",
    "on_demand": {
      "advertised": true,
      "advertised_modified_at": "2014-01-01T05:20:00.12345Z",
      "on_demand_enabled": true,
      "on_demand_locked": false
    }
  }
}
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"
      }
    }
  ],
  "success": true,
  "result": {
    "id": "7009ba364c7a5760798ceb430e603b74",
    "asn": 13335,
    "asn_prepend_count": 2,
    "auto_advertise_withdraw": true,
    "bgp_signal_opts": {
      "enabled": false,
      "modified_at": "2014-01-01T05:20:00.12345Z"
    },
    "cidr": "192.0.2.0/24",
    "created_at": "2014-01-01T05:20:00.12345Z",
    "modified_at": "2014-01-01T05:20:00.12345Z",
    "on_demand": {
      "advertised": true,
      "advertised_modified_at": "2014-01-01T05:20:00.12345Z",
      "on_demand_enabled": true,
      "on_demand_locked": false
    }
  }
}