# Billing # Profiles ## Billing Profile Details `client.Billing.Profiles.Get(ctx, query) (*ProfileGetResponse, error)` **get** `/accounts/{account_id}/billing/profile` Gets the current billing profile for the account. ### Parameters - `query ProfileGetParams` - `AccountID param.Field[string]` Identifier ### Returns - `type ProfileGetResponse struct{…}` - `ID string` Billing item identifier tag. - `AccountType string` - `Address string` - `Address2 string` - `Balance string` - `CardExpiryMonth int64` - `CardExpiryYear int64` - `CardNumber string` - `City string` - `Company string` - `Country string` - `CreatedOn Time` - `DeviceData string` - `EditedOn Time` - `EnterpriseBillingEmail string` - `EnterprisePrimaryEmail string` - `FirstName string` - `IsPartner bool` - `LastName string` - `NextBillDate Time` - `PaymentAddress string` - `PaymentAddress2 string` - `PaymentCity string` - `PaymentCountry string` - `PaymentEmail string` - `PaymentFirstName string` - `PaymentGateway string` - `PaymentLastName string` - `PaymentNonce string` - `PaymentState string` - `PaymentZipcode string` - `PrimaryEmail string` - `State string` - `TaxIDType string` - `Telephone string` - `UseLegacy bool` - `ValidationCode string` - `Vat string` - `Zipcode string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/billing" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) profile, err := client.Billing.Profiles.Get(context.TODO(), billing.ProfileGetParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", profile.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" } } ], "result": { "id": "b69a9f3492637782896352daae219e7d", "account_type": "type", "address": "123 Main Street", "address2": "Apt 1", "balance": "0", "card_expiry_month": 12, "card_expiry_year": 2099, "card_number": "4242424242424242", "city": "Anytown", "company": "Company", "country": "Anycountry", "created_on": "2014-03-01T12:21:59.3456Z", "device_data": "sample_data", "edited_on": "2014-03-01T12:21:59.3456Z", "enterprise_billing_email": "johndoe@gmail.com", "enterprise_primary_email": "johndoe@gmail.com", "first_name": "John", "is_partner": false, "last_name": "Doe", "next_bill_date": "2014-03-01T12:21:59.3456Z", "payment_address": "123 Main Street", "payment_address2": "Apt 1", "payment_city": "Anytown", "payment_country": "Anycountry", "payment_email": "johndoe@gmail.com", "payment_first_name": "John", "payment_gateway": "gateway", "payment_last_name": "Doe", "payment_nonce": "abc123", "payment_state": "state", "payment_zipcode": "12345", "primary_email": "johndoe@gmail.com", "state": "AnyState", "tax_id_type": "type", "telephone": "1234567899", "use_legacy": false, "validation_code": "1111", "vat": "GB123456789", "zipcode": "12345" }, "success": true } ``` # Usage ## Get PayGo Account Billable Usage (Beta) `client.Billing.Usage.Paygo(ctx, params) (*[]UsagePaygoResponse, error)` **get** `/accounts/{account_id}/billing/usage/paygo` Returns billable usage data for PayGo (self-serve) accounts. When no query parameters are provided, returns usage for the current billing period. This endpoint is currently in beta and access is restricted to select accounts. ### Parameters - `params UsagePaygoParams` - `AccountID param.Field[string]` Path param: Represents a Cloudflare resource identifier tag. - `From param.Field[Time]` Query param: Defines the start date for the usage query (e.g., 2025-02-01). - `To param.Field[Time]` Query param: Defines the end date for the usage query (e.g., 2025-03-01). ### Returns - `type UsagePaygoResponseEnvelopeResult []UsagePaygoResponse` Contains the array of billable usage records. - `BillingCurrency string` Specifies the billing currency code (ISO 4217). - `BillingPeriodStart Time` Indicates the start of the billing period. - `ChargePeriodEnd Time` Indicates the end of the charge period. - `ChargePeriodStart Time` Indicates the start of the charge period. - `ConsumedQuantity float64` Specifies the quantity consumed during this charge period. - `ConsumedUnit string` Specifies the unit of measurement for consumed quantity. - `ContractedCost float64` Specifies the cost for this charge period in the billing currency. - `CumulatedContractedCost float64` Specifies the cumulated cost for the billing period in the billing currency. - `CumulatedPricingQuantity int64` Specifies the cumulated pricing quantity for the billing period. - `PricingQuantity int64` Specifies the pricing quantity for this charge period. - `ServiceName string` Identifies the Cloudflare service. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/billing" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Billing.Usage.Paygo(context.TODO(), billing.UsagePaygoParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response) } ``` #### Response ```json { "errors": [ { "message": "message", "code": 0 } ], "messages": [ { "message": "message", "code": 0 } ], "result": [ { "BillingCurrency": "USD", "BillingPeriodStart": "2025-02-01T00:00:00Z", "ChargePeriodEnd": "2025-02-02T00:00:00Z", "ChargePeriodStart": "2025-02-01T00:00:00Z", "ConsumedQuantity": 150000, "ConsumedUnit": "Requests", "ContractedCost": 0.75, "CumulatedContractedCost": 2.25, "CumulatedPricingQuantity": 4500000, "PricingQuantity": 150000, "ServiceName": "Workers Standard" } ], "success": true } ```