Busabase
OpenAPI Reference

Members

Invite people to a space: email invitations, invite links, and join requests — the web's Members settings over the API. The caller must be an owner or admin; a `write` key grants `member`, `admin` needs `manage`. Cloud only.

GET
/api/v1/members/invitations

The person behind the credential must be an owner or admin of the space. A write-level API key may grant the member role; granting admin needs a manage-level key.

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication. Get your API key from the dashboard.

In: header

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/members/invitations"
[  {    "id": "string",    "email": "string",    "role": "string",    "status": "string",    "expiresAt": "string",    "createdAt": "string",    "inviterName": "string"  }]
POST
/api/v1/members/invitations

Sends the invitation email right away; it is valid for 7 days. Inviting an address that already has a pending invitation re-sends it. The person behind the credential must be an owner or admin of the space. A write-level API key may grant the member role; granting admin needs a manage-level key.

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication. Get your API key from the dashboard.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/v1/members/invitations" \  -H "Content-Type: application/json" \  -d '{    "email": "user@example.com"  }'
{  "id": "string",  "email": "string",  "role": "string",  "status": "string",  "resent": true}
DELETE
/api/v1/members/invitations/{invitationId}

The person behind the credential must be an owner or admin of the space. A write-level API key may grant the member role; granting admin needs a manage-level key.

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication. Get your API key from the dashboard.

In: header

Path Parameters

invitationId*string

Response Body

application/json

application/json

application/json

curl -X DELETE "https://example.com/api/v1/members/invitations/string"
{  "success": true}
GET
/api/v1/members/invite-links

The person behind the credential must be an owner or admin of the space. A write-level API key may grant the member role; granting admin needs a manage-level key.

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication. Get your API key from the dashboard.

In: header

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/members/invite-links"
[  {    "id": "string",    "url": "string",    "role": "string",    "teamId": "string",    "teamName": "string",    "requiresApproval": true,    "expiresAt": "string",    "maxUses": 0,    "useCount": 0,    "createdByUserId": "string",    "createdByName": "string",    "createdByImage": "string",    "revokedAt": "string",    "createdAt": "string"  }]
POST
/api/v1/members/invite-links

Defaults match the web: role member, never expires, unlimited uses, no approval. With requiresApproval, people who open it file a join request instead of joining. The person behind the credential must be an owner or admin of the space. A write-level API key may grant the member role; granting admin needs a manage-level key.

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication. Get your API key from the dashboard.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/v1/members/invite-links" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "string",  "url": "string",  "role": "string",  "teamId": "string",  "teamName": "string",  "requiresApproval": true,  "expiresAt": "string",  "maxUses": 0,  "useCount": 0,  "createdByUserId": "string",  "createdByName": "string",  "createdByImage": "string",  "revokedAt": "string",  "createdAt": "string"}
DELETE
/api/v1/members/invite-links/{inviteLinkId}

People who already joined through it stay members. The person behind the credential must be an owner or admin of the space. A write-level API key may grant the member role; granting admin needs a manage-level key.

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication. Get your API key from the dashboard.

In: header

Path Parameters

inviteLinkId*string

Response Body

application/json

application/json

application/json

application/json

curl -X DELETE "https://example.com/api/v1/members/invite-links/string"
{  "success": true}
GET
/api/v1/members/join-requests

The person behind the credential must be an owner or admin of the space. A write-level API key may grant the member role; granting admin needs a manage-level key.

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication. Get your API key from the dashboard.

In: header

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/members/join-requests"
[  {    "id": "string",    "userId": "string",    "userName": "string",    "userEmail": "string",    "userImage": "string",    "source": "string",    "role": "string",    "status": "string",    "createdAt": "string"  }]
POST
/api/v1/members/join-requests/{joinRequestId}/review

Approving adds the requester with the role their invite link grants; approving an admin request needs a manage-level key. The person behind the credential must be an owner or admin of the space. A write-level API key may grant the member role; granting admin needs a manage-level key.

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication. Get your API key from the dashboard.

In: header

Path Parameters

joinRequestId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/v1/members/join-requests/string/review" \  -H "Content-Type: application/json" \  -d '{    "decision": "approve"  }'
{  "success": true,  "status": "pending"}