Port Teams API
The Teams API from Port — 2 operation(s) for teams.
The Teams API from Port — 2 operation(s) for teams.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/port-io:port-io-teams-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Port Teams API
version: '1.0'
tags:
- name: Teams
paths:
/v1/teams:
get:
summary: Get all teams in your organization
tags:
- Teams
description: 'This route allows you to fetch all of the teams in your Port organization.
To learn more about teams, check out the documentation.'
parameters:
- schema:
type: array
items:
enum:
- id
- name
- createdAt
- updatedAt
- provider
- description
- users.firstName
- users.lastName
- users.email
- users.picture
- users.status
in: query
name: fields
required: false
description: The fields you want to fetch for each team. If used, only the specified fields will be included in the response.
security:
- bearer:
- read:teams
x-should-be-exposed-to-customers: true
responses:
'200':
description: Retrieved successfully.
content:
application/json:
schema:
description: Retrieved successfully.
type: object
properties:
ok:
enum:
- true
teams:
type: array
items:
type: object
properties:
id:
type: string
name:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
provider:
type: string
description:
type: string
users:
type: array
items:
type: object
properties:
email:
type: string
firstName:
type: string
lastName:
type: string
picture:
type: string
status:
type: string
required:
- teams
- ok
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
operationId: getV1Teams
x-operation-id-source: derived
post:
summary: Create a team
tags:
- Teams
description: 'This route allows you to create a new team in your Port organization.
To learn more about teams, check out the documentation.'
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
pattern: ^[^;#/\?\s][^;#/\?]*[^;#/\?\s]$
description: The name of the new team.
users:
type: array
items:
type: string
description: One or more e-mail addresses of users to add to the new team.
description:
type: string
description: The description of the new team.
required:
- name
required: true
security:
- bearer:
- create:teams
x-should-be-exposed-to-customers: true
responses:
'200':
description: Created successfully.
content:
application/json:
schema:
description: Created successfully.
type: object
properties:
ok:
enum:
- true
team:
type: object
properties:
id:
type: string
name:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
provider:
type: string
description:
type: string
users:
type: array
items:
type: object
properties:
email:
type: string
firstName:
type: string
lastName:
type: string
picture:
type: string
status:
type: string
required:
- team
- ok
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
'413':
description: Request body is too large (limit is 1MiB)
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
description: Request body is too large (limit is 1MiB)
'422':
description: The json provided does not match the route's schema
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: The json provided does not match the route's schema
operationId: postV1Teams
x-operation-id-source: derived
/v1/teams/{name}:
get:
summary: Get a team
tags:
- Teams
description: 'This route allows you to fetch a specific team in your Port organization.
To learn more about teams, check out the documentation.'
parameters:
- schema:
type: array
items:
enum:
- id
- name
- createdAt
- updatedAt
- provider
- description
- users.firstName
- users.lastName
- users.email
- users.picture
- users.status
in: query
name: fields
required: false
description: The fields you want to fetch for the team. If used, only the specified fields will be included in the response.
- schema:
type: string
in: path
name: name
required: true
description: The name of the team you want to fetch.
security:
- bearer:
- read:teams
x-should-be-exposed-to-customers: true
responses:
'200':
description: Retrieved successfully.
content:
application/json:
schema:
description: Retrieved successfully.
type: object
properties:
ok:
enum:
- true
team:
type: object
properties:
id:
type: string
name:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
provider:
type: string
description:
type: string
required:
- team
- ok
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
operationId: getV1TeamsByName
x-operation-id-source: derived
patch:
summary: Update a team
tags:
- Teams
description: 'This route allows you to update a team''s details. This can be used to update the team''s name, users, and description.
To learn more about teams, check out the documentation.'
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: The new name of the team.
users:
type: array
items:
type: string
description: One or more e-mail addresses of users to add to the new team. This will override the existing user list.
description:
type:
- string
- 'null'
description: The new description of the team.
parameters:
- schema:
type: string
in: path
name: name
required: true
description: The name of the team you want to update.
security:
- bearer:
- update:teams
x-should-be-exposed-to-customers: true
responses:
'200':
description: Updated successfully.
content:
application/json:
schema:
description: Updated successfully.
type: object
properties:
ok:
enum:
- true
team:
type: object
properties:
id:
type: string
name:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
provider:
type: string
description:
type: string
users:
type: array
items:
type: object
properties:
email:
type: string
firstName:
type: string
lastName:
type: string
picture:
type: string
status:
type: string
required:
- team
- ok
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
'413':
description: Request body is too large (limit is 1MiB)
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
description: Request body is too large (limit is 1MiB)
'422':
description: The json provided does not match the route's schema
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: The json provided does not match the route's schema
operationId: patchV1TeamsByName
x-operation-id-source: derived
put:
summary: Change a team
tags:
- Teams
description: 'This route allows you to change a team''s details. This can be used to update the team''s name, users, and description.
To learn more about teams, check out the documentation.'
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: The new name of the team.
users:
type: array
items:
type: string
description: One or more e-mail addresses of users to add to the new team. This will override the existing user list.
description:
type: string
description: The new description of the team.
required:
- name
required: true
parameters:
- schema:
type: string
in: path
name: name
required: true
description: The name of the team you want to change.
security:
- bearer:
- update:teams
x-should-be-exposed-to-customers: true
responses:
'200':
description: Updated successfully.
content:
application/json:
schema:
description: Updated successfully.
type: object
properties:
ok:
enum:
- true
team:
type: object
properties:
id:
type: string
name:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
provider:
type: string
description:
type: string
users:
type: array
items:
type: object
properties:
email:
type: string
firstName:
type: string
lastName:
type: string
picture:
type: string
status:
type: string
required:
- team
- ok
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
'413':
description: Request body is too large (limit is 1MiB)
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
description: Request body is too large (limit is 1MiB)
'422':
description: The json provided does not match the route's schema
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: The json provided does not match the route's schema
operationId: putV1TeamsByName
x-operation-id-source: derived
delete:
summary: Delete a team
tags:
- Teams
description: 'This route allows you to delete a team in your Port organization.
To learn more about teams, check out the documentation.'
parameters:
- schema:
type: string
in: path
name: name
required: true
description: The name of the team you want to delete.
security:
- bearer:
- delete:teams
x-should-be-exposed-to-customers: true
responses:
'200':
description: Deleted successfully.
content:
application/json:
schema:
description: Deleted successfully.
properties:
ok:
enum:
- true
required:
- ok
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
'413':
description: Request body is too large (limit is 1MiB)
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
description: Request body is too large (limit is 1MiB)
'422':
description: The json provided does not match the route's schema
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: The json provided does not match the route's schema
operationId: deleteV1TeamsByName
x-operation-id-source: derived
components:
securitySchemes:
bearer:
type: apiKey
name: Authorization
in: header
x-provenance:
method: harvested
publisher: Port
source: https://api.port.io/swagger/json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)