Fetch your account's daily usage activity — requests, tokens, and DA spend, rolled up per day, model, and provider endpoint:
package main
import (
"encoding/json"
"fmt"
"net/http"
"os"
)
type ActivityRow struct {
Date string `json:"date"`
Model string `json:"model"`
ProviderName string `json:"provider_name"`
PromptTokens int64 `json:"prompt_tokens"`
CompletionTokens int64 `json:"completion_tokens"`
Requests int `json:"requests"`
Usage float64 `json:"usage"`
}
type ActivityResponse struct {
Data []ActivityRow `json:"data"`
}
func main() {
req, _ := http.NewRequest("GET", "https://opendunes.com/api/v1/activity", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("OPENDUNES_API_KEY"))
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var activity ActivityResponse
json.NewDecoder(resp.Body).Decode(&activity)
for _, row := range activity.Data {
fmt.Printf("%s %-40s %3d reqs %d in / %d out %.4f DA\n",
row.Date, row.Model, row.Requests,
row.PromptTokens, row.CompletionTokens, row.Usage)
}
}
Returns the last 30 days by default.
| Parameter | Description |
|---|
date | Limit to a single day (YYYY-MM-DD) |
url := "https://opendunes.com/api/v1/activity?date=2026-07-02"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("OPENDUNES_API_KEY"))
Rows arrive grouped per day × model, so account-level totals are a simple loop away. For request-level logs, charts, and CSV/JSON export, use your dashboard.