Create Member
POST /members
POST /membersInteractive request editor loads with JavaScript.
Authorization
BearerAdminToken Organization-scoped admin token. Read operations require a valid token, and write operations require a token with write permission.
In: header
Request Body
application/json
Create an organization member for ownership, attribution, and policy binding without creating dashboard login credentials.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "$AISIX_CP/members" \ -H "Authorization: Bearer $AISIX_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "email": "string", "name": "string" }'Created
{
"member": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
"email": "string",
"display_name": "string",
"role": "string",
"status": "active",
"provisioned_by": "manual",
"created_at": "2019-08-24T14:15:22Z"
}
}Request body or parameters failed validation.
{
"error": {
"code": "string",
"message": "string"
}
}Missing or invalid bearer.
{
"error": {
"code": "UNAUTHENTICATED",
"message": "no org context"
}
}Authenticated request is not permitted.
{
"error": {
"code": "CUSTOM_KEY_DISABLED",
"message": "custom API key values are disabled for this organization"
}
}Request conflicts with current resource state.
{
"error": {
"code": "CREDENTIAL_IN_USE",
"message": "models still reference this provider_key"
}
}Complete operation details and schema variants
POST /members
Create Member
Create a login-less member directly, bypassing the
email-invitation handshake. The created principal can be added
to teams and issued caller API keys immediately, but carries no
dashboard credentials and can never sign in. The role is fixed
to member.
Parameters
Request body
Content type: application/json
-
email(string, required): Email address for the new member. Lowercased and trimmed before storage; must be a valid address and not already in use by another user. -
name(string, required): Display name for the new member.
Responses
-
201: Created -
member(object, required): Organization membership returned by member list and create operations. -
member.id(string, required): Organization membership ID. This is what caller API key ownership references, and what usage records carry as their member attribution. -
member.user_id(string, required): User ID of the member. This is the identifier referenced by team membership and by this member's own routes (/members/{user_id}); caller API key ownership references the membershipidabove instead. -
member.email(string, required): Member email address (unique per user). -
member.display_name(string, required): Human-readable member name. -
member.role(string, required): Built-in (owner,admin, ormember) or custom organization role. Members created viaPOST /membersare always assignedmemberinitially. -
member.status(string, optional): Lifecycle state. Adeactivatedmember keeps its usage history, but every caller API key it owns is disabled. SCIM directory sync sets this when the person is deprovisioned in the identity provider. -
member.provisioned_by(string, optional): How the membership was created.scimmemberships are managed by the organization's identity provider through the SCIM 2.0 endpoints and cannot be edited in the dashboard. -
member.created_at(string, required): Time when the membership was created. -
400: Request body or parameters failed validation. -
error(object, required): Error details. -
error.code(string, required): Machine-readable identifier. Examples:UNAUTHENTICATED,INVALID_REQUEST,MASTER_KEY_UNSET,INTERNAL. -
error.message(string, required): Human-readable explanation; safe to surface to operators. -
401: Missing or invalid bearer. Response fields (application/json): identical toPOST /members, response 400 above. -
403: Authenticated request is not permitted. Response fields (application/json): identical toPOST /members, response 400 above. -
409: Request conflicts with current resource state. Response fields (application/json): identical toPOST /members, response 400 above.
cURL
curl -X POST '$AISIX_CP/members' -H 'Authorization: Bearer $AISIX_TOKEN'