List an account’s members
This page needs your own installation with an Embed license.
GET/
Lists an account’s members: one row per person per workspace, oldest first.
Needs a partner key: Authorization: Bearer gre_…, from Platform › Partner keys. Call it from your server only.
Parameters
Path
accountIdRequired · stringYour ID for the customer’s account: 1 to 255 bytes of UTF-8, case-sensitive. URL-encode it: it may contain
/.
Query
workspaceIdOptional · stringOnly this workspace, by your ID. Left out: every workspace.
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 memberships.
A parameter isn’t valid, such as an empty
workspaceId.- 404
NOT_FOUNDNo such account or workspace.
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_…
ACCOUNT_ID="acct-bakery"
URL="$GORUNNER/api/embed/v1/accounts/$ACCOUNT_ID/"
URL="${URL}members"
curl "$URL" \
-H "Authorization: Bearer $GORUNNER_EMBED_KEY"const GORUNNER = "https://automations.example.com";
const KEY = process.env.GORUNNER_EMBED_KEY; // gre_…
const ACCOUNT_ID = encodeURIComponent("acct-bakery");
const res = await fetch(
`${GORUNNER}/api/embed/v1/accounts/` +
`${ACCOUNT_ID}/members`,
{
headers: { Authorization: `Bearer ${KEY}` },
},
);
const { data } = await res.json();import os, requests
from urllib.parse import quote
GORUNNER = "https://automations.example.com"
KEY = os.environ["GORUNNER_EMBED_KEY"] # gre_…
ACCOUNT_ID = quote("acct-bakery", safe="")
res = requests.get(
f"{GORUNNER}/api/embed/v1/accounts/"
f"{ACCOUNT_ID}/members",
headers={"Authorization": f"Bearer {KEY}"},
)
data = res.json()["data"]Response · 200 OK
{
"data": [
{
"user": {
"id": "ada-123",
"name": "Ada Lovelace",
"email": "ada@bakery.example"
},
"workspace": {
"id": null,
"default": true
},
"role": "editor",
"createdAt": "2026-10-20T08:00:00Z"
}
],
"pagination": {
"limit": 50,
"nextCursor": null
}
}Every field
It takes no body.
Response · 200 OK
dataarray of objectsuserobjectidstringnamestringemailstring or nullworkspaceobjectidstring or nullThe partner’s workspace id; null for the default workspace.
defaultbooleanrolestringOne of
viewer,operator,editor.createdAttimepaginationobjectlimitintegernextCursorstring 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.