Better Auth in Rust
OpenAPI Reference

Organization

Organization plugin endpoints for multi-tenant management, members, invitations, and RBAC.

/organization/create

POST
/organization/create

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Request Body

application/json

name*string

The name of the organization

slug*string

The slug of the organization

userId?string

The user id of the organization creator. If not provided, the current user will be used. Should only be used by admins or when called by the server.

logo?string

The logo of the organization

metadata?string

The metadata of the organization

keepCurrentActiveOrganization?string

Whether to keep the current active organization active after creating a new one

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "http://localhost:3001/api/auth/organization/create" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "slug": "string"  }'
{
  "id": "string",
  "name": "string",
  "slug": "string",
  "logo": "string",
  "createdAt": "2019-08-24T14:15:22Z",
  "metadata": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/update

POST
/organization/update

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Request Body

application/json

data*object
organizationId?string

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "http://localhost:3001/api/auth/organization/update" \  -H "Content-Type: application/json" \  -d '{    "data": {}  }'
{
  "id": "string",
  "name": "string",
  "slug": "string",
  "logo": "string",
  "createdAt": "2019-08-24T14:15:22Z",
  "metadata": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/delete

POST
/organization/delete

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Request Body

application/json

organizationId*string

The organization id to delete

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "http://localhost:3001/api/auth/organization/delete" \  -H "Content-Type: application/json" \  -d '{    "organizationId": "string"  }'
"string"
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/set-active

POST
/organization/set-active

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Request Body

application/json

organizationId?string

The organization id to set as active. It can be null to unset the active organization

organizationSlug?string

The organization slug to set as active. It can be null to unset the active organization if organizationId is not provided

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "http://localhost:3001/api/auth/organization/set-active" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string",
  "name": "string",
  "slug": "string",
  "logo": "string",
  "createdAt": "2019-08-24T14:15:22Z",
  "metadata": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/get-full-organization

GET
/organization/get-full-organization

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "http://localhost:3001/api/auth/organization/get-full-organization"
{
  "id": "string",
  "name": "string",
  "slug": "string",
  "logo": "string",
  "createdAt": "2019-08-24T14:15:22Z",
  "metadata": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/list

GET
/organization/list

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "http://localhost:3001/api/auth/organization/list"
[
  {
    "id": "string",
    "name": "string",
    "slug": "string",
    "logo": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "metadata": "string"
  }
]
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/invite-member

POST
/organization/invite-member

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Request Body

application/json

email*string

The email address of the user to invite

role*string
organizationId?string

The organization ID to invite the user to

resend?string

Resend the invitation email, if the user is already invited

teamId?string

The team ID to invite the user to

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "http://localhost:3001/api/auth/organization/invite-member" \  -H "Content-Type: application/json" \  -d '{    "email": "string",    "role": "string"  }'
{
  "id": "string",
  "email": "string",
  "role": "string",
  "organizationId": "string",
  "inviterId": "string",
  "status": "string",
  "expiresAt": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/cancel-invitation

POST
/organization/cancel-invitation

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Request Body

application/json

invitationId*string

The ID of the invitation to cancel

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "http://localhost:3001/api/auth/organization/cancel-invitation" \  -H "Content-Type: application/json" \  -d '{    "invitationId": "string"  }'
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/accept-invitation

POST
/organization/accept-invitation

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Request Body

application/json

invitationId*string

The ID of the invitation to accept

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "http://localhost:3001/api/auth/organization/accept-invitation" \  -H "Content-Type: application/json" \  -d '{    "invitationId": "string"  }'
{
  "invitation": {},
  "member": {}
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/get-invitation

GET
/organization/get-invitation

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Query Parameters

id?string

The ID of the invitation to get

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "http://localhost:3001/api/auth/organization/get-invitation"
{
  "id": "string",
  "email": "string",
  "role": "string",
  "organizationId": "string",
  "inviterId": "string",
  "status": "string",
  "expiresAt": "string",
  "organizationName": "string",
  "organizationSlug": "string",
  "inviterEmail": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/reject-invitation

POST
/organization/reject-invitation

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Request Body

application/json

invitationId*string

The ID of the invitation to reject

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "http://localhost:3001/api/auth/organization/reject-invitation" \  -H "Content-Type: application/json" \  -d '{    "invitationId": "string"  }'
{
  "invitation": {},
  "member": null
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/check-slug

POST
/organization/check-slug

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Request Body

application/json

slug*string

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "http://localhost:3001/api/auth/organization/check-slug" \  -H "Content-Type: application/json" \  -d '{    "slug": "string"  }'
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/remove-member

POST
/organization/remove-member

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Request Body

application/json

memberIdOrEmail*string

The ID or email of the member to remove

organizationId?string

The ID of the organization to remove the member from. If not provided, the active organization will be used

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "http://localhost:3001/api/auth/organization/remove-member" \  -H "Content-Type: application/json" \  -d '{    "memberIdOrEmail": "string"  }'
{
  "member": {
    "id": "string",
    "userId": "string",
    "organizationId": "string",
    "role": "string"
  }
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/update-member-role

POST
/organization/update-member-role

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Request Body

application/json

role*string
memberId*string
organizationId?string

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "http://localhost:3001/api/auth/organization/update-member-role" \  -H "Content-Type: application/json" \  -d '{    "role": "string",    "memberId": "string"  }'
{
  "member": {
    "id": "string",
    "userId": "string",
    "organizationId": "string",
    "role": "string"
  }
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/get-active-member

GET
/organization/get-active-member

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "http://localhost:3001/api/auth/organization/get-active-member"
{
  "id": "string",
  "userId": "string",
  "organizationId": "string",
  "role": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/leave

POST
/organization/leave

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Request Body

application/json

organizationId*string

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "http://localhost:3001/api/auth/organization/leave" \  -H "Content-Type: application/json" \  -d '{    "organizationId": "string"  }'
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/list-invitations

GET
/organization/list-invitations

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "http://localhost:3001/api/auth/organization/list-invitations"
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}

/organization/has-permission

POST
/organization/has-permission

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication

In: header

Request Body

application/json

permission?objectDeprecated

The permission to check

permissions*object

The permission to check

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "http://localhost:3001/api/auth/organization/has-permission" \  -H "Content-Type: application/json" \  -d '{    "permissions": {}  }'
{
  "error": "string",
  "success": true
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "string"
}