MemorySync
API Reference

Organization Members

List members of an organisation. Each member carries a role (owner, admin, member, viewer) that gates dashboard actions and admin endpoints.
GET/admin/team/members

Authentication

Accepts a JWT bearer token (Authorization: Bearer eyJ…) or an API key (X-API-Key: ms_live_…). API-key callers should send X-Project-ID unless the key is project-locked. Cross-tenant operators must send X-Tenant-ID.

Query parameters

FieldTypeRequiredDescription
offsetintegeroptionalDefault 0.
limitintegeroptionalDefault 50, max 100.
rolestringoptionalFilter by role.

Response

Returns 200 OK with the following body.

FieldTypeRequiredDescription
itemsarrayoptionalMember rows.
totalintegeroptionalTotal matching members.
offsetintegeroptionalEchoed cursor.
limitintegeroptionalEchoed page size.
has_nextbooleanoptionalWhether another page exists.
200.json
{
"items": [
{
"user_id": 42,
"email": "alice@acme.io",
"role": "owner",
"joined_at": "2026-04-01T10:00:00Z",
"last_active_at": "2026-05-04T12:00:00Z"
},
{
"user_id": 43,
"email": "bob@acme.io",
"role": "admin",
"joined_at": "2026-04-12T09:15:00Z",
"last_active_at": "2026-05-04T11:00:00Z"
}
],
"total": 14,
"offset": 0,
"limit": 50,
"has_next": false
}

Errors

StatusCodeDescription
400validation_errorBody or query failed schema validation. The error includes the offending field name.
401unauthenticatedMissing or invalid bearer token / API key.
403forbiddenAuthenticated principal lacks the required scope, role, or project access.
404not_foundTarget resource does not exist or is not visible to the calling tenant.
429rate_limitedPer-IP or per-route limit exceeded. Respect the Retry-After header.
500internal_errorUnhandled server error. Quote the request_id when contacting support.

Examples

cURL
curl -X GET https://api.memorysync.io/admin/team/members \
-H "Authorization: Bearer $MEMORYSYNC_KEY"
javascript
import { MemorySync } from 'memorysync'
const client = new MemorySync({ apiKey: process.env.MEMORYSYNC_KEY })
const result = await client.request({
method: 'GET',
path: '/admin/team/members',
})
console.log(result)
python
from memorysync import Client
client = Client(api_key=os.environ["MEMORYSYNC_KEY"])
result = client.request(
method="GET",
path="/admin/team/members",
)
print(result)

Behavior & notes

Idempotent through Idempotency-Key on writes. Replays within 24h return the original response unchanged.