Memberships represent your team, the people who can sign in to your Usetix account with role-specific access. Each membership has a role (scanner, manager, owner, co_organizer, or promoter) and a state (active or deactivated).

Venue account tokens can read the team and, with write permission, invite members, change roles and complete event assignments, deactivate or reactivate members, and resend or revoke pending invitations. The same team rules apply as in the dashboard. Personal co-organizer tokens cannot manage the team.

The External co-organizer role uses the existing team invitation and sign-in flow. From an event, open the menu, choose Invite co-organizer, and enter the person’s email; the role and current event are fixed. You can also invite from Team by selecting the role and allowed events. Co-organizers use the same event pages and editors as the rest of the team for assigned events: details and scheduling, gallery and downloads, visibility and publication, tickets and promo codes, guest lists and attendee questions, ticket design, seating, and sales. Creating and duplicating events remain venue operations; co-organizers cannot duplicate events, including through personal API tokens, the assistant or MCP. The venue keeps control of account-wide shop, payment, refund, team, advertising, and venue-template settings. Mixed orders expose only the assigned event’s admissions and revenue; editing answers preserves other events’ answers. Co-organizers can create personal API tokens from API Tokens in the sidebar. These tokens are bound to their team membership and current event assignments. Read tokens cannot write; write tokens allow the same assigned-event operations as the dashboard. Deactivation or a role change invalidates personal tokens. Existing venue account tokens retain account-wide permissions. Co-organizers can also use the built-in assistant and OAuth MCP connections; unavailable account tools are omitted and blocked.

Co-organizers also have their own webhooks and Analytics workspace. Personal webhooks automatically follow current event assignments and omit whole-order financial and payment data. Historical reports and Live View cover all assigned events together or one selected event. Removing an assignment changes the next API request and prevents unauthorized queued webhook deliveries; requests already prepared for retry are discarded if any included event is no longer assigned.

For the dashboard invitation flow, permissions and access removal, see Work with external co-organizers.

GET /admin/memberships

Returns active members, deactivated members, and pending invitations in one response.

curl -H "Authorization: Bearer your-token-here" \
  -H "Accept: application/json" \
  https://app.usetix.io/admin/memberships

Response:

{
  "active": [
    {
      "id": 1,
      "role": "owner",
      "state": "active",
      "created_at": "2025-09-01T10:00:00Z",
      "user": {
        "id": 1,
        "name": "Jane Doe",
        "email": "jane@example.com"
      }
    }
  ],
  "deactivated": [],
  "pending_invitations": [
    {
      "id": 12,
      "email": "newhire@example.com",
      "role": "manager",
      "created_at": "2026-04-22T12:00:00Z"
    }
  ]
}

Membership fields

Field Type Notes
id integer Internal numeric ID.
role string scanner, manager, owner, co_organizer, or promoter.
event_ids integer[] Assigned event IDs. Present only for co_organizer memberships. An empty array means no events are currently assigned.
state string active or deactivated.
created_at string ISO 8601 UTC of when the membership was created.
user.id integer Internal user ID. Stable across membership changes.
user.name string User’s display name.
user.email string User’s email address.

Pending invitation fields

Field Type Notes
id integer Internal numeric ID.
email string Email address the invitation was sent to.
role string Role the invitee will receive on acceptance.
event_ids integer[] Selected event IDs. Present only for co_organizer invitations.
created_at string ISO 8601 UTC.
promoter_programs object[] Present for promoter invitations. Each entry contains the program public id, name, and reserved code (null for a legacy assignment without a code). Empty for invitations without a program.

Accepting an invitation preserves an existing active team role. When an existing co-organizer accepts another co-organizer invitation, the selected events are added to their access. Change roles or remove event access explicitly in Team.

Invite to an event

POST /admin/invitations?event_slug=friday-night accepts:

{"invitation":{"email":"promoter@example.com"}}

The event fixes the role to co_organizer and the assignment to that event. Returns 201 with the invitation fields above and a Location header. Email delivery is queued; the recipient must accept the invitation. For multiple events use POST /admin/invitations with:

{"invitation":{"email":"promoter@example.com","role":"co_organizer","event_ids":[12,34]}}

Allowed invitation roles are scanner, manager, co_organizer, and promoter. Promoters need no event assignment: their dashboard follows the promo codes assigned to their membership. See Promoters. Co-organizers require at least one event from the current account. Invalid invitations return 422 with errors.

Change access

PATCH /admin/memberships/:id/role replaces the role and complete event assignment:

{"membership":{"role":"co_organizer","event_ids":[34]}}

Returns 200 with the membership. event_ids must be explicitly supplied for co_organizer; [] removes all event access. Foreign event IDs return 404 without changing the assignment. Unsupported roles return 422. Existing self-management and last-owner protections apply. Roles cannot be elevated to owner through this endpoint.

Endpoint Result
GET /admin/invitations 200, pending invitation array
POST /admin/invitations/:id/resend 200, pending invitation; email queued again
DELETE /admin/invitations/:id 204, revoke pending invitation
DELETE /admin/memberships/:id 204, deactivate member and revoke credentials
POST /admin/memberships/:id/reactivation 200, reactivate member with existing role/assignments

Writes require a write token. Forbidden membership changes return 403. Removed assignments apply to the next API/MCP operation, including already issued tokens. Assistant conversations containing previous access are archived when access is reduced.

Assistant, MCP, and CLI

The built-in assistant and MCP use manage_team with actions list, invite, update_access, deactivate, reactivate, resend, and revoke_invitation. Writes require confirmed: true after the exact recipient and access change have been requested. event_titles accepts event titles or slugs and replaces the complete assignment on update_access. Team management remains a venue-owner/manager operation.

usetix events invite-co-organizer friday-night promoter@example.com
usetix team list
usetix team invite promoter@example.com --event friday-night --event saturday-night
usetix team access 42 --event saturday-night
usetix team access 42 --clear-events --yes
usetix team deactivate 42 --yes
usetix team reactivate 42
usetix team invitations resend 81
usetix team invitations revoke 81 --yes