List every account’s usage
This page needs your own installation with an Embed license.
GET/
Returns every account’s usage over a range of days, one row per account.
Needs a partner key: Authorization: Bearer gre_…, from Platform › Partner keys. Call it from your server only.
Parameters
Query
fromRequired · stringThe first UTC day counted,
YYYY-MM-DD.toRequired · stringThe last UTC day counted, included. Not after today, and at most 366 days with
from.cursorOptional · stringThe
pagination.nextCursorof the page before. Left out: the first page.limitOptional · integerRows a page, 1 to 100. The default is 50.
Responses
- 200OK
A page of usage, one per account, in every state: a deleted account still in its 30 days included.
fromortois missing or out of range.Something failed on the installation’s side. Try again.
Any call can also answer: 401 UNAUTHORIZED · 403 EMBED_NOT_LICENSED · 403 IP_NOT_ALLOWED · 429 RATE_LIMITED · 503 BUSY. See Errors.
Request
GORUNNER="https://automations.example.com"
GORUNNER_EMBED_KEY="YOUR_PARTNER_KEY" # gre_…
URL="$GORUNNER/api/embed/v1/"
URL="${URL}usage?from=2026-10-01&to=2026-10-25"
curl "$URL" \
-H "Authorization: Bearer $GORUNNER_EMBED_KEY"const GORUNNER = "https://automations.example.com";
const KEY = process.env.GORUNNER_EMBED_KEY; // gre_…
const res = await fetch(
`${GORUNNER}/api/embed/v1/` +
`usage?from=2026-10-01&to=2026-10-25`,
{
headers: { Authorization: `Bearer ${KEY}` },
},
);
const { data } = await res.json();import os, requests
GORUNNER = "https://automations.example.com"
KEY = os.environ["GORUNNER_EMBED_KEY"] # gre_…
res = requests.get(
f"{GORUNNER}/api/embed/v1/usage",
params={
"from": "2026-10-01",
"to": "2026-10-25",
},
headers={"Authorization": f"Bearer {KEY}"},
)
data = res.json()["data"]Response · 200 OK
{
"data": [
{
"account": {
"id": "acct-bakery",
"name": "Bakery Ltd"
},
"from": "2026-10-01",
"to": "2026-10-25",
"runs": {
"worked": 480,
"failed": 30,
"held": 1,
"cancelled": 2,
"inProgress": 1,
"total": 514
},
"testRuns": 41,
"assistantTokens": 182300,
"asOf": "2026-10-25T08:55:00Z"
}
],
"pagination": {
"limit": 50,
"nextCursor": null
}
}Every field
It takes no body.
Response · 200 OK
dataarray of objectsaccountobjectidstringnamestringfromstringtostringrunsobjectProduction runs by the UTC day they started.
totalis the sum of the other five.workedintegerfailedintegerheldintegercancelledintegerinProgressintegertotalintegertestRunsintegerRuns started from the editor to test, counted apart.
assistantTokensintegerAssistant tokens the installation paid for.
asOftime or nullWhen the counts were last rolled up (every 5 minutes); null until the first count after the embed license arrives has finished.
paginationobjectlimitintegernextCursorstring or nullThe
cursorof the next page; null on the last page. A page that comes back full can carry a cursor even when nothing follows: the next page is then empty, with null here. Keep going until it is null.