atmon docs

REFERENCE/API/USAGE.MD

UsageService

What this project has used, aggregated from the same receipts everything else reads. Scoped to the key's own project; a request cannot ask about another one.

Every call is a POST to https://api.atmon.ai/automaton.v1.UsageService/<Call> with a JSON body, and authenticates with Authorization: Bearer <your project key>. Field names in JSON are lowerCamelCase, so the field written tool_slug below is toolSlug on the wire. How to call the API has the whole convention.

Calls

CallRequestResponseSummary
GetUsageGetUsageRequestGetUsageResponseAggregates the project's ledger rows over a window, grouped by day, toolkit, or tool.

GetUsage

Aggregates the project's ledger rows over a window, grouped by day, toolkit, or tool. Every recorded call counts, whatever its status, so the succeeded, failed, and denied columns partition the total.

Request GetUsageRequest, response GetUsageResponse.

POST /automaton.v1.UsageService/GetUsage HTTP/1.1
Host: api.atmon.ai
Authorization: Bearer amk_your_project_key
Content-Type: application/json

{
  "from": "2026-01-31T09:15:00Z",
  "to": "2026-01-31T09:15:00Z",
  "groupBy": "..."
}

The response:

{
  "rows": [{
    "key": "...",
    "calls": 0,
    "succeeded": 0,
    "failed": 0,
    "denied": 0
  }],
  "totalCalls": 0
}

Messages

GetUsageRequest

FieldType#Notes
fromgoogle.protobuf.Timestamp1inclusive; zero means 30 days before to
togoogle.protobuf.Timestamp2exclusive; zero means now
group_bystring3"day" | "toolkit" | "tool" (default "day")

GetUsageResponse

FieldType#Notes
rowsrepeated UsageRow1ordered by key; for "day" that is chronological
total_callsint642

UsageRow

FieldType#Notes
keystring1the group value: "2026-07-30", "github", "github.create_issue"
callsint642all recorded calls, whatever their status
succeededint643
failedint644
deniedint645refused by the mutation gate or by policy