Teams

Create and manage teams via OAuth

Overview

The Teams API lets you create teams, invite members, and manage team settings through OAuth.

Authentication: OAuth token
Required Scopes: teams:read, teams:write, teams:admin


List Teams

Get all teams the user belongs to.

Endpoint: GET /api/teams

const response = await fetch('https://hypery.ai/api/teams', {
  headers: {
    'Authorization': `Bearer ${oauthToken}`
  }
})
 
const { teams } = await response.json()
console.log(teams)

Response:

{
  "success": true,
  "teams": [
    {
      "id": "507f1f77bcf86cd799439011",
      "name": "Engineering",
      "slug": "engineering",
      "description": "Engineering team",
      "image": null,
      "role": "owner",
      "memberCount": 5,
      "createdAt": "2025-11-01T10:00:00Z",
      "stats": {
        "totalApps": 3,
        "totalCredits": 1000,
        "monthlyUsage": 250
      }
    }
  ]
}

Output Fields

FieldTypeDescription
idstringTeam ID
namestringTeam name
slugstringURL-friendly identifier
descriptionstringTeam description
imagestring | nullTeam avatar URL
rolestringUser's role (owner, admin, member)
memberCountnumberTotal members
statsobjectTeam statistics

Create Team

Create a new team.

Endpoint: POST /api/teams

const response = await fetch('https://hypery.ai/api/teams', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${oauthToken}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    name: 'Engineering',
    description: 'Our engineering team'
  })
})
 
const { team } = await response.json()
console.log('Created:', team.id)

Input Parameters

ParameterTypeRequiredDescription
namestringYesTeam name (min 2 chars)
descriptionstringNoTeam description

Response:

{
  "success": true,
  "team": {
    "id": "507f...",
    "name": "Engineering",
    "slug": "engineering",
    "role": "owner",
    "memberCount": 1
  }
}

Get Team Details

Get information about a specific team.

Endpoint: GET /api/teams/:id

const response = await fetch(
  `https://hypery.ai/api/teams/${teamId}`,
  { headers: { 'Authorization': `Bearer ${oauthToken}` } }
)
 
const { team } = await response.json()

List Team Members

Get all members of a team.

Endpoint: GET /api/teams/:id/members

const response = await fetch(
  `https://hypery.ai/api/teams/${teamId}/members`,
  { headers: { 'Authorization': `Bearer ${oauthToken}` } }
)
 
const { members } = await response.json()

Invite Member

Invite someone to join a team.

Endpoint: POST /api/teams/:id/invite

const response = await fetch(
  `https://hypery.ai/api/teams/${teamId}/invite`,
  {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${oauthToken}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      email: 'engineer@company.com',
      role: 'member'
    })
  }
)
 
const result = await response.json()

Input Parameters

ParameterTypeRequiredDescription
emailstringYesEmail address to invite
rolestringYesRole: member or admin

Update Member Role

Change a member's role.

Endpoint: PUT /api/teams/:id/members/:memberId

await fetch(
  `https://hypery.ai/api/teams/${teamId}/members/${memberId}`,
  {
    method: 'PUT',
    headers: {
      'Authorization': `Bearer ${oauthToken}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      role: 'admin'
    })
  }
)

Input Parameters

ParameterTypeRequiredDescription
rolestringYesNew role: member or admin

Remove Member

Remove a member from a team.

Endpoint: DELETE /api/teams/:id/members/:memberId

await fetch(
  `https://hypery.ai/api/teams/${teamId}/members/${memberId}`,
  {
    method: 'DELETE',
    headers: { 'Authorization': `Bearer ${oauthToken}` }
  }
)

Upload Team Icon

Update team icon/avatar.

Endpoint: POST /api/teams/:id/icon

const formData = new FormData()
formData.append('image', fileInput.files[0])
 
const response = await fetch(
  `https://hypery.ai/api/teams/${teamId}/icon`,
  {
    method: 'POST',
    headers: { 'Authorization': `Bearer ${oauthToken}` },
    body: formData
  }
)
 
const { imageUrl } = await response.json()
console.log('Team icon:', imageUrl)

Required Role: Owner or Admin


Leave Team

Leave a team you're a member of.

Endpoint: POST /api/teams/:id/leave

await fetch(`https://hypery.ai/api/teams/${teamId}/leave`, {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${oauthToken}`
  }
})

Owners cannot leave their team. Transfer ownership first or delete the team.


Update Team Profile

Modify team name, description, or slug.

Endpoint: PUT /api/teams/:id

const response = await fetch(`https://hypery.ai/api/teams/${teamId}`, {
  method: 'PUT',
  headers: {
    'Authorization': `Bearer ${oauthToken}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    name: 'New Team Name',
    slug: 'new-team-slug',
    description: 'Updated description'
  })
})

Input Parameters

ParameterTypeRequiredDescription
namestringNoTeam name (min 2 chars)
slugstringNoURL slug (min 2 chars, must be unique)
descriptionstringNoTeam description
settingsobjectNoTeam settings (owner only)

For personal teams, updating the slug also updates the user's username automatically.


Delete Team

Permanently delete a team.

Endpoint: DELETE /api/teams/:id

await fetch(`https://hypery.ai/api/teams/${teamId}`, {
  method: 'DELETE',
  headers: {
    'Authorization': `Bearer ${oauthToken}`
  }
})

Roles Reference

RolePermissions
ownerFull control (cannot be removed)
adminManage members, apps, settings
memberUse team resources, view analytics

Next Steps