Eshway Team API

The Team API from Eshway — 10 operation(s) for team.

GitHub OpenAPI

Operations 13

GET /v1/team/{organization_id}/members Get Team Members #
POST /v1/team/{organization_id}/invite Invite Team Member #
GET /v1/team/{organization_id}/current-user-role Get Current User Role #
PUT /v1/team/{organization_id}/members/{user_id} Update Team Member #
DELETE /v1/team/{organization_id}/members/{user_id} Remove Team Member #
GET /v1/team/{organization_id}/project-access/summary Get Project Access Summary #
GET /v1/team/{organization_id}/project-access/projects List Project Access Projects #
POST /v1/team/{organization_id}/members/{user_id}/project-access Grant Member Project Access #
PUT /v1/team/{organization_id}/members/{user_id}/project-access Replace Member Project Access #
DELETE /v1/team/{organization_id}/members/{user_id}/project-access Revoke Member Project Access #
GET /v1/team/{organization_id}/pending-invitations Get Pending Invitations #
DELETE /v1/team/{organization_id}/invitations/{invitation_id} Cancel Pending Invitation #
POST /v1/team/{organization_id}/invitations/{invitation_id}/invite-link Get Pending Invitation Link #

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/eshway-com:eshway-com-team-api"
All apis
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.

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

eshway-com-team-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fast Team API
  version: 0.1.0
