openapi: 3.1.0 info: title: PlanetScale Platform Backups Teams API description: The PlanetScale Platform API provides programmatic access to manage PlanetScale serverless MySQL-compatible databases. It allows developers to create and manage databases, branches, deploy requests, passwords, backups, service tokens, organization members, teams, bouncers, and billing data. The API supports authentication via service tokens and OAuth, enabling integration into CI/CD pipelines and infrastructure-as-code workflows. version: 1.0.0 contact: name: PlanetScale Support url: https://support.planetscale.com termsOfService: https://planetscale.com/legal/tos license: name: Proprietary url: https://planetscale.com/legal/tos servers: - url: https://api.planetscale.com/v1 description: PlanetScale Production API security: - serviceToken: [] tags: - name: Teams description: Manage teams within an organization, including creating teams, adding members, and controlling database access. paths: /organizations/{organization}/teams: get: operationId: listTeams summary: List teams description: Returns a list of all teams in the specified organization. tags: - Teams parameters: - $ref: '#/components/parameters/OrganizationParam' - $ref: '#/components/parameters/PageParam' - $ref: '#/components/parameters/PerPageParam' responses: '200': description: Successful response with list of teams content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Team' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createTeam summary: Create a team description: Creates a new team in the specified organization. tags: - Teams parameters: - $ref: '#/components/parameters/OrganizationParam' requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string description: The name of the team. description: type: string description: A description of the team. responses: '201': description: Team created successfully content: application/json: schema: $ref: '#/components/schemas/Team' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/UnprocessableEntity' /organizations/{organization}/teams/{team_slug}: get: operationId: getTeam summary: Get a team description: Returns details about a specific team in the organization. tags: - Teams parameters: - $ref: '#/components/parameters/OrganizationParam' - $ref: '#/components/parameters/TeamSlugParam' responses: '200': description: Successful response with team details content: application/json: schema: $ref: '#/components/schemas/Team' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' patch: operationId: updateTeam summary: Update a team description: Updates the name or description of a specific team. tags: - Teams parameters: - $ref: '#/components/parameters/OrganizationParam' - $ref: '#/components/parameters/TeamSlugParam' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: The updated name of the team. description: type: string description: The updated description of the team. responses: '200': description: Team updated successfully content: application/json: schema: $ref: '#/components/schemas/Team' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteTeam summary: Delete a team description: Deletes a team from the organization. tags: - Teams parameters: - $ref: '#/components/parameters/OrganizationParam' - $ref: '#/components/parameters/TeamSlugParam' responses: '204': description: Team deleted successfully '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: responses: Unauthorized: description: Authentication failed. The service token or OAuth token is missing, invalid, or lacks the required permissions. content: application/json: schema: $ref: '#/components/schemas/Error' UnprocessableEntity: description: The request was well-formed but contains invalid parameters or violates business rules. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' parameters: PageParam: name: page in: query required: false description: The page number for pagination. schema: type: integer minimum: 1 default: 1 OrganizationParam: name: organization in: path required: true description: The name of the organization. schema: type: string PerPageParam: name: per_page in: query required: false description: The number of results per page. schema: type: integer minimum: 1 maximum: 100 default: 25 TeamSlugParam: name: team_slug in: path required: true description: The slug of the team. schema: type: string schemas: Team: type: object description: A team within an organization for managing database access at the group level. properties: id: type: string description: The unique identifier of the team. name: type: string description: The name of the team. slug: type: string description: The URL-safe slug of the team. description: type: string description: A description of the team. members_count: type: integer description: The number of members in the team. created_at: type: string format: date-time description: The timestamp when the team was created. updated_at: type: string format: date-time description: The timestamp when the team was last updated. Error: type: object description: An error response from the PlanetScale API. properties: code: type: string description: A machine-readable error code. message: type: string description: A human-readable error message. securitySchemes: serviceToken: type: apiKey in: header name: Authorization description: Service token authentication. Use the format 'ServiceToken {token_id}:{token_value}' in the Authorization header. bearerAuth: type: http scheme: bearer description: OAuth 2.0 bearer token authentication. Obtain tokens via the PlanetScale OAuth authorization code flow. externalDocs: description: PlanetScale API Documentation url: https://planetscale.com/docs/api/reference/getting-started-with-planetscale-api