Get Project Billing Breakdown
GET https://api.deepgram.com/v1/projects//billing/breakdown
Retrieves the billing summary for a specific project, with various filter options or by grouping options.
Reference: https://developers.deepgram.com/reference/manage/billing/breakdown/get
Authentication
Section titled “Authentication”Authorizationheader (required) (prefixed withToken) — UseAuthorization: Token <API_KEY>Example:Authorization: Token 12345abcdef
Request
Section titled “Request”Path parameters
Section titled “Path parameters”project_id(string, required) — The unique identifier of the project
Query parameters
Section titled “Query parameters”start(string, optional) — Start date of the requested date range. Format accepted is YYYY-MM-DDend(string, optional) — End date of the requested date range. Format accepted is YYYY-MM-DDaccessor(string, optional) — Filter for requests where a specific accessor was useddeployment(enum, optional) — Filter for requests where a specific deployment was used- Allowed values:
hosted,beta,self-hosted
- Allowed values:
tag(string, optional) — Filter for requests where a specific tag was usedline_item(string, optional) — Filter requests by line item (e.g. streaming::nova-3)grouping(list of enum, optional) — Group billing breakdown by one or more dimensions (accessor, deployment, line_item, tags)- Allowed values:
accessor,deployment,line_item,tags
- Allowed values:
Response
Section titled “Response”Billing breakdown response
start(string, required) — Start date of the billing summmary periodend(string, required) — End date of the billing summary periodresolution(BillingBreakdownV1ResponseResolution, required)results(list of BillingBreakdownV1ResponseResultsItems, required)
Errors
Section titled “Errors”400 Bad Request Error
Section titled “400 Bad Request Error”Invalid Request
ErrorResponse
BillingBreakdownV1ResponseResolution
Section titled “BillingBreakdownV1ResponseResolution”units(string, required) — Time unit for the resolutionamount(double, required) — Amount of units
BillingBreakdownV1ResponseResultsItems
Section titled “BillingBreakdownV1ResponseResultsItems”dollars(float, required) — USD cost of the billing for this groupinggrouping(BillingBreakdownV1ResponseResultsItemsGrouping, required)
ErrorResponseLegacyError
Section titled “ErrorResponseLegacyError”err_code(string, optional) — The error codeerr_msg(string, optional) — The error messagerequest_id(string, optional) — The request ID
ErrorResponseModernError
Section titled “ErrorResponseModernError”category(string, optional) — The category of the errormessage(string, optional) — A message about the errordetails(string, optional) — A description of the errorrequest_id(string, optional) — The unique identifier of the request
BillingBreakdownV1ResponseResultsItemsGrouping
Section titled “BillingBreakdownV1ResponseResultsItemsGrouping”start(string, optional) — Start date for this groupend(string, optional) — End date for this groupaccessor(string, optional, nullable) — Optional accessor identifier, null unless grouped by accessor.deployment(string, optional, nullable) — Optional deployment identifier, null unless grouped by deployment.line_item(string, optional, nullable) — Optional line item identifier, null unless grouped by line item.tags(list of string, optional, nullable) — Optional list of tags, null unless grouped by tags.
Examples
Section titled “Examples”Response
{
"start": "2025-01-16",
"end": "2025-01-23",
"resolution": {
"units": "day",
"amount": 1
},
"results": [
{
"dollars": 0.25,
"grouping": {
"start": "2025-01-16",
"end": "2025-01-16",
"accessor": "123456789012345678901234",
"deployment": "hosted",
"line_item": "streaming::nova-3",
"tags": [
"tag1",
"tag2"
]
}
}
]
}SDK Code
import requests
url = "https://api.deepgram.com/v1/projects/123456-7890-1234-5678-901234/billing/breakdown"
querystring = {"accessor":"12345678-1234-1234-1234-123456789012","deployment":"hosted","grouping":"[\"deployment\",\"line_item\"]","line_item":"streaming::nova-3","tag":"tag1"}
headers = {"Authorization": "Token <apiKey>"}
response = requests.get(url, headers=headers, params=querystring)
print(response.json())const url = 'https://api.deepgram.com/v1/projects/123456-7890-1234-5678-901234/billing/breakdown?accessor=12345678-1234-1234-1234-123456789012&deployment=hosted&grouping=%5B%22deployment%22%2C%22line_item%22%5D&line_item=streaming%3A%3Anova-3&tag=tag1';
const options = {method: 'GET', headers: {Authorization: 'Token <apiKey>'}};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.deepgram.com/v1/projects/123456-7890-1234-5678-901234/billing/breakdown?accessor=12345678-1234-1234-1234-123456789012&deployment=hosted&grouping=%5B%22deployment%22%2C%22line_item%22%5D&line_item=streaming%3A%3Anova-3&tag=tag1"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Token <apiKey>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://api.deepgram.com/v1/projects/123456-7890-1234-5678-901234/billing/breakdown?accessor=12345678-1234-1234-1234-123456789012&deployment=hosted&grouping=%5B%22deployment%22%2C%22line_item%22%5D&line_item=streaming%3A%3Anova-3&tag=tag1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Token <apiKey>'
response = http.request(request)
puts response.read_bodyimport com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;
HttpResponse<String> response = Unirest.get("https://api.deepgram.com/v1/projects/123456-7890-1234-5678-901234/billing/breakdown?accessor=12345678-1234-1234-1234-123456789012&deployment=hosted&grouping=%5B%22deployment%22%2C%22line_item%22%5D&line_item=streaming%3A%3Anova-3&tag=tag1")
.header("Authorization", "Token <apiKey>")
.asString();<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://api.deepgram.com/v1/projects/123456-7890-1234-5678-901234/billing/breakdown?accessor=12345678-1234-1234-1234-123456789012&deployment=hosted&grouping=%5B%22deployment%22%2C%22line_item%22%5D&line_item=streaming%3A%3Anova-3&tag=tag1', [
'headers' => [
'Authorization' => 'Token <apiKey>',
],
]);
echo $response->getBody();using RestSharp;
var client = new RestClient("https://api.deepgram.com/v1/projects/123456-7890-1234-5678-901234/billing/breakdown?accessor=12345678-1234-1234-1234-123456789012&deployment=hosted&grouping=%5B%22deployment%22%2C%22line_item%22%5D&line_item=streaming%3A%3Anova-3&tag=tag1");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Token <apiKey>");
IRestResponse response = client.Execute(request);import Foundation
let headers = ["Authorization": "Token <apiKey>"]
let request = NSMutableURLRequest(url: NSURL(string: "https://api.deepgram.com/v1/projects/123456-7890-1234-5678-901234/billing/breakdown?accessor=12345678-1234-1234-1234-123456789012&deployment=hosted&grouping=%5B%22deployment%22%2C%22line_item%22%5D&line_item=streaming%3A%3Anova-3&tag=tag1")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()