tags:
- name: Team
paths:
  /v1/team/{organization_id}/members:
    get:
      tags:
      - Team
      summary: Get Team Members
      operationId: get_team_members_v1_team__organization_id__members_get
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: integer
          title: Organization Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TeamMemberResponse'
                title: Response Get Team Members V1 Team  Organization Id  Members Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/team/{organization_id}/invite:
    post:
      tags:
      - Team
      summary: Invite Team Member
      operationId: invite_team_member_v1_team__organization_id__invite_post
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: integer
          title: Organization Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamMemberCreate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/team/{organization_id}/current-user-role:
    get:
      tags:
      - Team
      summary: Get Current User Role
      description: 'Return the caller''s current role in this organization.


        Active membership required. The underlying service returns

        OrganizationUser.role without

        checking is_still_member, so a removed user could keep getting

        their old role back from cache and the frontend would still

        render admin/member capabilities.'
      operationId: get_current_user_role_v1_team__organization_id__current_user_role_get
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: integer
          title: Organization Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/team/{organization_id}/members/{user_id}:
    put:
      tags:
      - Team
      summary: Update Team Member
      operationId: update_team_member_v1_team__organization_id__members__user_id__put
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: integer
          title: Organization Id
      - name: user_id
        in: path
        required: true
        schema:
          type: integer
          title: User Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TeamMemberUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - Team
      summary: Remove Team Member
      operationId: remove_team_member_v1_team__organization_id__members__user_id__delete
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: integer
          title: Organization Id
      - name: user_id
        in: path
        required: true
        schema:
          type: integer
          title: User Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/team/{organization_id}/project-access/summary:
    get:
      tags:
      - Team
      summary: Get Project Access Summary
      operationId: get_project_access_summary_v1_team__organization_id__project_access_summary_get
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: integer
          title: Organization Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectAccessSummaryResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/team/{organization_id}/project-access/projects:
    get:
      tags:
      - Team
      summary: List Project Access Projects
      operationId: list_project_access_projects_v1_team__organization_id__project_access_projects_get
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: integer
          title: Organization Id
      - name: user_id
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          title: User Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectAccessProjectResponse'
                title: Response List Project Access Projects V1 Team  Organization Id  Project Access Projects Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/team/{organization_id}/members/{user_id}/project-access:
    post:
      tags:
      - Team
      summary: Grant Member Project Access
      operationId: grant_member_project_access_v1_team__organization_id__members__user_id__project_access_post
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: integer
          title: Organization Id
      - name: user_id
        in: path
        required: true
        schema:
          type: integer
          title: User Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectAccessRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectAccessGrantResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - Team
      summary: Replace Member Project Access
      operationId: replace_member_project_access_v1_team__organization_id__members__user_id__project_access_put
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: integer
          title: Organization Id
      - name: user_id
        in: path
        required: true
        schema:
          type: integer
          title: User Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectAccessReplaceRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectAccessReplaceResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - Team
      summary: Revoke Member Project Access
      operationId: revoke_member_project_access_v1_team__organization_id__members__user_id__project_access_delete
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: integer
          title: Organization Id
      - name: user_id
        in: path
        required: true
        schema:
          type: integer
          title: User Id
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/ProjectAccessRequest'
              - type: 'null'
              title: Request
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectAccessRevokeResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/team/{organization_id}/pending-invitations:
    get:
      tags:
      - Team
      summary: Get Pending Invitations
      operationId: get_pending_invitations_v1_team__organization_id__pending_invitations_get
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: integer
          title: Organization Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PendingInvitationResponse'
                title: Response Get Pending Invitations V1 Team  Organization Id  Pending Invitations Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/team/{organization_id}/invitations/{invitation_id}:
    delete:
      tags:
      - Team
      summary: Cancel Pending Invitation
      operationId: cancel_pending_invitation_v1_team__organization_id__invitations__invitation_id__delete
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: integer
          title: Organization Id
      - name: invitation_id
        in: path
        required: true
        schema:
          type: integer
          title: Invitation Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/team/{organization_id}/invitations/{invitation_id}/invite-link:
    post:
      tags:
      - Team
      summary: Get Pending Invitation Link
      operationId: get_pending_invitation_link_v1_team__organization_id__invitations__invitation_id__invite_link_post
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: integer
          title: Organization Id
      - name: invitation_id
        in: path
        required: true
        schema:
          type: integer
          title: Invitation Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InviteLinkRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    ProjectAccessRequest:
      properties:
        scope:
          type: string
          enum:
          - none
          - all_current
          - selected
          title: Scope
          default: all_current
        project_ids:
          items:
            type: integer
          type: array
          maxItems: 500
          title: Project Ids
      type: object
      title: ProjectAccessRequest
    ProjectAccessReplaceRequest:
      properties:
        scope:
          type: string
          enum:
          - selected
          const: selected
          title: Scope
          default: selected
        project_ids:
          items:
            type: integer
          type: array
          maxItems: 5000
          title: Project Ids
      type: object
      title: ProjectAccessReplaceRequest
    ProjectAccessSummaryResponse:
      properties:
        total_projects:
          type: integer
          title: Total Projects
      type: object
      required:
      - total_projects
      title: ProjectAccessSummaryResponse
    TeamMemberCreate:
      properties:
        email:
          type: string
          format: email
          title: Email
        role:
          type: string
          enum:
          - super_admin
          - admin
          - manager
          - member
          - viewer
          title: Role
          default: member
        organization_id:
          type: integer
          title: Organization Id
        project_access_scope:
          type: string
          enum:
          - none
          - all_current
          - selected
          title: Project Access Scope
          default: none
        project_ids:
          items:
            type: integer
          type: array
          maxItems: 500
          title: Project Ids
      type: object
      required:
      - email
      - organization_id
      title: TeamMemberCreate
    ProjectAccessRevokeResponse:
      properties:
        target_projects:
          type: integer
          title: Target Projects
        removed:
          type: integer
          title: Removed
        already_inactive:
          type: integer
          title: Already Inactive
      type: object
      required:
      - target_projects
      - removed
      - already_inactive
      title: ProjectAccessRevokeResponse
    ProjectAccessReplaceResponse:
      properties:
        grant:
          $ref: '#/components/schemas/ProjectAccessGrantResponse'
        revoke:
          $ref: '#/components/schemas/ProjectAccessRevokeResponse'
      type: object
      required:
      - grant
      - revoke
      title: ProjectAccessReplaceResponse
    ProjectAccessGrantResponse:
      properties:
        target_projects:
          type: integer
          title: Target Projects
        inserted:
          type: integer
          title: Inserted
        reactivated:
          type: integer
          title: Reactivated
        already_active:
          type: integer
          title: Already Active
      type: object
      required:
      - target_projects
      - inserted
      - reactivated
      - already_active
      title: ProjectAccessGrantResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    InviteLinkRequest:
      properties:
        regenerate:
          type: boolean
          title: Regenerate
          default: false
      type: object
      title: InviteLinkRequest
    TeamMemberUpdate:
      properties:
        role:
          anyOf:
          - type: string
          - type: 'null'
          title: Role
      type: object
      title: TeamMemberUpdate
    PendingInvitationResponse:
      properties:
        id:
          type: integer
          title: Id
        email:
          type: string
          title: Email
        status:
          type: string
          title: Status
        sent_at:
          type: string
          format: date-time
          title: Sent At
        invited_by:
          type: integer
          title: Invited By
        role:
          type: string
          enum:
          - super_admin
          - admin
          - manager
          - member
          - viewer
          title: Role
          default: member
        project_access_scope:
          type: string
          enum:
          - none
          - all_current
          - selected
          title: Project Access Scope
          default: none
        project_ids:
          items:
            type: integer
          type: array
          title: Project Ids
          default: []
        is_link_valid:
          type: boolean
          title: Is Link Valid
          default: false
      type: object
      required:
      - id
      - email
      - status
      - sent_at
      - invited_by
      title: PendingInvitationResponse
    ProjectAccessProjectResponse:
      properties:
        id:
          type: integer
          title: Id
        name:
          type: string
          title: Name
        has_access:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Has Access
        is_owner:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Owner
      type: object
      required:
      - id
      - name
      title: ProjectAccessProjectResponse
    TeamMemberResponse:
      properties:
        id:
          type: integer
          title: Id
        name:
          type: string
          title: Name
        email:
          type: string
          title: Email
        role:
          type: string
          title: Role
        avatar:
          anyOf:
          - type: string
          - type: 'null'
          title: Avatar
        skills:
          items:
            type: string
          type: array
          title: Skills
          default: []
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - name
      - email
      - role
      - created_at
      title: TeamMemberResponse
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
  securitySchemes:
    OAuth2PasswordBearer:
      type: oauth2
      flows:
        password:
          scopes: {}
          tokenUrl: token