Directory endpoints

Members and groups — ids, names, roles; never email addresses. Every operation with parameters, body, responses, errors and examples.

View this page as Markdown

Members and groups — ids, names, roles; never email addresses.

Base URL https://app.processcart.com/api/v1. Every operation below is also in the OpenAPI document and the interactive reference.

Operation Method and path Scope
List members GET /v1/users Scope users:read
List groups GET /v1/groups Scope users:read

GET /v1/users

List members. Scope users:read · paginated ({ data, nextCursor, hasMore }). Operation id listUsers · open in the API reference.

The workspace's members in the order they joined: user id, display name, role (member, builder, admin) and avatar. Email addresses are not exposed. Use the ids to read assignees and to filter runs with assignee=u:<id>.

Query parameters (an unknown parameter is a 422 validation_failed with errors[].code = "unknown_parameter")

Name Type Required Description
limit integer no
cursor string no The nextCursor of the previous page. Opaque, and bound to the query that produced it — a cursor from a different filter or sort is a 422.

Responses

Status Meaning Body
200 OK. ListUsersResponse
401 No usable credential. unauthorized — Authentication required; invalid_api_key — Invalid API key; key_revoked — API key revoked. Problem
403 insufficient_scope — Insufficient scope. Problem
405 The verb is not supported on this path. method_not_allowed — Method not allowed. Problem
422 validation_failed — Validation failed. Problem
429 rate_limited — Too many requests. Problem
500 internal_error — Internal error. Problem
503 unavailable — Service unavailable. Problem

Errors (every code this operation can answer; see Errors)

Example response (200)

{
  "data": [
    {
      "id": "a5340bfc-1ba6-429e-97b3-ac741f62ffdf",
      "name": "Fixture Admin",
      "role": "admin",
      "avatarUrl": null,
      "joinedAt": "2026-10-10T17:44:11.041Z"
    },
    {
      "id": "7a632343-8bfa-4b60-849a-aaad7fcd7b4c",
      "name": "Fixture Member",
      "role": "member",
      "avatarUrl": null,
      "joinedAt": "2026-10-10T17:44:11.272Z"
    }
  ],
  "nextCursor": null,
  "hasMore": false
}

GET /v1/groups

List groups. Scope users:read · paginated ({ data, nextCursor, hasMore }). Operation id listGroups · open in the API reference.

The workspace's groups by name, each with the ids of its current members. Groups appear as { kind: "group" } assignees and in assignee=g:<id> filters.

Query parameters (an unknown parameter is a 422 validation_failed with errors[].code = "unknown_parameter")

Name Type Required Description
limit integer no
cursor string no The nextCursor of the previous page. Opaque, and bound to the query that produced it — a cursor from a different filter or sort is a 422.

Responses

Status Meaning Body
200 OK. ListGroupsResponse
401 No usable credential. unauthorized — Authentication required; invalid_api_key — Invalid API key; key_revoked — API key revoked. Problem
403 insufficient_scope — Insufficient scope. Problem
405 The verb is not supported on this path. method_not_allowed — Method not allowed. Problem
422 validation_failed — Validation failed. Problem
429 rate_limited — Too many requests. Problem
500 internal_error — Internal error. Problem
503 unavailable — Service unavailable. Problem

Errors (every code this operation can answer; see Errors)

Example response (200)

{
  "data": [
    {
      "id": "bca06b45-d08f-4b9a-a769-1ad979a0dfd6",
      "name": "Reviewers",
      "memberIds": [
        "7a632343-8bfa-4b60-849a-aaad7fcd7b4c"
      ],
      "createdAt": "2026-10-10T17:44:11.326Z"
    }
  ],
  "nextCursor": null,
  "hasMore": false
}