Bridgit Bench API

The Bridgit Bench REST API lets developers build custom integrations against the Bench workforce planning platform — managing accounts, projects, people, roles, allocations (including hourly), phases, certifications, person and project custom fields, groupings, notes, tasks, attachments, workforce spend reports, and user/service-account administration. Authentication uses OAuth bearer tokens issued by POST /auth/signin against a service account; refresh tokens may be exchanged at POST /auth/token. All resource paths live under https://bench.gobridgit.com/rp/api/v1/.

Bridgit Bench API is published by Bridgit on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Workforce Planning, Projects, People, Roles, and Allocations. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and authentication docs.

OpenAPI Specification

bridgit-bench-openapi.yml Raw ↑
openapi: 3.0.4
info:
  title: Bench API
  description: "<h2>Versioning</h2>\n<p>\n    The API is currently at version <code>1.0</code>. All API endpoints (other than\n\
    \    authentication) require you to specify the API version as part of the path.\n</p>\n\n<h2>URL Paths</h2>\n<p>\n  \
    \  Authentication requests should be made to <code>/auth/signin</code>,\n    as documented below. All other API requests\
    \ should be made to\n    sub-paths of <code>/rp/api/1.0/...</code>.\n</p>\n\n<h2>Authentication</h2>\n<p>\n    API requests\
    \ are authenticated using an OAuth Bearer token.\n    You can get a token by authenticating your user by sending a\n \
    \   POST request to <code>/auth/signin</code>, with \"username and \"password\"\n    parameters form-encoded in the body\
    \ of the request.\n\n    POST /auth/signin HTTP/1.1\n    Content-Type: application/x-www-form-urlencoded\n\n    [email protected]&password=some-secret-password\n\
    </p>\n<p>\n    The response will be a JSON object including both\n    <b>\"access_token\"</b> and <b>\"refresh_token\"\
    </b> property.\n    All other requests against the Bench API should include an\n    authorization header: <code>Authorization:\
    \ Bearer xxxYYYzzz</code>,\n    where <b>xxxYYYzzz</b> is the value of <b>\"access_token\"</b> in the response.\n    <br><br>\n\
    \    For example:\n\n    $ curl https://bench.gobridgit.com/auth/signin -H 'Content-Type: application/x-www-form-urlencoded'\
    \ --data-urlencode '[email protected]' --data-urlencode 'password=[...snip...]'\n    {\n        \"access_token\"\
    : \"...snip...\",\n        \"token_type\": \"Bearer\",\n        \"refresh_token\": \"...snip...\"\n        \"expiry\"\
    : \"2020-01-01T00:00:00.413440849Z\"\n    }\n\n</p>\n\n<p>\n    The refresh token can be used to generate new session\
    \ by request with <code>/auth/token</code> endpoint:\n\n    POST /auth/token HTTP/1.1\n    Content-Type: application/x-www-form-urlencoded\n\
    \n    grant_type=refresh_token&refresh_token=tGzv3JOkF0XG5Qx2TlKWIA\n</p>\n<p>\n    Note that once the refresh token is\
    \ used, the previous access and refresh token is no longer valid.\n    <br><br>\n    For example:\n\n    $ curl https://bench.gobridgit.com/auth/token\
    \ -H 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'grant_type=refresh_token' --data-urlencode 'refresh_token=[...snip...]'\n\
    \    {\n        \"access_token\": \"...snip...\",\n        \"token_type\": \"Bearer\",\n        \"refresh_token\": \"\
    ...snip...\"\n        \"expiry\": \"2020-01-01T00:00:00.413440849Z\"\n    }\n</p>\n\n<h2>Pagination</h2>\n<p>\n    Several\
    \ of the API endpoints are paginated. These are denoted by\n    including the <code>offset</code> (zero-based offset)\
    \ and <code>limit</code> query\n    parameters. For example, to request the <code>10</code> items,\n    set the <code>offset=0</code>\
    \ to <code>limit=10</code>.\n    <br>\n    NOTE: the result set contains items with index of 0-9\n    <br>\n    To request\
    \ the next 10 items (starting at index 10),\n    set the <code>offset=10</code> to <code>limit=10</code>\n</p>\n<p>\n\
    \    Responses to paginated API endpoints return a JSON array of objects.\n    If there are results beyond the page you\
    \ have requested, the server\n    will set a <code>query-has-more: true</code> header in the response.\n</p>\n\n<h2>Request\
    \ Encoding</h2>\n<p>\n    <code>GET</code> and <code>DELETE</code> requests should have parameters encoded as URL query\n\
    \    parameters. Boolean values should be encoded as <code>true</code> and\n    <code>false</code>, not as <code>1</code>\
    \ and <code>0</code>.\n</p>\n\n<h2>Errors</h2>\n<p>\n    Errors are returned for some response codes such as <code>400\
    \ Bad Request</code> in the\n    following format:\n\n    {\n      \"errors\": [\n        {\n          \"errorType\":\
    \ \"ValidationError\",\n          \"description\": \"The value of Name must be a string with a minimum length of 1 and\
    \ a maximum length of 8 and not whitespace.\",\n          \"field\": \"Name\",\n          \"values\": [\n            null\n\
    \          ]\n        }\n      ],\n      \"title\": \"One or more validation errors occurred.\",\n      \"status\": 400,\n\
    \      \"instance\": \"api/v1/accounts/0/persons\",\n      \"requestUid\": \"123e4567-e89b-12d3-a456-426614174000\"\n\
    \    }\n</p>\n"
  version: '1.0'
