Get usage summary
curl --request GET \
--url https://api.dynamosql.com/v1/usage/summary \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.dynamosql.com/v1/usage/summary"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.dynamosql.com/v1/usage/summary', 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.dynamosql.com/v1/usage/summary",
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.dynamosql.com/v1/usage/summary"
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.dynamosql.com/v1/usage/summary")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dynamosql.com/v1/usage/summary")
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{
"success": true,
"data": {
"tenantId": "tenant-abc123",
"startDate": "2026-03-01",
"endDate": "2026-03-31",
"totals": {
"requests": 4210,
"rowsReturned": 1752000,
"ddbReadUnits": 384900
},
"days": [
{
"day": "2026-03-01",
"requests": 142,
"rowsReturned": 58300,
"ddbReadUnits": 12450
},
{
"day": "2026-03-02",
"requests": 198,
"rowsReturned": 81200,
"ddbReadUnits": 18700
}
]
}
}{
"success": false,
"error": {
"message": "startDate must be before or equal to endDate"
}
}{
"success": false,
"error": {
"message": "Unauthorized"
}
}{
"success": false,
"error": {
"message": "Tenant admin access required"
}
}API Reference
Usage Summary
Query metered usage — requests, rows returned, and DynamoDB read units.
GET
/
v1
/
usage
/
summary
Get usage summary
curl --request GET \
--url https://api.dynamosql.com/v1/usage/summary \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.dynamosql.com/v1/usage/summary"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.dynamosql.com/v1/usage/summary', 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.dynamosql.com/v1/usage/summary",
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.dynamosql.com/v1/usage/summary"
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.dynamosql.com/v1/usage/summary")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dynamosql.com/v1/usage/summary")
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{
"success": true,
"data": {
"tenantId": "tenant-abc123",
"startDate": "2026-03-01",
"endDate": "2026-03-31",
"totals": {
"requests": 4210,
"rowsReturned": 1752000,
"ddbReadUnits": 384900
},
"days": [
{
"day": "2026-03-01",
"requests": 142,
"rowsReturned": 58300,
"ddbReadUnits": 12450
},
{
"day": "2026-03-02",
"requests": 198,
"rowsReturned": 81200,
"ddbReadUnits": 18700
}
]
}
}{
"success": false,
"error": {
"message": "startDate must be before or equal to endDate"
}
}{
"success": false,
"error": {
"message": "Unauthorized"
}
}{
"success": false,
"error": {
"message": "Tenant admin access required"
}
}Required scope:
usage:readAuthorizations
Bearer token obtained from POST /v1/auth/token. Pass in the Authorization header as Bearer <token>.
Query Parameters
Start of the date range, inclusive. Format: YYYY-MM-DD. Must be a valid calendar date and must be on or before endDate.
End of the date range, inclusive. Format: YYYY-MM-DD. Must be a valid calendar date. Maximum range is 366 days from startDate.
Response
Usage summary for the requested date range.
true when the request was processed without errors, false otherwise. Always present.
Aggregated usage for the requested date range, broken down by day and summarized in totals.
Show child attributes
Show child attributes
Present in the response body when success is false.
Show child attributes
Show child attributes