Onboarding

Manage company creation, joining, and team membership.

Create Company

POST/api/company

Create a new company. User becomes the owner.

FieldTypeRequiredDescription
namestringRequiredCompany name
{ "company": { "id": "...", "name": "Acme Corp", "joinCode": "ABC123", "owner": "userId", "status": "active" } }

Join Company

POST/api/company/join

Request to join a company using join code.

FieldTypeRequiredDescription
joinCodestringRequiredCompany join code
{ "success": true }

Quit Company

POST/api/company/quit

Request to leave current company.

FieldTypeRequiredDescription
replacementUserIdstringOptionalUser to transfer ownership (if owner)
{ "success": true }

Create Team

POST/api/team

Create a new team within the company.

FieldTypeRequiredDescription
namestringRequiredTeam name
joinCodestringOptionalCustom join code (auto-generated if not provided)
{ "team": { "id": "...", "name": "Engineering", "joinCode": "ENG123", "company": "companyId" } }

Join Team

POST/api/team/join

Request to join a team using join code.

FieldTypeRequiredDescription
joinCodestringRequiredTeam join code
{ "success": true }

Quit Team

POST/api/team/quit

Leave current team.

{ "success": true }

Kick Member

POST/api/team/kick

Remove a member from the team (manager only).

FieldTypeRequiredDescription
userIdstringRequiredUser ID to remove
{ "success": true }

Delete Team

POST/api/team/delete

Delete a team (owner/admin only).

FieldTypeRequiredDescription
teamIdstringRequiredTeam ID to delete
{ "success": true }

Join Preview

GET/api/join/preview

Preview company/team info before joining.

Query ParamTypeRequiredDescription
codestringRequiredJoin code
{ "company": { "name": "Acme Corp", ... }, "team": { "name": "Engineering", ... } }

Cancel Join Request

POST/api/join/cancel

Cancel a pending join request.

FieldTypeRequiredDescription
requestIdstringRequiredRequest ID to cancel
{ "success": true }

Cancel Quit Request

POST/api/quit/cancel

Cancel a pending quit request.

FieldTypeRequiredDescription
requestIdstringRequiredRequest ID to cancel
reasonstringOptionalCancellation reason
{ "success": true }