cURL
curl --request GET \
--url https://api.brightdata.com/pricing_plans \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.brightdata.com/pricing_plans"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.brightdata.com/pricing_plans', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.brightdata.com/pricing_plans",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.brightdata.com/pricing_plans"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.brightdata.com/pricing_plans")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.brightdata.com/pricing_plans")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"plans": [
{
"id": "<string>",
"name": "<string>",
"precommit": 123,
"is_current": true,
"product_prices": {}
}
]
}Account & status
Get pricing plans
Use GET /pricing_plans in the Bright Data Account Management API to list current and available pricing plans with per-product prices. Returns 200 OK as JSON.
GET
/
pricing_plans
cURL
curl --request GET \
--url https://api.brightdata.com/pricing_plans \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.brightdata.com/pricing_plans"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.brightdata.com/pricing_plans', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.brightdata.com/pricing_plans",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.brightdata.com/pricing_plans"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.brightdata.com/pricing_plans")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.brightdata.com/pricing_plans")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"plans": [
{
"id": "<string>",
"name": "<string>",
"precommit": 123,
"is_current": true,
"product_prices": {}
}
]
}The
The response contains a
The keys of
The other possible keys are
GET /pricing_plans endpoint returns your account’s current pricing plan and the other plans available to your account, with the per-product prices of each plan. All prices are in USD.
Paste your API key into the authorization field. To get an API key, create an account and learn how to generate an API key.
Which API key permission does this endpoint need?
GET /pricing_plans requires the billing.read permission. API keys with the Admin or Finance permission level have it. Keys with the Ops, Limit or User permission level cannot call this endpoint.
How do I get my current pricing plan?
CallGET /pricing_plans with an Admin or Finance API key. The endpoint takes no parameters:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.brightdata.com/pricing_plans"
plans array. Your current plan is the entry where is_current is true. To print only that plan, filter the response with jq:
curl -s -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.brightdata.com/pricing_plans" \
| jq '.plans[] | select(.is_current)'
How is the response structured?
Each entry in theplans array describes one plan:
| Field | Type | Description |
|---|---|---|
id | string | Plan identifier |
name | string | Plan name |
precommit | number | Monthly pre-commitment of the plan, in USD |
is_current | boolean | true for the plan your account is on now, false for the other available plans |
product_prices | object | Prices of the plan, keyed by internal product key |
product_prices are the same internal product keys that the cost breakdown export uses in its filters, such as dc (Datacenter proxies) and res_static (ISP proxies). Each value holds a product name and a price_groups array. Each price group has a name, a prices object and, for some products, an unlim_ip_tier_prices object.
How do I read the prices object?
Each key inprices is a billing unit and each value is the price in USD for one unit. For example, "prices": {"gb": 8} means $8 per GB.
| Key | Billing unit |
|---|---|
gb | 1 GB of traffic |
req | 1,000 requests (CPM), not a single request |
compute_hour, record, total, files_archive, files_cache, req_content, block and page_load. Which keys appear depends on the product.
Which products return unlim_ip_tier_prices?
Only Datacenter proxies (dc) and ISP proxies (res_static) return unlim_ip_tier_prices. The object maps each IP tier size to its price in USD.
Does the endpoint have rate limits or specific errors?
No.GET /pricing_plans has no endpoint-specific rate limit and no endpoint-specific error codes.
Related endpoints
- Cost breakdown export. Per-day account cost by product, zone, dataset or scraper.
- Total balance. Current balance and pending balance for the next billing cycle.
Authorizations
Use your Bright Data API Key as a Bearer token in the Authorization header.
How to authenticate:
- Obtain your API Key from the Bright Data account settings at https://brightdata.com/cp/setting/users
- Include the API Key in the Authorization header of your requests
- Format:
Authorization: Bearer YOUR_API_KEY
Example:
Authorization: Bearer b5648e1096c6442f60a6c4bbbe73f8d2234d3d8324554bd6a7ec8f3f251f07df
Learn how to get your Bright Data API key: https://docs.brightdata.com/api-reference/authentication
Response
200 - application/json
OK
Your current plan and the plans available to your account.
Show child attributes
Show child attributes
Was this page helpful?