Merge Knowledge Base API

Merge Knowledge Base API provides unified access to knowledge base platforms including Confluence and Notion (added February 2026). It normalizes access to Articles, Attachments, Containers, Groups, and Users, with ACL management that maps users, groups, and company-level permissions across platforms for enterprise AI context and search.

Documentation

Specifications

Examples

Schemas & Data

Other Resources

OpenAPI Specification

merge-knowledge-base-api-openapi.yaml Raw ↑
openapi: 3.1.0
info:
  title: Knowledge Base
  version: 1.0.0
paths:
  /knowledgebase/v1/articles:
    get:
      operationId: list
      summary: List
      description: Returns a list of `Article` objects.
      tags:
        - subpackage_articles
      parameters:
        - name: created_after
          in: query
          description: If provided, will only return objects created after this datetime.
          required: false
          schema:
            type: string
            format: date-time
        - name: created_before
          in: query
          description: If provided, will only return objects created before this datetime.
          required: false
          schema:
            type: string
            format: date-time
        - name: cursor
          in: query
          description: The pagination cursor value.
          required: false
          schema:
            type: string
        - name: expand
          in: query
          description: >-
            Which relations should be returned in expanded form. Multiple relation names should be comma separated
            without spaces.
          required: false
          schema:
            $ref: '#/components/schemas/ArticlesGetParametersExpand'
        - name: include_deleted_data
          in: query
          description: >-
            Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion
            detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn
            more](https://docs.merge.dev/integrations/hris/supported-features/).
          required: false
          schema:
            type: boolean
        - name: include_remote_data
          in: query
          description: Whether to include the original data Merge fetched from the third-party to produce these models.
          required: false
          schema:
            type: boolean
        - name: include_shell_data
          in: query
          description: >-
            Whether to include shell records. Shell records are empty records (they may contain some metadata but all
            other fields are null).
          required: false
          schema:
            type: boolean
        - name: modified_after
          in: query
          description: If provided, only objects synced by Merge after this date time will be returned.
          required: false
          schema:
            type: string
            format: date-time
        - name: modified_before
          in: query
          description: If provided, only objects synced by Merge before this date time will be returned.
          required: false
          schema:
            type: string
            format: date-time
        - name: page_size
          in: query
          description: Number of results to return per page. The maximum limit is 100.
          required: false
          schema:
            type: integer
        - name: parent_article_id
          in: query
          description: If provided, will only return sub articles of the parent_article_id.
          required: false
          schema:
            type: string
        - name: parent_container_id
          in: query
          description: If provided, will only return sub articles of the parent_container_id.
          required: false
          schema:
            type: string
        - name: remote_id
          in: query
          description: The API provider's ID for the given object.
          required: false
          schema:
            type: string
        - name: root_container_id
          in: query
          description: If provided, will only return sub articles of the root_container_id.
          required: false
          schema:
            type: string
        - name: status
          in: query
          description: If provided, will only return articles of the given status; multiple statuses can be separated by commas.
          required: false
          schema:
            type: string
        - name: type
          in: query
          description: If provided, will only return articles of the given type.
          required: false
          schema:
            $ref: '#/components/schemas/ArticlesGetParametersType'
        - name: Authorization
          in: header
          description: Token-based authentication with required prefix "Bearer"
          required: true
          schema:
            type: string
        - name: X-Account-Token
          in: header
          description: Token identifying the end user.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedArticleList'
  /knowledgebase/v1/articles/{id}:
    get:
      operationId: retrieve
      summary: Retrieve
      description: Returns an `Article` object with the given `id`.
      tags:
        - subpackage_articles
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: expand
          in: query
          description: >-
            Which relations should be returned in expanded form. Multiple relation names should be comma separated
            without spaces.
          required: false
          schema:
            $ref: '#/components/schemas/ArticlesIdGetParametersExpand'
        - name: include_remote_data
          in: query
          description: Whether to include the original data Merge fetched from the third-party to produce these models.
          required: false
          schema:
            type: boolean
        - name: include_shell_data
          in: query
          description: >-
            Whether to include shell records. Shell records are empty records (they may contain some metadata but all
            other fields are null).
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: Token-based authentication with required prefix "Bearer"
          required: true
          schema:
            type: string
        - name: X-Account-Token
          in: header
          description: Token identifying the end user.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Article'
  /knowledgebase/v1/attachments:
    get:
      operationId: list
      summary: List
      description: Returns a list of `Attachment` objects.
      tags:
        - subpackage_attachments
      parameters:
        - name: created_after
          in: query
          description: If provided, will only return objects created after this datetime.
          required: false
          schema:
            type: string
            format: date-time
        - name: created_before
          in: query
          description: If provided, will only return objects created before this datetime.
          required: false
          schema:
            type: string
            format: date-time
        - name: cursor
          in: query
          description: The pagination cursor value.
          required: false
          schema:
            type: string
        - name: include_deleted_data
          in: query
          description: >-
            Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion
            detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn
            more](https://docs.merge.dev/integrations/hris/supported-features/).
          required: false
          schema:
            type: boolean
        - name: include_remote_data
          in: query
          description: Whether to include the original data Merge fetched from the third-party to produce these models.
          required: false
          schema:
            type: boolean
        - name: include_shell_data
          in: query
          description: >-
            Whether to include shell records. Shell records are empty records (they may contain some metadata but all
            other fields are null).
          required: false
          schema:
            type: boolean
        - name: modified_after
          in: query
          description: If provided, only objects synced by Merge after this date time will be returned.
          required: false
          schema:
            type: string
            format: date-time
        - name: modified_before
          in: query
          description: If provided, only objects synced by Merge before this date time will be returned.
          required: false
          schema:
            type: string
            format: date-time
        - name: page_size
          in: query
          description: Number of results to return per page. The maximum limit is 100.
          required: false
          schema:
            type: integer
        - name: remote_id
          in: query
          description: The API provider's ID for the given object.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Token-based authentication with required prefix "Bearer"
          required: true
          schema:
            type: string
        - name: X-Account-Token
          in: header
          description: Token identifying the end user.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAttachmentList'
  /knowledgebase/v1/attachments/{id}:
    get:
      operationId: retrieve
      summary: Retrieve
      description: Returns an `Attachment` object with the given `id`.
      tags:
        - subpackage_attachments
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: include_remote_data
          in: query
          description: Whether to include the original data Merge fetched from the third-party to produce these models.
          required: false
          schema:
            type: boolean
        - name: include_shell_data
          in: query
          description: >-
            Whether to include shell records. Shell records are empty records (they may contain some metadata but all
            other fields are null).
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: Token-based authentication with required prefix "Bearer"
          required: true
          schema:
            type: string
        - name: X-Account-Token
          in: header
          description: Token identifying the end user.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
  /knowledgebase/v1/containers:
    get:
      operationId: list
      summary: List
      description: Returns a list of `Container` objects.
      tags:
        - subpackage_containers
      parameters:
        - name: created_after
          in: query
          description: If provided, will only return objects created after this datetime.
          required: false
          schema:
            type: string
            format: date-time
        - name: created_before
          in: query
          description: If provided, will only return objects created before this datetime.
          required: false
          schema:
            type: string
            format: date-time
        - name: cursor
          in: query
          description: The pagination cursor value.
          required: false
          schema:
            type: string
        - name: expand
          in: query
          description: >-
            Which relations should be returned in expanded form. Multiple relation names should be comma separated
            without spaces.
          required: false
          schema:
            $ref: '#/components/schemas/ContainersGetParametersExpand'
        - name: include_deleted_data
          in: query
          description: >-
            Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion
            detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn
            more](https://docs.merge.dev/integrations/hris/supported-features/).
          required: false
          schema:
            type: boolean
        - name: include_remote_data
          in: query
          description: Whether to include the original data Merge fetched from the third-party to produce these models.
          required: false
          schema:
            type: boolean
        - name: include_shell_data
          in: query
          description: >-
            Whether to include shell records. Shell records are empty records (they may contain some metadata but all
            other fields are null).
          required: false
          schema:
            type: boolean
        - name: modified_after
          in: query
          description: If provided, only objects synced by Merge after this date time will be returned.
          required: false
          schema:
            type: string
            format: date-time
        - name: modified_before
          in: query
          description: If provided, only objects synced by Merge before this date time will be returned.
          required: false
          schema:
            type: string
            format: date-time
        - name: page_size
          in: query
          description: Number of results to return per page. The maximum limit is 100.
          required: false
          schema:
            type: integer
        - name: parent_article_id
          in: query
          description: If provided, will only return sub containers of the parent_article_id.
          required: false
          schema:
            type: string
            format: uuid
        - name: parent_container_id
          in: query
          description: If provided, will only return sub containers of the parent_container_id.
          required: false
          schema:
            type: string
            format: uuid
        - name: remote_id
          in: query
          description: The API provider's ID for the given object.
          required: false
          schema:
            type: string
        - name: type
          in: query
          description: If provided, will only return containers of the given type.
          required: false
          schema:
            $ref: '#/components/schemas/ContainersGetParametersType'
        - name: Authorization
          in: header
          description: Token-based authentication with required prefix "Bearer"
          required: true
          schema:
            type: string
        - name: X-Account-Token
          in: header
          description: Token identifying the end user.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedContainerList'
  /knowledgebase/v1/containers/{id}:
    get:
      operationId: retrieve
      summary: Retrieve
      description: Returns a `Container` object with the given `id`.
      tags:
        - subpackage_containers
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: expand
          in: query
          description: >-
            Which relations should be returned in expanded form. Multiple relation names should be comma separated
            without spaces.
          required: false
          schema:
            $ref: '#/components/schemas/ContainersIdGetParametersExpand'
        - name: include_remote_data
          in: query
          description: Whether to include the original data Merge fetched from the third-party to produce these models.
          required: false
          schema:
            type: boolean
        - name: include_shell_data
          in: query
          description: >-
            Whether to include shell records. Shell records are empty records (they may contain some metadata but all
            other fields are null).
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: Token-based authentication with required prefix "Bearer"
          required: true
          schema:
            type: string
        - name: X-Account-Token
          in: header
          description: Token identifying the end user.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Container'
  /knowledgebase/v1/groups:
    get:
      operationId: list
      summary: List
      description: Returns a list of `Group` objects.
      tags:
        - subpackage_groups
      parameters:
        - name: created_after
          in: query
          description: If provided, will only return objects created after this datetime.
          required: false
          schema:
            type: string
            format: date-time
        - name: created_before
          in: query
          description: If provided, will only return objects created before this datetime.
          required: false
          schema:
            type: string
            format: date-time
        - name: cursor
          in: query
          description: The pagination cursor value.
          required: false
          schema:
            type: string
        - name: expand
          in: query
          description: >-
            Which relations should be returned in expanded form. Multiple relation names should be comma separated
            without spaces.
          required: false
          schema:
            $ref: '#/components/schemas/GroupsGetParametersExpand'
        - name: include_deleted_data
          in: query
          description: >-
            Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion
            detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn
            more](https://docs.merge.dev/integrations/hris/supported-features/).
          required: false
          schema:
            type: boolean
        - name: include_remote_data
          in: query
          description: Whether to include the original data Merge fetched from the third-party to produce these models.
          required: false
          schema:
            type: boolean
        - name: include_shell_data
          in: query
          description: >-
            Whether to include shell records. Shell records are empty records (they may contain some metadata but all
            other fields are null).
          required: false
          schema:
            type: boolean
        - name: modified_after
          in: query
          description: If provided, only objects synced by Merge after this date time will be returned.
          required: false
          schema:
            type: string
            format: date-time
        - name: modified_before
          in: query
          description: If provided, only objects synced by Merge before this date time will be returned.
          required: false
          schema:
            type: string
            format: date-time
        - name: page_size
          in: query
          description: Number of results to return per page. The maximum limit is 100.
          required: false
          schema:
            type: integer
        - name: remote_id
          in: query
          description: The API provider's ID for the given object.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Token-based authentication with required prefix "Bearer"
          required: true
          schema:
            type: string
        - name: X-Account-Token
          in: header
          description: Token identifying the end user.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedGroupList'
  /knowledgebase/v1/groups/{id}:
    get:
      operationId: retrieve
      summary: Retrieve
      description: Returns a `Group` object with the given `id`.
      tags:
        - subpackage_groups
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: expand
          in: query
          description: >-
            Which relations should be returned in expanded form. Multiple relation names should be comma separated
            without spaces.
          required: false
          schema:
            $ref: '#/components/schemas/GroupsIdGetParametersExpand'
        - name: include_remote_data
          in: query
          description: Whether to include the original data Merge fetched from the third-party to produce these models.
          required: false
          schema:
            type: boolean
        - name: include_shell_data
          in: query
          description: >-
            Whether to include shell records. Shell records are empty records (they may contain some metadata but all
            other fields are null).
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: Token-based authentication with required prefix "Bearer"
          required: true
          schema:
            type: string
        - name: X-Account-Token
          in: header
          description: Token identifying the end user.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
  /knowledgebase/v1/users:
    get:
      operationId: list
      summary: List
      description: Returns a list of `User` objects.
      tags:
        - subpackage_users
      parameters:
        - name: created_after
          in: query
          description: If provided, will only return objects created after this datetime.
          required: false
          schema:
            type: string
            format: date-time
        - name: created_before
          in: query
          description: If provided, will only return objects created before this datetime.
          required: false
          schema:
            type: string
            format: date-time
        - name: cursor
          in: query
          description: The pagination cursor value.
          required: false
          schema:
            type: string
        - name: include_deleted_data
          in: query
          description: >-
            Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion
            detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn
            more](https://docs.merge.dev/integrations/hris/supported-features/).
          required: false
          schema:
            type: boolean
        - name: include_remote_data
          in: query
          description: Whether to include the original data Merge fetched from the third-party to produce these models.
          required: false
          schema:
            type: boolean
        - name: include_shell_data
          in: query
          description: >-
            Whether to include shell records. Shell records are empty records (they may contain some metadata but all
            other fields are null).
          required: false
          schema:
            type: boolean
        - name: modified_after
          in: query
          description: If provided, only objects synced by Merge after this date time will be returned.
          required: false
          schema:
            type: string
            format: date-time
        - name: modified_before
          in: query
          description: If provided, only objects synced by Merge before this date time will be returned.
          required: false
          schema:
            type: string
            format: date-time
        - name: page_size
          in: query
          description: Number of results to return per page. The maximum limit is 100.
          required: false
          schema:
            type: integer
        - name: remote_id
          in: query
          description: The API provider's ID for the given object.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Token-based authentication with required prefix "Bearer"
          required: true
          schema:
            type: string
        - name: X-Account-Token
          in: header
          description: Token identifying the end user.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedUserList'
  /knowledgebase/v1/users/{id}:
    get:
      operationId: retrieve
      summary: Retrieve
      description: Returns a `User` object with the given `id`.
      tags:
        - subpackage_users
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: include_remote_data
          in: query
          description: Whether to include the original data Merge fetched from the third-party to produce these models.
          required: false
          schema:
            type: boolean
        - name: include_shell_data
          in: query
          description: >-
            Whether to include shell records. Shell records are empty records (they may contain some metadata but all
            other fields are null).
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: Token-based authentication with required prefix "Bearer"
          required: true
          schema:
            type: string
        - name: X-Account-Token
          in: header
          description: Token identifying the end user.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
  /knowledgebase/v1/account-details:
    get:
      operationId: retrieve
      summary: Retrieve
      description: Get details for a linked account.
      tags:
        - subpackage_accountDetails
      parameters:
        - name: Authorization
          in: header
          description: Token-based authentication with required prefix "Bearer"
          required: true
          schema:
            type: string
        - name: X-Account-Token
          in: header
          description: Token identifying the end user.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountDetails'
  /knowledgebase/v1/account-token/{public_token}:
    get:
      operationId: retrieve
      summary: Retrieve
      description: Returns the account token for the end user with the provided public token.
      tags:
        - subpackage_accountToken
      parameters:
        - name: public_token
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Token-based authentication with required prefix "Bearer"
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountToken'
  /knowledgebase/v1/account-token/regenerate:
    post:
      operationId: regenerate-create
      summary: Regenerate Create
      description: Exchange Linked Account account tokens.
      tags:
        - subpackage_accountToken
      parameters:
        - name: Authorization
          in: header
          description: Token-based authentication with required prefix "Bearer"
          required: true
          schema:
            type: string
        - name: X-Account-Token
          in: header
          description: Token identifying the end user.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegenerateAccountToken'
  /knowledgebase/v1/delete-account:
    post:
      operationId: delete
      summary: Delete
      description: Delete a linked account.
      tags:
        - subpackage_deleteAccount
      parameters:
        - name: Authorization
          in: header
          description: Token-based authentication with required prefix "Bearer"
          required: true
          schema:
            type: string
        - name: X-Account-Token
          in: header
          description: Token identifying the end user.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: No response body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/deleteAccount_delete_Response_200'
  /knowledgebase/v1/issues:
    get:
      operationId: list
      summary: List
      description: Gets all issues for Organization.
      tags:
        - subpackage_issues
      parameters:
        - name: account_token
          in: query
          required: false
          schema:
            type: string
        - name: cursor
          in: query
          description: The pagination cursor value.
          required: false
          schema:
            type: string
        - name: end_date
          in: query
          description: If included, will only include issues whose most recent action occurred before this time
          required: false
          schema:
            type: string
        - name: end_user_organization_name
          in: query
          required: false
          schema:
            type: string
        - name: first_incident_time_after
          in: query
          description: If provided, will only return issues whose first incident time was after this datetime.
          required: false
          schema:
            type: string
            format: date-time
        - name: first_incident_time_before
          in: query
          description: If provided, will only return issues whose first incident time was before this datetime.
          required: false
          schema:
            type: string
            format: date-time
        - name: include_muted
          in: query
          description: If true, will include muted issues
          required: false
          schema:
            type: string
        - name: integration_name
          in: query
          required: false
          schema:
            type: string
        - name: last_incident_time_after
          in: query
          description

# --- truncated at 32 KB (147 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/merge/refs/heads/main/openapi/merge-knowledge-base-api-openapi.yaml