---
title: "Get Customer Pricing"
method: GET
path: "/partner/customer/{customerUserId}/pricing"
tags: ["Pricing"]
---

# Get Customer Pricing

`GET /partner/customer/{customerUserId}/pricing`

## Request

- Base URL: `https://api.bunny.net`
- URL: `https://api.bunny.net/partner/customer/{customerUserId}/pricing`
- Auth: one of:
  - API key in header `AccessKey`
  - API key in header `Authorization`
- TypeScript: <https://skmtc.dev/bunny/apis/bunny-net-partner-portal-api/docs/partner/customer/:customerUserId/pricing/get.ts> (a function with typed inputs; its response is checked against the schema)

Get the full pricing overview for a customer: effective prices versus list prices, custom overrides, and overrides expiring soon.

## Path parameters

- `customerUserId` string, required

## Response `200`

Pricing overview payload.

- PartnerCustomerPricingModel
  - `CustomOverrideCount` integer: Number of active custom pricing rows the customer has
  - `ExpiringSoon` ExpiringOverrideModel[], nullable: Time-limited custom pricing rows that revert to list pricing soon
    - `ProductId` 1000 | 1100 | 1101 | 1102 | 1103 | 1104 | 1105 | 1106 | 1200 | 1201 | 1202 | 1203 | 1204 | 1205 | 1206 | 1300 | 1301 | 1302 | 1303 | 1304 | 1305 | 1306 | 1400 | 1401 | 1402 | 1403 | 1404 | 1405 | 1406 | 1500 | 1501 | 1502 | 1503 | 1504 | 1505 | 1506 | 1510 | 1511 | 1512 | 1513 | 1514 | 1515 | 1516 | 1600 | 1605 | 1610 | 1615 | 1620 | 1630 | 1700 | 1701 | 1702 | 1703 | 1704 | 1705 | 1706 | 1710 | 1711 | 1712 | 1713 | 1714 | 1715 | 1716 | 1800 | 1801 | 1802 | 1803 | 1804 | 1805 | 1806 | 1810 | 1811 | 1812 | 1813 | 1814 | 1815 | 1816 | 2000 | 2100 | 2200 | 2300 | 2400 | 3000 | 3100 | 3200 | 4000 | 4100 | 4200 | 4300 | 4400 | 4501 | 4502 | 4503 | 5000 | 5100 | 5200 | 5300 | 6000 | 6100 | 7000 | 7001 | 7002 | 7003 | 7004 | 8000 | 9000 | 10000 | 10100 | 10200 | 10300 | 10301 | 10400 | 10401 | 10410 | 10411 | 10412 | 10413 | 10414 | 10415 | 10416 | 10417 | 10420 | 10421 | 10422 | 10423 | 10424 | 10425 | 10426 | 10427 | 10500 | 10510 | 11000 | 11005 | 11100 | 11105 | 11110 | 11115 | 11120 | 11125 | 12000 | 12100 | 12200 | 12300 | 12400 | 13000 | 13100 | 14000 | 14100 | 14200 | 14300 | 14400: 1000 = CDN 1100 = CDN Standard Tier 1101 = CDN Standard Tier - Europe Traffic 1102 = CDN Standard Tier - North America Traffic 1103 = CDN Standard Tier - Asia & Oceania Traffic 1104 = CDN Standard Tier - Middle East & Africa Traffic 1105 = CDN Standard Tier - South America Traffic 1106 = CDN Standard Tier - Uncategorized Traffic 1200 = CDN Standard Tier (Stream) 1201 = CDN Standard Tier (Stream) - Europe Traffic 1202 = CDN Standard Tier (Stream) - North America Traffic 1203 = CDN Standard Tier (Stream) - Asia & Oceania Traffic 1204 = CDN Standard Tier (Stream) - Middle East & Africa Traffic 1205 = CDN Standard Tier (Stream) - South America Traffic 1206 = CDN Standard Tier (Stream) - Uncategorized Traffic 1300 = CDN Volume Tier 1301 = CDN Volume Tier - Europe Traffic 1302 = CDN Volume Tier - North America Traffic 1303 = CDN Volume Tier - Asia & Oceania Traffic 1304 = CDN Volume Tier - Middle East & Africa Traffic 1305 = CDN Volume Tier - South America Traffic 1306 = CDN Volume Tier - Uncategorized Traffic 1400 = CDN Volume Tier (Stream) 1401 = CDN Volume Tier (Stream) - Europe Traffic 1402 = CDN Volume Tier (Stream) - North America Traffic 1403 = CDN Volume Tier (Stream) - Asia & Oceania Traffic 1404 = CDN Volume Tier (Stream) - Middle East & Africa Traffic 1405 = CDN Volume Tier (Stream) - South America Traffic 1406 = CDN Volume Tier (Stream) - Uncategorized Traffic 1500 = CDN Standard Tier (Storage) 1501 = CDN Standard Tier (Storage) - Europe Traffic 1502 = CDN Standard Tier (Storage) - North America Traffic 1503 = CDN Standard Tier (Storage) - Asia & Oceania Traffic 1504 = CDN Standard Tier (Storage) - Middle East & Africa Traffic 1505 = CDN Standard Tier (Storage) - South America Traffic 1506 = CDN Standard Tier (Storage) - Uncategorized Traffic 1510 = CDN Volume Tier (Storage) 1511 = CDN Volume Tier (Storage) - Europe Traffic 1512 = CDN Volume Tier (Storage) - North America Traffic 1513 = CDN Volume Tier (Storage) - Asia & Oceania Traffic 1514 = CDN Volume Tier (Storage) - Middle East & Africa Traffic 1515 = CDN Volume Tier (Storage) - South America Traffic 1516 = CDN Volume Tier (Storage) - Uncategorized Traffic 1600 = CDN WebSockets Tier 1000 1605 = CDN WebSockets Tier 2500 1610 = CDN WebSockets Tier 5000 1615 = CDN WebSockets Tier 10000 1620 = CDN WebSockets Tier 25000 1630 = CDN WebSockets (Consumption Based) 1700 = CDN Standard Tier (Magic Containers) 1701 = CDN Standard Tier (Magic Containers) - Europe Traffic 1702 = CDN Standard Tier (Magic Containers) - North America Traffic 1703 = CDN Standard Tier (Magic Containers) - Asia & Oceania Traffic 1704 = CDN Standard Tier (Magic Containers) - Middle East & Africa Traffic 1705 = CDN Standard Tier (Magic Containers) - South America Traffic 1706 = CDN Standard Tier (Magic Containers) - Uncategorized Traffic 1710 = CDN Volume Tier (Magic Containers) 1711 = CDN Volume Tier (Magic Containers) - Europe Traffic 1712 = CDN Volume Tier (Magic Containers) - North America Traffic 1713 = CDN Volume Tier (Magic Containers) - Asia & Oceania Traffic 1714 = CDN Volume Tier (Magic Containers) - Middle East & Africa Traffic 1715 = CDN Volume Tier (Magic Containers) - South America Traffic 1716 = CDN Volume Tier (Magic Containers) - Uncategorized Traffic 1800 = CDN Standard Tier (Edge Scripting) 1801 = CDN Standard Tier (Edge Scripting) - Europe Traffic 1802 = CDN Standard Tier (Edge Scripting) - North America Traffic 1803 = CDN Standard Tier (Edge Scripting) - Asia & Oceania Traffic 1804 = CDN Standard Tier (Edge Scripting) - Middle East & Africa Traffic 1805 = CDN Standard Tier (Edge Scripting) - South America Traffic 1806 = CDN Standard Tier (Edge Scripting) - Uncategorized Traffic 1810 = CDN Volume Tier (Edge Scripting) 1811 = CDN Volume Tier (Edge Scripting) - Europe Traffic 1812 = CDN Volume Tier (Edge Scripting) - North America Traffic 1813 = CDN Volume Tier (Edge Scripting) - Asia & Oceania Traffic 1814 = CDN Volume Tier (Edge Scripting) - Middle East & Africa Traffic 1815 = CDN Volume Tier (Edge Scripting) - South America Traffic 1816 = CDN Volume Tier (Edge Scripting) - Uncategorized Traffic 2000 = Storage 2100 = Storage Standard Tier 2200 = Storage SSD Tier 2300 = Storage Standard Tier (Stream) 2400 = Storage SSD Tier (Stream) 3000 = DNS 3100 = DNS Smart Queries 3200 = DNS Standard Queries 4000 = Stream 4100 = Transcribing 4200 = Premium Encoding 4300 = DRM Base 4400 = DRM License Issued 4501 = Live Encoding SD 4502 = Live Encoding HD 4503 = Live Encoding 4K 5000 = Edge Scripting CDN 5100 = Edge Scripting DNS 5200 = Edge Scripting CDN Requests 5300 = Edge Scripting CDN CPU 6000 = Optimizer 6100 = Optimizer_Burrow_TunneledTraffic 7000 = Extra Zones 7001 = Extra Zones CDN 7002 = Extra Zones Stream 7003 = Extra Zones Storage 7004 = Extra Zones DNS 8000 = Monthly Commitment 9000 = Top-Up 10000 = Magic Containers 10100 = Magic Containers CPU 10200 = Magic Containers RAM 10300 = Magic Containers IP 10301 = Magic Containers Anycast IP 10400 = Magic Containers Traffic 10401 = Magic Containers Anycast Traffic 10410 = Magic Containers Anycast Ingress Traffic 10411 = Magic Containers Anycast Ingress - Europe Traffic 10412 = Magic Containers Anycast Ingress - North America Traffic 10413 = Magic Containers Anycast Ingress - Asia Traffic 10414 = Magic Containers Anycast Ingress - Australia Traffic 10415 = Magic Containers Anycast Ingress - Africa Traffic 10416 = Magic Containers Anycast Ingress - South America Traffic 10417 = Magic Containers Anycast Ingress - Uncategorized Traffic 10420 = Magic Containers Egress Traffic 10421 = Magic Containers Egress - Europe Traffic 10422 = Magic Containers Egress - North America Traffic 10423 = Magic Containers Egress - Asia Traffic 10424 = Magic Containers Egress - Australia Traffic 10425 = Magic Containers Egress - Africa Traffic 10426 = Magic Containers Egress - South America Traffic 10427 = Magic Containers Egress - Uncategorized Traffic 10500 = Magic Containers Volumes 10510 = Magic Containers Persistent Volumes 11000 = Shield 11005 = Shield Basic Overages 11100 = Shield Advanced Monthly Plan 11105 = Shield Advanced Overages 11110 = Shield Business Monthly Plan 11115 = Shield Business Overages 11120 = Shield Enterprise Monthly Plan 11125 = Shield Enterprise Overages 12000 = Bunny Database 12100 = Bunny Database Storage 12200 = Bunny Database Replica Storage 12300 = Bunny Database Row Reads 12400 = Bunny Database Row Writes 13000 = CDN Load Balancer Monthly Fee 13100 = CDN Load Balancer Request Overages 14000 = AiGateway 14100 = AiGateway_InputTokens 14200 = AiGateway_OutputTokens 14300 = AiGateway_CachedTokens 14400 = AiGateway_Other
    - `ProductName` string, nullable: Human-readable product name, e.g. "DNS"
    - `Label` string, nullable: Override label / description, e.g. "Standard Queries"
    - `PricePerUnit` number, nullable: Overridden flat price per unit. Null when the override is tiered (see Tiers)
    - `Tiers` PricingTierModel[], nullable: Pricing tiers, populated when the override is tiered; null for a flat override
      - `ThresholdFrom` integer: Inclusive lower bound of the tier, in product units
      - `ThresholdTo` integer, nullable: Exclusive upper bound of the tier, in product units. Null for the unbounded top tier
      - `PricePerUnit` number: Price per unit within this tier
      - `TierOrder` integer: Tier ordering, ascending
      - `Description` string, nullable: Optional tier description
    - `ValidTo` string, date-time: Date the override reverts to list pricing
    - `DaysLeft` integer: Whole days remaining until the override expires
  - `CdnStandardTier` CdnTierPricingModel
    - `PricePerGb` number, double: Effective price per GB
    - `DefaultPricePerGb` number, double: Public list price per GB
    - `IsOverridden` boolean: Whether the customer has an explicit price override
    - `EnabledPops` string, nullable: Comma-separated enabled PoP codes, if configured
    - `DisabledPops` string, nullable: Comma-separated disabled PoP codes, if configured
    - `ExtraPops` string, nullable: Comma-separated extra PoP codes, if configured (Volume tier only)
  - `CdnVolumeTier` CdnTierPricingModel
    - `PricePerGb` number, double: Effective price per GB
    - `DefaultPricePerGb` number, double: Public list price per GB
    - `IsOverridden` boolean: Whether the customer has an explicit price override
    - `EnabledPops` string, nullable: Comma-separated enabled PoP codes, if configured
    - `DisabledPops` string, nullable: Comma-separated disabled PoP codes, if configured
    - `ExtraPops` string, nullable: Comma-separated extra PoP codes, if configured (Volume tier only)
  - `CdnStandardTierDiscount` CdnStandardTierDiscountModel
    - `NorthAmericaEuropePercent` number, double: Discount % for North America / Europe
    - `AsiaOceaniaPercent` number, double: Discount % for Asia & Oceania
    - `SouthAmericaPercent` number, double: Discount % for South America
    - `AfricaPercent` number, double: Discount % for Africa
  - `CdnVolumeTierPricing` CdnVolumeTierPricingModel
    - `Under100TbPerGb` number, double, nullable: Price per GB for the <100TB tier. Null means list pricing
    - `From100TbPerGb` number, double, nullable: Price per GB for the 100TB-500TB tier. Null means list pricing
    - `From500TbPerGb` number, double, nullable: Price per GB for the 500TB-1PB tier. Null means list pricing
    - `From1000TbPerGb` number, double, nullable: Price per GB for the 1PB-2PB tier. Null means list pricing
    - `From2000TbPerGb` number, double, nullable: Price per GB for the >2PB tier. Null means list pricing
  - `Storage` StoragePricingModel
    - `DiscountPercent` number, double: Storage discount percentage
    - `EdgePerTbMonth` number, double: Effective edge storage price per TB per month
    - `DefaultEdgePerTbMonth` number, double: Public list edge storage price per TB per month
    - `EdgeIsOverridden` boolean: Whether edge storage has an explicit price override
    - `StandardPerTbMonth` number, double: Effective standard storage price per TB per month
    - `DefaultStandardPerTbMonth` number, double: Public list standard storage price per TB per month
    - `StandardIsOverridden` boolean: Whether standard storage has an explicit price override
  - `Optimizer` OptimizerPricingModel
    - `PerZoneMonth` number: Effective Optimizer price per zone per month
    - `DefaultPerZoneMonth` number: Public list Optimizer price per zone per month
    - `IsOverridden` boolean: Whether the price differs from the list price
  - `ExtraZones` ExtraZonePricingModel
    - `FreePullZones` integer
    - `ExtraPullZonePrice` number, nullable
    - `FreeStorageZones` integer
    - `ExtraStorageZonePrice` number, nullable
    - `FreeDnsZones` integer
    - `ExtraDnsZonePrice` number, nullable
    - `FreeVideoLibraries` integer
    - `ExtraVideoLibraryPrice` number, nullable
  - `BunnyShield` BunnyShieldPricingModel
    - `Basic` BunnyShieldTierModel
      - `MonthlyCost` number: Monthly subscription cost for the tier
      - `DefaultMonthlyCost` number: Public list monthly subscription cost
      - `OveragesCostPerMillion` number: Overage cost per 1M requests
      - `DefaultOveragesCostPerMillion` number: Public list overage cost per 1M requests
      - `IncludedRequests` integer: Requests included in the tier before overages apply
    - `Advanced` BunnyShieldTierModel
      - `MonthlyCost` number: Monthly subscription cost for the tier
      - `DefaultMonthlyCost` number: Public list monthly subscription cost
      - `OveragesCostPerMillion` number: Overage cost per 1M requests
      - `DefaultOveragesCostPerMillion` number: Public list overage cost per 1M requests
      - `IncludedRequests` integer: Requests included in the tier before overages apply
    - `Business` BunnyShieldTierModel
      - `MonthlyCost` number: Monthly subscription cost for the tier
      - `DefaultMonthlyCost` number: Public list monthly subscription cost
      - `OveragesCostPerMillion` number: Overage cost per 1M requests
      - `DefaultOveragesCostPerMillion` number: Public list overage cost per 1M requests
      - `IncludedRequests` integer: Requests included in the tier before overages apply
    - `Enterprise` BunnyShieldTierModel
      - `MonthlyCost` number: Monthly subscription cost for the tier
      - `DefaultMonthlyCost` number: Public list monthly subscription cost
      - `OveragesCostPerMillion` number: Overage cost per 1M requests
      - `DefaultOveragesCostPerMillion` number: Public list overage cost per 1M requests
      - `IncludedRequests` integer: Requests included in the tier before overages apply
  - `Drm` DrmPricingModel
    - `BaseFeePerLibraryMonth` number: Effective DRM base fee per library per month
    - `DefaultBaseFeePerLibraryMonth` number: Public list DRM base fee per library per month
    - `LicenseCost` number, nullable: Effective per-license cost, if overridden
    - `DefaultLicenseCost` number: Public list per-license cost
  - `Transcribing` TieredUnitPriceModel
    - `PricePerUnit` number, nullable: Effective flat price per unit. Null when the customer is on tiered pricing (see Tiers)
    - `DefaultPricePerUnit` number, nullable: Public list price per unit. Null when there is no known list price for this product
    - `Unit` string, nullable: The unit the price applies to, e.g. "minute" or "1M queries"
    - `IsOverridden` boolean: Whether the customer has an explicit override (flat or tiered)
    - `Tiers` PricingTierModel[], nullable: Pricing tiers, populated when the customer is on tiered pricing for this product
      - `ThresholdFrom` integer: Inclusive lower bound of the tier, in product units
      - `ThresholdTo` integer, nullable: Exclusive upper bound of the tier, in product units. Null for the unbounded top tier
      - `PricePerUnit` number: Price per unit within this tier
      - `TierOrder` integer: Tier ordering, ascending
      - `Description` string, nullable: Optional tier description
  - `PremiumEncoding` TieredUnitPriceModel
    - `PricePerUnit` number, nullable: Effective flat price per unit. Null when the customer is on tiered pricing (see Tiers)
    - `DefaultPricePerUnit` number, nullable: Public list price per unit. Null when there is no known list price for this product
    - `Unit` string, nullable: The unit the price applies to, e.g. "minute" or "1M queries"
    - `IsOverridden` boolean: Whether the customer has an explicit override (flat or tiered)
    - `Tiers` PricingTierModel[], nullable: Pricing tiers, populated when the customer is on tiered pricing for this product
      - `ThresholdFrom` integer: Inclusive lower bound of the tier, in product units
      - `ThresholdTo` integer, nullable: Exclusive upper bound of the tier, in product units. Null for the unbounded top tier
      - `PricePerUnit` number: Price per unit within this tier
      - `TierOrder` integer: Tier ordering, ascending
      - `Description` string, nullable: Optional tier description
  - `EdgeScripting` EdgeScriptingPricingModel
    - `RequestsPerMillion` number: Effective price per 1M requests
    - `DefaultRequestsPerMillion` number: Public list price per 1M requests
    - `RequestsIsOverridden` boolean: Whether requests pricing is overridden
    - `CpuPer1000Seconds` number: Effective CPU price per 1000 seconds
    - `DefaultCpuPer1000Seconds` number: Public list CPU price per 1000 seconds
    - `CpuIsOverridden` boolean: Whether CPU pricing is overridden
  - `WebSockets` TieredUnitPriceModel
    - `PricePerUnit` number, nullable: Effective flat price per unit. Null when the customer is on tiered pricing (see Tiers)
    - `DefaultPricePerUnit` number, nullable: Public list price per unit. Null when there is no known list price for this product
    - `Unit` string, nullable: The unit the price applies to, e.g. "minute" or "1M queries"
    - `IsOverridden` boolean: Whether the customer has an explicit override (flat or tiered)
    - `Tiers` PricingTierModel[], nullable: Pricing tiers, populated when the customer is on tiered pricing for this product
      - `ThresholdFrom` integer: Inclusive lower bound of the tier, in product units
      - `ThresholdTo` integer, nullable: Exclusive upper bound of the tier, in product units. Null for the unbounded top tier
      - `PricePerUnit` number: Price per unit within this tier
      - `TierOrder` integer: Tier ordering, ascending
      - `Description` string, nullable: Optional tier description
  - `BunnyDb` BunnyDbPricingModel
    - `ColdStorage` TieredUnitPriceModel
      - `PricePerUnit` number, nullable: Effective flat price per unit. Null when the customer is on tiered pricing (see Tiers)
      - `DefaultPricePerUnit` number, nullable: Public list price per unit. Null when there is no known list price for this product
      - `Unit` string, nullable: The unit the price applies to, e.g. "minute" or "1M queries"
      - `IsOverridden` boolean: Whether the customer has an explicit override (flat or tiered)
      - `Tiers` PricingTierModel[], nullable: Pricing tiers, populated when the customer is on tiered pricing for this product
        - `ThresholdFrom` integer: Inclusive lower bound of the tier, in product units
        - `ThresholdTo` integer, nullable: Exclusive upper bound of the tier, in product units. Null for the unbounded top tier
        - `PricePerUnit` number: Price per unit within this tier
        - `TierOrder` integer: Tier ordering, ascending
        - `Description` string, nullable: Optional tier description
    - `ActiveStorage` TieredUnitPriceModel
      - `PricePerUnit` number, nullable: Effective flat price per unit. Null when the customer is on tiered pricing (see Tiers)
      - `DefaultPricePerUnit` number, nullable: Public list price per unit. Null when there is no known list price for this product
      - `Unit` string, nullable: The unit the price applies to, e.g. "minute" or "1M queries"
      - `IsOverridden` boolean: Whether the customer has an explicit override (flat or tiered)
      - `Tiers` PricingTierModel[], nullable: Pricing tiers, populated when the customer is on tiered pricing for this product
        - `ThresholdFrom` integer: Inclusive lower bound of the tier, in product units
        - `ThresholdTo` integer, nullable: Exclusive upper bound of the tier, in product units. Null for the unbounded top tier
        - `PricePerUnit` number: Price per unit within this tier
        - `TierOrder` integer: Tier ordering, ascending
        - `Description` string, nullable: Optional tier description
    - `RowReads` TieredUnitPriceModel
      - `PricePerUnit` number, nullable: Effective flat price per unit. Null when the customer is on tiered pricing (see Tiers)
      - `DefaultPricePerUnit` number, nullable: Public list price per unit. Null when there is no known list price for this product
      - `Unit` string, nullable: The unit the price applies to, e.g. "minute" or "1M queries"
      - `IsOverridden` boolean: Whether the customer has an explicit override (flat or tiered)
      - `Tiers` PricingTierModel[], nullable: Pricing tiers, populated when the customer is on tiered pricing for this product
        - `ThresholdFrom` integer: Inclusive lower bound of the tier, in product units
        - `ThresholdTo` integer, nullable: Exclusive upper bound of the tier, in product units. Null for the unbounded top tier
        - `PricePerUnit` number: Price per unit within this tier
        - `TierOrder` integer: Tier ordering, ascending
        - `Description` string, nullable: Optional tier description
    - `RowWrites` TieredUnitPriceModel
      - `PricePerUnit` number, nullable: Effective flat price per unit. Null when the customer is on tiered pricing (see Tiers)
      - `DefaultPricePerUnit` number, nullable: Public list price per unit. Null when there is no known list price for this product
      - `Unit` string, nullable: The unit the price applies to, e.g. "minute" or "1M queries"
      - `IsOverridden` boolean: Whether the customer has an explicit override (flat or tiered)
      - `Tiers` PricingTierModel[], nullable: Pricing tiers, populated when the customer is on tiered pricing for this product
        - `ThresholdFrom` integer: Inclusive lower bound of the tier, in product units
        - `ThresholdTo` integer, nullable: Exclusive upper bound of the tier, in product units. Null for the unbounded top tier
        - `PricePerUnit` number: Price per unit within this tier
        - `TierOrder` integer: Tier ordering, ascending
        - `Description` string, nullable: Optional tier description

## Other responses

- `401`: The request authorization failed.
- `403`: Customer is not assigned to this partner.
- `404`: Customer user account no longer exists.

---

[API](https://skmtc.dev/bunny/apis/bunny-net-partner-portal-api.md) - [All operations](https://skmtc.dev/bunny/apis/bunny-net-partner-portal-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bunny/apis/bunny-net-partner-portal-api/revisions/daf325756630?raw)
