Agent run-level billing
Returns a paginated list of runs with their costs for a specific agent within the specified date range.
Filtering
usageTypes— filter by usage type (comma-separated:Server Time,Export GB,Agent Inputs,Proxy Data,Export CPM)
Sorting
sortColumn—date|cost|duration(default:date)sortOrder—0ascending (default) |1descending
curl --request GET \
--url https://api.example.com/api/v1/billing/agents/{agentId}/runs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/api/v1/billing/agents/{agentId}/runs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/api/v1/billing/agents/{agentId}/runs', 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.example.com/api/v1/billing/agents/{agentId}/runs",
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.example.com/api/v1/billing/agents/{agentId}/runs"
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.example.com/api/v1/billing/agents/{agentId}/runs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/billing/agents/{agentId}/runs")
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{
"runs": [
{
"runId": 123,
"date": "2023-11-07T05:31:56Z",
"startTime": "2023-11-07T05:31:56Z",
"endTime": "2023-11-07T05:31:56Z",
"cost": 123,
"billingType": "<string>"
}
],
"totalRecordCount": 123,
"totalCost": 123,
"agentId": 123,
"agentName": "<string>"
}{
"statusCode": 123,
"statusDescription": "<string>",
"message": "<string>",
"severity": 0,
"errorCode": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}Authorizations
API Key authorization header. Example: "Authorization: ApiKey {your-api-key}"
OAuth 2.0 Bearer token. Example: "Authorization: Bearer {access-token}"
Path Parameters
The agent ID
Query Parameters
Start date for the range (ISO format, required)
End date for the range (ISO format, required)
Page number (1-based, default: 1)
Records per page (default: 50, max: 1000)
Column to sort by: date, cost, duration
Sort order: 0 = ascending (default), 1 = descending
Filter by usage types (comma-separated)
Response
Returns the paginated list of runs with costs
Paginated response for agent runs
List of runs with their costs
Show child attributes
Show child attributes
Total number of runs matching the filter
Total cost across the runs in the current page. Note: this is a page-level sum, not a grand total across all pages.
Agent ID
Agent name