## Create BGP Prefix `client.Addressing.Prefixes.BGPPrefixes.New(ctx, prefixID, params) (*BGPPrefix, error)` **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. ### Parameters - `prefixID string` Identifier of an IP Prefix. - `params PrefixBGPPrefixNewParams` - `AccountID param.Field[string]` Path param: Identifier of a Cloudflare account. - `CIDR param.Field[string]` Body param: IP Prefix in Classless Inter-Domain Routing format. ### Returns - `type BGPPrefix struct{…}` - `ID string` Identifier of BGP Prefix. - `ASN int64` Autonomous System Number (ASN) the prefix will be advertised under. - `ASNPrependCount int64` Number of times to prepend the Cloudflare ASN to the BGP AS-Path attribute - `AutoAdvertiseWithdraw 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. - `BGPSignalOpts BGPPrefixBGPSignalOpts` - `Enabled bool` Whether control of advertisement of the prefix to the Internet is enabled to be performed via BGP signal - `ModifiedAt Time` Last time BGP signaling control was toggled. This field is null if BGP signaling has never been enabled. - `CIDR string` IP Prefix in Classless Inter-Domain Routing format. - `CreatedAt Time` - `ModifiedAt Time` - `OnDemand BGPPrefixOnDemand` - `Advertised bool` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `AdvertisedModifiedAt Time` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `OnDemandEnabled bool` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `OnDemandLocked bool` Whether the advertisement status of the prefix is locked, meaning it cannot be changed. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/addressing" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), option.WithAPIEmail("user@example.com"), ) bgpPrefix, err := client.Addressing.Prefixes.BGPPrefixes.New( context.TODO(), "2af39739cc4e3b5910c918468bb89828", addressing.PrefixBGPPrefixNewParams{ AccountID: cloudflare.F("258def64c72dae45f3e4c8516e2111f2"), CIDR: cloudflare.F("192.0.2.0/24"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", bgpPrefix.ID) } ``` #### Response ```json { "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 } } } ```