Skip to content
AXOWLDevelopers
Quickstart

Members

Base path: /api/org. All routes need a signed-in session unless noted. Concept: Connected ID.

Method · RoutePurposeRequired scope
POST /{slug}/members/inviteInvite a memberorg.member.invite
POST /{slug}/members/invite/resendResend invitationorg.member.invite
DELETE /{slug}/members/invite/{invitationId}Cancel invitationorg.member.invite

Body of POST /{slug}/members/invite:

FieldTypeMeaning
InviteeEmailstring, requiredWho to invite
InviteeNamestringDisplay name shown on the invitation
RoleIdguidThe role assigned on acceptance
MembershipTypestringUsed when no RoleId is given; defaults to Member
SupervisorConnectedIdguidReporting manager, applied on acceptance
TeamIdguidTeam the invitee joins as lead (Team Lead role)
AssignDeviceKeystringKey of a pre-registered device to reserve for the invitee; its code is included in the invitation email
AppGroupIdguidFor a Freelancer invitation: the one app group the invitee is scoped to. Must belong to this organization (400 otherwise)

Success is 200 { "message": "Invitation sent." }. A caller without org.member.invite, or a caller other than the Owner inviting an Admin or an Owner-level role, gets 403 with errorCode: "PERMISSION_DENIED" and the reason in error. Any other rejected invitation gets 400 with the reason in error. When the plan’s member limit is reached the answer is 403 with error: "UPGRADE_REQUIRED" and feature: "members". Cancelling an invitation without org.member.invite answers 403 with errorCode: "PERMISSION_DENIED".

In a corporate organization, members must use a company email; Freelancer, Guest and Director invitations are exempt.

Inviting a member with the Director (ORG_DIRECTOR) or Representative Director (REPRESENTATIVE_DIRECTOR) role seats them on the organization’s Board of Directors when they accept. Corporation / Project(SPV) organizations only.

Additional body fields on POST /{slug}/members/invite:

FieldTypeMeaning
BoardChairmanboolAlso designate the invitee as chairman on acceptance
BoardSharePercentdecimal?Shareholding % (0–100) recorded on the board roster — used by meeting minutes
SealAssertionJsonstringRequired for director invitations — a personal-seal (passkey) step-up assertion with purpose board.member.change, subject {slug}|{inviteeEmail}|appoint-invite
SealEmailstringEmail of the sealing account

Without a valid seal assertion the invite is rejected with 401 STEPUP_REQUIRED / STEPUP_FAILED. The acceptance-side board seating is the execution of that sealed decision — no second seal is requested from the invitee.

ORG_DIRECTOR invitations are exempt from the corporate-email gate (like Freelancer/Guest) — outside directors commonly use personal email. REPRESENTATIVE_DIRECTOR still requires a company email (consistent with the legal-representative gate at organization creation).

Method · RoutePurpose
POST /invitation/acceptAccept an invitation
POST /invitation/declineDecline an invitation
POST /invitation/accept-with-registerAccept and register a new account in one step (anonymous)
Method · RoutePurposeRequired scope
GET /{slug}/membersList members. Pending invitations (invitations) are returned only to callers who hold view.members; for everyone else the list is empty—
GET /{slug}/members/{connectedIdId}One member’s detail. For a member other than the caller, activeSessions, devices, countryGrants, signatureSpec and riskScore are returned only to callers who hold view.members; everyone else gets them empty—
PATCH /{slug}/members/{connectedIdId}Edit a member’s name and profile — your own, or (Owner/Admin) someone else’s. Only the Owner can edit the Owner’s profile (403)—
POST /{slug}/members/{connectedIdId}/suspendSuspendorg.member.suspend
POST /{slug}/members/{connectedIdId}/reactivateUndo a suspension. Roles are not changedorg.member.suspend
POST /{slug}/members/{connectedIdId}/country-accessAllow the member to sign in from one more country. Body: countryIso (ISO 3166 alpha-2), optional days until it expires. Needs the Advanced Device Trust add-on (402 ADDON_REQUIRED)org.member.connected_id_permission.create
DELETE /{slug}/members/{connectedIdId}/country-access/{iso}Take that country allowance backorg.member.connected_id_permission.create
PUT /{slug}/members/{connectedIdId}/signature · POST …/signature/imageSet your own visual signature or personal seal image. Self only—
POST /{slug}/members/{connectedIdId}/revokeRevoke all of the member’s roles; the account staysorg.member.revoke
DELETE /{slug}/members/{connectedIdId}Remove the memberorg.member.revoke
POST /{slug}/members/self/withdrawLeave the organization yourself—

Suspend, reactivate, revoke, remove and the country-access routes are for an Owner or Admin (403 for anyone else), and you cannot suspend, revoke or remove your own account. The Owner cannot be suspended, revoked or removed, and cannot withdraw — transfer ownership first. A representative director can be suspended or removed, and can withdraw; the representative seat is then left vacant and the Owner is notified.

On accept, the proposed role is assigned and MembershipType is derived — see Roles & permissions.