paths:
  /rp/api/v1/accounts/{accountId}/activities/_filter:
    post:
      tags:
      - AccountActivities
      summary: Retrieves activity logs for the specified account with optional filtering and pagination.
      description: 'This endpoint returns a paginated list of activities that occurred within the account. The results can
        be filtered by:

        - Person IDs (maximum 10)

        - Project IDs (maximum 10)

        - Date range (happenedFrom and happenedTo)

        - User IDs who triggered the events (maximum 10)

        - Activity types (maximum 25)


        Note: Either PersonIds or ProjectIds can be specified, but not both simultaneously.


        The response includes a `query-has-more` header indicating whether additional records are available beyond the current
        page.<br/><strong>Permissions</strong><br/>Private: Read<br/>Finance: Read<br/>Person: Read<br/>HourlyProfile: Read<br/>Project:
        Read<br/>Communication: Read<br/>Role: Read<br/>HourlyRole: Read<br/>Allocation: Read<br/>HourlyAllocation: Read<br/>Settings:
        Read'
      operationId: AccountActivities_Filter
      parameters:
      - name: accountId
        in: path
        description: The account ID (must be greater than zero)
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        description: "The filter criteria containing:\n- offset: Starting position for pagination (default: 0, must be non-negative)\n\
          - limit: Maximum number of records to return (default: 25, range: 1-50)\n- predicates: Optional filtering predicates\
          \ including:\n  - personIds: Array of person IDs to filter by (max 50 items)\n  - projectIds: Array of project IDs\
          \ to filter by (max 10 items)\n  - happenedFrom: Start date for filtering events (optional, range: 1900-01-01 to\
          \ 2100-01-01)\n  - happenedTo: End date for filtering events (optional, range: 1900-01-01 to 2100-01-01, must be\
          \ after happenedFrom if both provided)\n  - triggeredByUserIds: Array of user IDs who triggered the events (max\
          \ 10 items)\n  - activityTypes: Array of activity type strings (max 25 items)\n  - triggeredByIntegrations: Boolean\
          \ to include activities triggered by integrations (default: true)\n  - triggeredByUsers: Boolean to include activities\
          \ triggered by users (default: true)\n  - groupingIds: Array of grouping IDs to filter by"
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ActivitiesFilter'
          application/json:
            schema:
              $ref: '#/components/schemas/ActivitiesFilter'
          text/json:
            schema:
              $ref: '#/components/schemas/ActivitiesFilter'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ActivitiesFilter'
      responses:
        '200':
          description: Successfully retrieved the activity logs. The response includes a `query-has-more` header indicating
            if more records are available.
          headers:
            query-has-more:
              description: Query has more resources beyond the pagination requested
              schema:
                type: boolean
                description: Query has more resources beyond the pagination requested
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ActivityResponse'
        '400':
          description: Bad Request - Invalid filter parameters or validation errors (e.g., invalid date range, too many filter
            values, invalid activity type format)
        '401':
          description: Unauthorized - Authentication token is missing or invalid
        '403':
          description: Forbidden - User does not have required permissions or account access
  /rp/api/v1/accounts/{accountId}/certifications:
    get:
      tags:
      - AccountCertifications
      summary: Gets the certifications for the given account
      description: '<br/><strong>Permissions</strong><br/>Account: Read'
      operationId: AccountCertifications_Query
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: offset
        in: query
        description: Offset for pagination
        schema:
          maximum: 2147483647
          minimum: 0
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Maximum number of results in this page
        schema:
          maximum: 2147483647
          minimum: 1
          type: integer
          format: int32
          default: 1000
      responses:
        '200':
          description: 'Success: List of certifications on the account sorted by <strong>name</strong>'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CertificationResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    post:
      tags:
      - AccountCertifications
      summary: Adds a certification on the given account.
      description: '<br/><strong>Permissions</strong><br/>Account: Write'
      operationId: AccountCertifications_Add
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        description: Request object that contains the certification details
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewCertificationRequest'
        required: true
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NewCertificationResponse'
              example:
                id: 213
                name: Transportation of Dangerous Goods
                abbreviation: TDG
                requireExpiration: true
                daysWarnBeforeExpire: 7
                inUse: []
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '409':
          description: Conflict
  /rp/api/v1/accounts/{accountId}/certifications/{id}:
    get:
      tags:
      - AccountCertifications
      summary: Gets the the specified certification for the given account by ID
      description: '<br/><strong>Permissions</strong><br/>Account: Read'
      operationId: AccountCertifications_Get
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: id
        in: path
        description: The Certification's ID
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: 'Success: Certification model'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificationResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    patch:
      tags:
      - AccountCertifications
      summary: Updates a certification for the given account
      description: '<br/><strong>Permissions</strong><br/>Account: Write'
      operationId: AccountCertifications_Update
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: id
        in: path
        description: Id of the certification to update
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        description: Request object in the body with fields to change
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: string
            example:
              name: Transportation of Dangerous Goods
              abbreviation: TDG
              requireExpiration: 'false'
              daysWarnBeforeExpire: null
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '409':
          description: Conflict
    delete:
      tags:
      - AccountCertifications
      summary: Deletes a certification from the given account
      description: '<strong>NOTE:</strong> this will delete all linked attachments to person certifications.<br/><strong>Permissions</strong><br/>Account:
        Write<br/>Private: Read'
      operationId: AccountCertifications_Delete
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: id
        in: path
        description: Id of the certification to remove
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /rp/api/v1/accounts/{accountId}/groupings:
    get:
      tags:
      - AccountGroupings
      summary: Gets the groupings for the given account
      description: '<br/><strong>Permissions</strong><br/>Account: Read'
      operationId: AccountGroupings_Query
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: offset
        in: query
        description: Offset for pagination
        schema:
          maximum: 2147483647
          minimum: 0
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Maximum number of results in the resultset
        schema:
          maximum: 2147483647
          minimum: 1
          type: integer
          format: int32
          default: 1000
      responses:
        '200':
          description: 'Success: List of groupings on the account sorted by <strong>name</strong>'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AccountGroupingResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '503':
          description: Service Unavailable
    post:
      tags:
      - AccountGroupings
      summary: Adds a grouping on the given account.
      description: '<br/><strong>Permissions</strong><br/>Account: Write'
      operationId: AccountGroupings_Add
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        description: Request object that contains the grouping details
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountGroupingRequest'
        required: true
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountGroupingResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '409':
          description: Conflict
        '503':
          description: Service Unavailable
  /rp/api/v1/accounts/{accountId}/groupings/{id}:
    get:
      tags:
      - AccountGroupings
      summary: Gets the the specified grouping for the given account by ID
      description: '<br/><strong>Permissions</strong><br/>Account: Read'
      operationId: AccountGroupings_Get
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: id
        in: path
        description: The grouping's ID
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: 'Success: grouping model'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountGroupingResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '503':
          description: Service Unavailable
    patch:
      tags:
      - AccountGroupings
      summary: Updates a grouping for the given account
      description: '<br/><strong>Permissions</strong><br/>Account: Write'
      operationId: AccountGroupings_Update
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: id
        in: path
        description: Id of the grouping to update
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        description: Request object in the body with fields to change
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountGroupingRequest'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '409':
          description: Conflict
        '503':
          description: Service Unavailable
    delete:
      tags:
      - AccountGroupings
      summary: Deletes a grouping from the given account
      description: '<br/><strong>Permissions</strong><br/>Account: Write'
      operationId: AccountGroupings_Delete
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: id
        in: path
        description: Id of the grouping to remove
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '503':
          description: Service Unavailable
  /rp/api/v1/accounts/{accountId}/invitations:
    get:
      tags:
      - AccountInvitations
      summary: Gets all invitations for an account
      description: '<br/><strong>Permissions</strong><br/>Account: Read'
      operationId: AccountInvitations_Query
      parameters:
      - name: accountId
        in: path
        description: The ID of the account
        required: true
        schema:
          type: integer
          format: int32
      - name: offset
        in: query
        description: Offset for pagination
        schema:
          maximum: 2147483647
          minimum: 0
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Number of invitations to pull at a time
        schema:
          maximum: 2147483647
          minimum: 1
          type: integer
          format: int32
          default: 1000
      responses:
        '200':
          description: 'Success: List of invitations in the account'
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InvitationResponse'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InvitationResponse'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InvitationResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    post:
      tags:
      - AccountInvitations
      summary: Sends an join invitation to the given email for an account
      description: '<br/><strong>Permissions</strong><br/>Account: Write'
      operationId: AccountInvitations_Post
      parameters:
      - name: accountId
        in: path
        description: The ID of the account
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        description: Request object that contains email
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/AccountInvitationRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/AccountInvitationRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/AccountInvitationRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/AccountInvitationRequest'
        required: true
      responses:
        '201':
          description: 'Created: Invitation Response object'
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/InvitationResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/InvitationResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/InvitationResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /rp/api/v1/accounts/{accountId}/invitations/{id}:
    delete:
      tags:
      - AccountInvitations
      summary: Removes the account's invitation by ID
      description: '<br/><strong>Permissions</strong><br/>Account: Write'
      operationId: AccountInvitations_Delete
      parameters:
      - name: accountId
        in: path
        description: The account Id
        required: true
        schema:
          type: integer
          format: int32
      - name: id
        in: path
        description: The Invitation Id
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /rp/api/v1/accounts/{accountId}/users:
    get:
      tags:
      - AccountUsers
      summary: Gets the users for the given account
      description: '<br/><strong>Permissions</strong><br/>Account: Read'
      operationId: AccountUsers_Query
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: offset
        in: query
        description: Offset for pagination
        schema:
          maximum: 2147483647
          minimum: 0
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Maximum number of results in this page
        schema:
          maximum: 2147483647
          minimum: 1
          type: integer
          format: int32
          default: 1000
      - name: group
        in: query
        description: Optional parameter to filter results based on user groups
        schema:
          type: string
      - name: ids
        in: query
        description: (Optional) Filters the result to contain account users that match the ids passed in.
        schema:
          type: array
          items:
            type: integer
            format: int32
      - name: nameSearch
        in: query
        description: (Optional) Searches for users by partial name match (minimum 3 characters).
        schema:
          type: string
      responses:
        '200':
          description: 'Success: List of users on the account'
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserResponse'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserResponse'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /rp/api/v1/accounts/{accountId}/users/{id}:
    get:
      tags:
      - AccountUsers
      summary: Gets the the specified user for the given account by ID
      description: '<br/><strong>Permissions</strong><br/>Account: Read'
      operationId: AccountUsers_Get
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: id
        in: path
        description: The User's ID
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: 'Success: List of users on the account'
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/UserResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    patch:
      tags:
      - AccountUsers
      summary: Updates a user for the given account
      description: 'Name or Title can be null, but they cannot be empty/whitespace. If null the value will not be changed.<br/><strong>Permissions</strong><br/>Account:
        Write'
      operationId: AccountUsers_Patch
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: id
        in: path
        description: Id of the user to update
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        description: Request object in the body with fields to change
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/UserRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/UserRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/UserRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/UserRequest'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '409':
          description: Conflict
    delete:
      tags:
      - AccountUsers
      summary: Deactivates a user from the given account
      description: 'Adminsitrators can only deactivate other users from the account and not themselves.<br/><strong>Permissions</strong><br/>Account:
        Write'
      operationId: AccountUsers_Delete
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: id
        in: path
        description: Id of the user to remove
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /rp/api/v1/accounts/{accountId}/users/{id}/membership:
    put:
      tags:
      - AccountUsers
      summary: Modify user's permission group in the account.
      description: 'Groups in the account can be fetched from the api/v{version}/accounts/{accountId}/groups endpoint.<br/><strong>Permissions</strong><br/>Account:
        Write'
      operationId: AccountUsers_SetMembership
      parameters:
      - name: accountId
        in: path
        description: The Account ID
        required: true
        schema:
          type: integer
          format: int32
      - name: id
        in: path
        description: ID of the user to modify
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        description: Request object for the user
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/AccountMembershipRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/AccountMembershipRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/AccountMembershipRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/AccountMembershipRequest'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /rp/api/v1/accounts/{accountId}/users/{userId}/reset-auth-method:
    post:
      tags:
      - AccountUsers
      summary: 'Resets a user''s authentication method and sends a new invitation email.

        This can be used to switch a user from SSO to username/password authentication.

        Note: users can be on multiple accounts in an organization. This resets the auth method in all accounts within

        the organization.'
      description: '<br/><strong>Permissions</strong><br/>Account: Write'
      operationId: AccountUsers_ResetAuthMethod
      parameters:
      - name: accountId
        in: path
        description: The account that is currently calling this method.
        required: true
        schema:
          type: integer
          format: int32
      - name: userId
        in: path
        description: The ID of the account user.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '202':
          description: Accepted
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '422':
          description: Unprocessable Entity
  /rp/api/v1/Accounts:
    get:
      tags:
      - Accounts
      summary: Get all account

# --- truncated at 32 KB (541 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bridgit/refs/heads/main/openapi/bridgit-bench-openapi.yml