Skip to main content
Deepgram's Docs

Search documentation

Type to search this documentation.

On this pageOverview

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

  • Authorization header (required) (prefixed with Token ) — Use Authorization: Token <API_KEY> Example: Authorization: Token 12345abcdef
  • project_id (string, required) — The unique identifier of the project
  • start (string, optional) — Start date of the requested date range. Format accepted is YYYY-MM-DD
  • end (string, optional) — End date of the requested date range. Format accepted is YYYY-MM-DD
  • accessor (string, optional) — Filter for requests where a specific accessor was used
  • deployment (enum, optional) — Filter for requests where a specific deployment was used
    • Allowed values: hosted, beta, self-hosted
  • tag (string, optional) — Filter for requests where a specific tag was used
  • line_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

Billing breakdown response

  • start (string, required) — Start date of the billing summmary period
  • end (string, required) — End date of the billing summary period
  • resolution (BillingBreakdownV1ResponseResolution, required)
  • results (list of BillingBreakdownV1ResponseResultsItems, required)

Invalid Request

  • ErrorResponse
  • units (string, required) — Time unit for the resolution
  • amount (double, required) — Amount of units
  • dollars (float, required) — USD cost of the billing for this grouping
  • grouping (BillingBreakdownV1ResponseResultsItemsGrouping, required)
  • err_code (string, optional) — The error code
  • err_msg (string, optional) — The error message
  • request_id (string, optional) — The request ID
  • category (string, optional) — The category of the error
  • message (string, optional) — A message about the error
  • details (string, optional) — A description of the error
  • request_id (string, optional) — The unique identifier of the request

BillingBreakdownV1ResponseResultsItemsGrouping

Section titled “BillingBreakdownV1ResponseResultsItemsGrouping”
  • start (string, optional) — Start date for this group
  • end (string, optional) — End date for this group
  • accessor (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.

Response

JSON
{
  "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

Python
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())
JavaScript
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);
}
Go
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))

}
Ruby
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_body
Java
import 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
<?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();
C#
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);
Swift
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()
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu