HUD

HUD Teams API

The teams API from HUD — 5 operation(s) for teams.

Operations 6

GET /v2/team/invitations List Team Invitations #
POST /v2/team/invitations Invite Team Members #
POST /v2/team/invitations/batch-revoke Revoke Team Invitations #
POST /v2/team/members/batch-role Update Team Member Roles #
POST /v2/team/members/batch-remove Remove Team Members #
GET /v2/team/members List Team Members #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hud-ai:hud-ai-teams-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API 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 Specification

hud-ai-teams-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: HUD Platform Teams API
  version: 2.0.0
tags:
- name: Teams
paths:
  /v2/team/invitations:
    get:
      tags:
      - Teams
      summary: List Team Invitations
      description: List the caller team's pending invitations; admin only.
      operationId: list_team_invitations_v2_team_invitations_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamInvitationsResponse'
        '400':
          description: Invalid or malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Caller may not access this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Referenced entity does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Resource already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: An upstream provider is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded; wait at least Retry-After seconds
          headers:
            Retry-After:
              description: Seconds until the request budget has room
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: The server is at capacity; retry after Retry-After seconds
          headers:
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - Teams
      summary: Invite Team Members
      description: Invite email addresses to the caller's team; admin only.
      operationId: invite_team_members_v2_team_invitations_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamInviteRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamInviteResponse'
        '400':
          description: Invalid or malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Caller may not access this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Referenced entity does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Resource already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: An upstream provider is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limit exceeded; wait at least Retry-After seconds
          headers:
            Retry-After:
              description: Seconds until the request budget has room
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: The server is at capacity; retry after Retry-After seconds
          headers:
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/team/invitations/batch-revoke:
    post:
      tags:
      - Teams
      summary: Revoke Team Invitations
      description: Revoke pending invitations to the caller's team; admin only.
      operationId: revoke_team_invitations_v2_team_invitations_batch_revoke_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamInvitationRevokeRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamInvitationRevokeResponse'
        '400':
          description: Invalid or malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Caller may not access this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Referenced entity does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Resource already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: An upstream provider is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limit exceeded; wait at least Retry-After seconds
          headers:
            Retry-After:
              description: Seconds until the request budget has room
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: The server is at capacity; retry after Retry-After seconds
          headers:
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/team/members/batch-role:
    post:
      tags:
      - Teams
      summary: Update Team Member Roles
      description: Set the role of other members of the caller's team; admin only.
      operationId: update_team_member_roles_v2_team_members_batch_role_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamMemberRoleUpdateRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamMemberBatchResponse'
        '400':
          description: Invalid or malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Caller may not access this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Referenced entity does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Resource already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: An upstream provider is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limit exceeded; wait at least Retry-After seconds
          headers:
            Retry-After:
              description: Seconds until the request budget has room
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: The server is at capacity; retry after Retry-After seconds
          headers:
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/team/members/batch-remove:
    post:
      tags:
      - Teams
      summary: Remove Team Members
      description: Remove other members from the caller's team and revoke their API keys; admin only.
      operationId: remove_team_members_v2_team_members_batch_remove_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamMemberRemoveRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamMemberBatchResponse'
        '400':
          description: Invalid or malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Caller may not access this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Referenced entity does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Resource already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: An upstream provider is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limit exceeded; wait at least Retry-After seconds
          headers:
            Retry-After:
              description: Seconds until the request budget has room
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: The server is at capacity; retry after Retry-After seconds
          headers:
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/team/members:
    get:
      tags:
      - Teams
      summary: List Team Members
      description: List the members of the caller's team.
      operationId: list_team_members_v2_team_members_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamMembersResponse'
        '400':
          description: Invalid or malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Caller may not access this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Referenced entity does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Resource already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded; wait at least Retry-After seconds
          headers:
            Retry-After:
              description: Seconds until the request budget has room
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: The server is at capacity; retry after Retry-After seconds
          headers:
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    TeamInviteRequest:
      properties:
        emails:
          items:
            type: string
            format: email
          type: array
          maxItems: 30
          minItems: 1
          title: Emails
        role:
          type: string
          enum:
          - admin
          - member
          - external
          title: Role
      type: object
      required:
      - emails
      - role
      title: TeamInviteRequest
    TeamMemberRemoveRequest:
      properties:
        membership_ids:
          items:
            type: integer
          type: array
          maxItems: 30
          minItems: 1
          title: Membership Ids
      type: object
      required:
      - membership_ids
      title: TeamMemberRemoveRequest
    TeamInvitationItem:
      properties:
        id:
          type: string
          title: Id
        email:
          type: string
          title: Email
        role:
          type: string
          enum:
          - admin
          - member
          - external
          title: Role
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - email
      - role
      - created_at
      title: TeamInvitationItem
      description: A pending invitation to the team.
    TeamMemberBatchResponse:
      properties:
        succeeded:
          items:
            type: integer
          type: array
          title: Succeeded
        failed:
          items:
            $ref: '#/components/schemas/TeamMemberFailure'
          type: array
          title: Failed
      type: object
      required:
      - succeeded
      - failed
      title: TeamMemberBatchResponse
      description: Memberships the change applied to, and why it did not apply to the rest.
    TeamInviteFailure:
      properties:
        email:
          type: string
          title: Email
        error:
          $ref: '#/components/schemas/ErrorResponse'
      type: object
      required:
      - email
      - error
      title: TeamInviteFailure
    TeamMemberFailure:
      properties:
        membership_id:
          type: integer
          title: Membership Id
        error:
          $ref: '#/components/schemas/ErrorResponse'
      type: object
      required:
      - membership_id
      - error
      title: TeamMemberFailure
    ErrorResponse:
      properties:
        error:
          type: string
          title: Error
        source:
          $ref: '#/components/schemas/ErrorSource'
        detail:
          type: string
          title: Detail
      type: object
      required:
      - error
      - source
      - detail
      title: ErrorResponse
      description: The uniform `{error, source, detail}` envelope returned for every 4xx/5xx.
    ErrorSource:
      type: string
      enum:
      - user
      - platform
      - provider
      title: ErrorSource
      description: 'Who is at fault for a failure.


        ``user``: the customer''s input, account, environment, or agent code.

        ``platform``: HUD infrastructure or a broken platform invariant.

        ``provider``: a third-party dependency (cloud runtime, upstream LLM API).'
    TeamMembersResponse:
      properties:
        members:
          items:
            $ref: '#/components/schemas/TeamMemberItem'
          type: array
          title: Members
      type: object
      required:
      - members
      title: TeamMembersResponse
    TeamMemberRoleUpdateRequest:
      properties:
        membership_ids:
          items:
            type: integer
          type: array
          maxItems: 30
          minItems: 1
          title: Membership Ids
        role:
          type: string
          enum:
          - admin
          - member
          - external
          title: Role
      type: object
      required:
      - membership_ids
      - role
      title: TeamMemberRoleUpdateRequest
    TeamInvitationsResponse:
      properties:
        invitations:
          items:
            $ref: '#/components/schemas/TeamInvitationItem'
          type: array
          title: Invitations
      type: object
      required:
      - invitations
      title: TeamInvitationsResponse
    HTTPValidationError:
      title: HTTPValidationError
      type: object
      properties:
        error:
          type: string
          const: validation_error
          title: Error
        source:
          type: string
          enum:
          - user
          - platform
          - provider
          title: Source
        detail:
          type: string
          title: Detail
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Errors
      required:
      - error
      - source
      - detail
      - errors
    TeamInvitationFailure:
      properties:
        invitation_id:
          type: string
          title: Invitation Id
        error:
          $ref: '#/components/schemas/ErrorResponse'
      type: object
      required:
      - invitation_id
      - error
      title: TeamInvitationFailure
    TeamInvitationRevokeResponse:
      properties:
        succeeded:
          items:
            type: string
          type: array
          title: Succeeded
        failed:
          items:
            $ref: '#/components/schemas/TeamInvitationFailure'
          type: array
          title: Failed
      type: object
      required:
      - succeeded
      - failed
      title: TeamInvitationRevokeResponse
      description: Invitations that are no longer pending, and why each remaining one still is.
    TeamInvitationRevokeRequest:
      properties:
        invitation_ids:
          items:
            type: string
          type: array
          maxItems: 30
          minItems: 1
          title: Invitation Ids
      type: object
      required:
      - invitation_ids
      title: TeamInvitationRevokeRequest
    TeamInviteResponse:
      properties:
        succeeded:
          items:
            type: string
          type: array
          title: Succeeded
        failed:
          items:
            $ref: '#/components/schemas/TeamInviteFailure'
          type: array
          title: Failed
      type: object
      required:
      - succeeded
      - failed
      title: TeamInviteResponse
      description: Addresses that were invited, and why each remaining address was not.
    TeamMemberItem:
      properties:
        user_id:
          type: string
          format: uuid
          title: User Id
        membership_id:
          type: integer
          title: Membership Id
        role:
          type: string
          enum:
          - admin
          - member
          - external
          title: Role
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
        avatar_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Avatar Url
        joined_at:
          type: string
          format: date-time
          title: Joined At
      type: object
      required:
      - user_id
      - membership_id
      - role
      - joined_at
      title: TeamMemberItem
    ValidationError:
      title: ValidationError
      type: object
      properties:
        type:
          type: string
          title: Error Type
        loc:
          type: array
          items:
            anyOf:
            - type: string
            - type: integer
          title: Location
        msg:
          type: string
          title: Message
      required:
      - type
      - loc
      - msg
x-hud-contract-scope: platform_public