UpGuard trust_exchange API

The trust_exchange API from UpGuard — 15 operation(s) for trust_exchange.

OpenAPI Specification

upguard-trust-exchange-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: 'Access information from the CyberRisk platform programmatically using this API.


    You can find or generate an API key to access this API in your CyberRisk Account Settings.

    Please authorize all requests by setting the "Authorization" header to your api key.


    The base url for all public endpoints is https://cyber-risk.upguard.com/api/public'
  title: UpGuard CyberRisk breaches trust_exchange API
  version: 1.13.2
host: cyber-risk.upguard.com
basePath: /api/public
schemes:
- https
consumes:
- application/json
produces:
- application/json
security:
- API key in header: []
tags:
- name: trust_exchange
paths:
  /trust_exchange/content_library/document:
    get:
      description: 'Returns a single document from the organization''s content library by UUID.


        Required API key permissions: `TrustExchange` (select when creating API key in Account Settings)'
      tags:
      - trust_exchange
      summary: Get content library document
      operationId: getContentLibraryDocument
      parameters:
      - type: string
        description: The UUID of the document.
        name: uuid
        in: query
        required: true
      responses:
        '200':
          description: A single content library document.
          schema:
            $ref: '#/definitions/contentLibraryDocument'
        '403':
          description: Account does not have access to requested entities
          schema:
            $ref: '#/definitions/endpointError'
        '422':
          description: An invalid parameter was supplied or a mandatory parameter was missing
          schema:
            $ref: '#/definitions/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          schema:
            $ref: '#/definitions/endpointError'
        '500':
          description: An internal system error occurred
          schema:
            $ref: '#/definitions/endpointError'
    post:
      description: 'Creates a new document in the organization''s content library via multipart file upload.


        Required API key permissions: `TrustExchange` and `ReadWrite` (select when creating API key in Account Settings)'
      consumes:
      - multipart/form-data
      tags:
      - trust_exchange
      summary: Create content library document
      operationId: createContentLibraryDocument
      parameters:
      - maxLength: 500
        minLength: 2
        type: string
        description: The name of the document.
        name: document_name
        in: query
        required: true
      - maxLength: 1000
        minLength: 2
        type: string
        description: 'The document type (e.g. SOC 2 Report, ISO 27001, etc.).

          This must match an exist document type available for your organization.'
        name: document_type
        in: query
        required: true
      - maxLength: 5000
        type: string
        description: A description of the document.
        name: document_description
        in: query
      - type: string
        description: 'Set whether this document should be accessible without access requests if it is added to a published trust page.

          Leave this param unset to use your organization''s default access protection setting.'
        name: public_trust_page_access
        in: query
      - type: file
        description: The file to upload.
        name: file
        in: formData
        required: true
      responses:
        '200':
          description: A single content library document.
          schema:
            $ref: '#/definitions/contentLibraryDocument'
        '403':
          description: Account does not have access to requested entities
          schema:
            $ref: '#/definitions/endpointError'
        '422':
          description: An invalid parameter was supplied or a mandatory parameter was missing
          schema:
            $ref: '#/definitions/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          schema:
            $ref: '#/definitions/endpointError'
        '500':
          description: An internal system error occurred
          schema:
            $ref: '#/definitions/endpointError'
  /trust_exchange/content_library/document/archive:
    post:
      description: 'Archives or unarchives a document in the organization''s content library. If the document is

        included in any trust pages, it will be removed from those trust pages before being archived.


        Required API key permissions: `TrustExchange` and `ReadWrite` (select when creating API key in Account Settings)'
      tags:
      - trust_exchange
      summary: Archive content library document
      operationId: archiveContentLibraryDocument
      parameters:
      - type: string
        description: The UUID of the document to archive or unarchive.
        name: uuid
        in: query
        required: true
      - type: boolean
        description: Set to true to archive the document, or false to unarchive it.
        name: set_archived
        in: query
        required: true
      responses:
        '204':
          description: ''
        '403':
          description: Account does not have access to requested entities
          schema:
            $ref: '#/definitions/endpointError'
        '422':
          description: An invalid parameter was supplied or a mandatory parameter was missing
          schema:
            $ref: '#/definitions/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          schema:
            $ref: '#/definitions/endpointError'
        '500':
          description: An internal system error occurred
          schema:
            $ref: '#/definitions/endpointError'
  /trust_exchange/content_library/document/delete:
    post:
      description: 'Deletes a document from the organization''s content library.

        The document must not be in use by any questionnaires or trust pages.


        Required API key permissions: `TrustExchange` and `ReadWrite` (select when creating API key in Account Settings)'
      tags:
      - trust_exchange
      summary: Delete content library document
      operationId: deleteContentLibraryDocument
      parameters:
      - type: string
        description: The UUID of the document.
        name: uuid
        in: query
        required: true
      responses:
        '204':
          description: ''
        '403':
          description: Account does not have access to requested entities
          schema:
            $ref: '#/definitions/endpointError'
        '422':
          description: An invalid parameter was supplied or a mandatory parameter was missing
          schema:
            $ref: '#/definitions/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          schema:
            $ref: '#/definitions/endpointError'
        '500':
          description: An internal system error occurred
          schema:
            $ref: '#/definitions/endpointError'
  /trust_exchange/content_library/document/download_version:
    get:
      description: 'Downloads the file content of a specific version (or the latest version) of a content library document.


        Required API key permissions: `TrustExchange` (select when creating API key in Account Settings)'
      produces:
      - application/octet-stream
      tags:
      - trust_exchange
      summary: Download content library document version
      operationId: downloadContentLibraryDocument
      parameters:
      - type: string
        description: The UUID of the document.
        name: uuid
        in: query
        required: true
      - type: integer
        format: int64
        description: The version number to download. If omitted, the latest version is returned.
        name: version
        in: query
      responses:
        '200':
          description: Binary file response
          schema: {}
          headers:
            Content-Disposition:
              type: string
              description: 'in: header

                name: Content-Disposition'
            Content-Type:
              type: string
              description: 'in: header

                name: Content-Type'
        '403':
          description: Account does not have access to requested entities
          schema:
            $ref: '#/definitions/endpointError'
        '422':
          description: An invalid parameter was supplied or a mandatory parameter was missing
          schema:
            $ref: '#/definitions/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          schema:
            $ref: '#/definitions/endpointError'
        '500':
          description: An internal system error occurred
          schema:
            $ref: '#/definitions/endpointError'
  /trust_exchange/content_library/document/history:
    get:
      description: 'Returns the history of changes for a content library document.


        Required API key permissions: `TrustExchange` (select when creating API key in Account Settings)'
      tags:
      - trust_exchange
      summary: Get content library document history
      operationId: getContentLibraryDocumentHistory
      parameters:
      - type: string
        description: The UUID of the document.
        name: uuid
        in: query
        required: true
      - type: integer
        format: int64
        example: 100
        description: 'The number of results to return per page.

          Valid values range from 1 to 100.

          Defaults to 50 if not specified.'
        name: page_size
        in: query
      - type: string
        example: eyJ2IjoxMDAsImUiOjE3MDAwMDAwMDAsImgiOiJhYmMxMjMifQ==
        description: 'Token to retrieve a specific page of results.

          Omit to retrieve the first page.

          Use the `next_page_token` from the previous response to get the next page.'
        name: page_token
        in: query
      responses:
        '200':
          description: Content library document history response.
          schema:
            $ref: '#/definitions/contentLibraryDocumentHistoryResponse'
        '403':
          description: Account does not have access to requested entities
          schema:
            $ref: '#/definitions/endpointError'
        '422':
          description: An invalid parameter was supplied or a mandatory parameter was missing
          schema:
            $ref: '#/definitions/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          schema:
            $ref: '#/definitions/endpointError'
        '500':
          description: An internal system error occurred
          schema:
            $ref: '#/definitions/endpointError'
  /trust_exchange/content_library/document/list:
    get:
      description: 'Returns a paginated list of documents in the organization''s content library.


        Results are paginated. Use the `page_size` parameter to control how many results are returned per page.

        Use the `next_page_token` from the response to retrieve subsequent pages.


        Required API key permissions: `TrustExchange` (select when creating API key in Account Settings)'
      tags:
      - trust_exchange
      summary: List content library documents
      operationId: listContentLibraryDocuments
      parameters:
      - type: integer
        format: int64
        example: 10
        description: 'The number of results to return per page.

          Valid values range from 1 to 100.

          Defaults to 10 if not specified.'
        name: page_size
        in: query
      - type: string
        example: eyJ2IjoxMDAsImUiOjE3MDAwMDAwMDAsImgiOiJhYmMxMjMifQ==
        description: 'Token to retrieve a specific page of results.

          Omit to retrieve the first page.

          Use the `next_page_token` from the previous response to get the next page.'
        name: page_token
        in: query
      - type: string
        example: SOC
        description: Filter documents by name (substring match, case-insensitive).
        name: filter_name
        in: query
      - type: array
        items:
          type: string
        collectionFormat: multi
        example: SOC 2 Report
        description: Filter documents by document type names (set this param multiple times to specify multiple types).
        name: filter_document_types
        in: query
      - type: boolean
        example: true
        description: Filter to only documents added to any trust center.
        name: filter_added_to_any_trust_center
        in: query
      - type: boolean
        example: false
        description: Set to true to retrieve archived documents. By default, only non-archived documents are returned.
        name: archived
        in: query
      responses:
        '200':
          description: List of content library documents.
          schema:
            $ref: '#/definitions/contentLibraryDocumentListResponse'
        '403':
          description: Account does not have access to requested entities
          schema:
            $ref: '#/definitions/endpointError'
        '422':
          description: An invalid parameter was supplied or a mandatory parameter was missing
          schema:
            $ref: '#/definitions/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          schema:
            $ref: '#/definitions/endpointError'
        '500':
          description: An internal system error occurred
          schema:
            $ref: '#/definitions/endpointError'
  /trust_exchange/content_library/document/update:
    post:
      description: 'Updates the properties of a document in the organization''s content library.

        Only fields that are provided in the request body are updated; omitted fields are left unchanged.


        Required API key permissions: `TrustExchange` and `ReadWrite` (select when creating API key in Account Settings)'
      tags:
      - trust_exchange
      summary: Update content library document
      operationId: updateContentLibraryDocument
      parameters:
      - name: UpdateContentLibraryDocumentBody
        in: body
        schema:
          $ref: '#/definitions/UpdateContentLibraryDocumentBody'
      responses:
        '204':
          description: ''
        '403':
          description: Account does not have access to requested entities
          schema:
            $ref: '#/definitions/endpointError'
        '422':
          description: An invalid parameter was supplied or a mandatory parameter was missing
          schema:
            $ref: '#/definitions/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          schema:
            $ref: '#/definitions/endpointError'
        '500':
          description: An internal system error occurred
          schema:
            $ref: '#/definitions/endpointError'
  /trust_exchange/content_library/document/upload_version:
    post:
      description: 'Uploads a new version of an existing document in the organization''s content library via multipart file upload.


        Required API key permissions: `TrustExchange` and `ReadWrite` (select when creating API key in Account Settings)'
      consumes:
      - multipart/form-data
      tags:
      - trust_exchange
      summary: Upload new version of content library document
      operationId: uploadVersionContentLibraryDocument
      parameters:
      - type: string
        description: The UUID of the document to upload a new version for.
        name: uuid
        in: query
        required: true
      - type: file
        description: The new version file to upload.
        name: file
        in: formData
        required: true
      responses:
        '204':
          description: ''
        '403':
          description: Account does not have access to requested entities
          schema:
            $ref: '#/definitions/endpointError'
        '422':
          description: An invalid parameter was supplied or a mandatory parameter was missing
          schema:
            $ref: '#/definitions/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          schema:
            $ref: '#/definitions/endpointError'
        '500':
          description: An internal system error occurred
          schema:
            $ref: '#/definitions/endpointError'
  /trust_exchange/content_library/type/list:
    get:
      description: 'Returns a list of document types available for the organization''s content library.


        Required API key permissions: `TrustExchange` (select when creating API key in Account Settings)'
      tags:
      - trust_exchange
      summary: List content library document types
      operationId: getContentLibraryTypes
      responses:
        '200':
          description: List of content library document types.
          schema:
            $ref: '#/definitions/getContentLibraryTypesResponse'
        '429':
          description: Too many requests have been made to this endpoint.
          schema:
            $ref: '#/definitions/endpointError'
        '500':
          description: An internal system error occurred
          schema:
            $ref: '#/definitions/endpointError'
  /trust_exchange/questionnaire/list:
    get:
      description: 'Returns a list of inbound security questionnaires that are available to all users in the organisation.

        This includes all questionnaires where the "Allow others in my account to reuse answers" setting is enabled.


        Required API key permissions: `TrustExchange` (select when creating API key in Account Settings)'
      tags:
      - trust_exchange
      summary: List inbound questionnaires
      operationId: listQuestionnaires
      parameters:
      - type: integer
        format: int64
        description: Number of items per page (1-200, default 50)
        name: page_size
        in: query
      - type: string
        description: Pagination token for the next page of results
        name: page_token
        in: query
      - type: string
        default: date_created
        name: sort_by
        in: query
      - type: string
        default: desc
        name: sort_dir
        in: query
      - type: string
        description: Filter by text (searches name, sender org, questionnaire type)
        name: filter_text
        in: query
      responses:
        '200':
          description: List of inbound questionnaires.
          schema:
            $ref: '#/definitions/questionnaireListResponse'
        '403':
          description: Account does not have access to requested entities
          schema:
            $ref: '#/definitions/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          schema:
            $ref: '#/definitions/endpointError'
        '500':
          description: An internal system error occurred
          schema:
            $ref: '#/definitions/endpointError'
  /trust_exchange/trust_center:
    get:
      description: 'Returns detailed information about a single trust center by UUID.


        Required API key permissions: `TrustExchange` (select when creating API key in Account Settings)'
      tags:
      - trust_exchange
      summary: Get trust center
      operationId: getTrustCenter
      parameters:
      - type: string
        description: The UUID of the trust center.
        name: uuid
        in: query
        required: true
      responses:
        '200':
          description: Trust center detail.
          schema:
            $ref: '#/definitions/trustCenterDetail'
        '403':
          description: Account does not have access to requested entities
          schema:
            $ref: '#/definitions/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          schema:
            $ref: '#/definitions/endpointError'
        '500':
          description: An internal system error occurred
          schema:
            $ref: '#/definitions/endpointError'
  /trust_exchange/trust_center/access:
    get:
      description: 'Returns information about who has access to trust centers, including users and

        organizations with access, pending access requests, and invited emails.


        NOTE: This endpoint is not specific to a single trust center, as access is not specific to a single trust center.


        Required API key permissions: `TrustExchange` (select when creating API key in Account Settings)'
      tags:
      - trust_exchange
      summary: Get trust center access
      operationId: getTrustCenterAccess
      responses:
        '200':
          description: Trust center access detail.
          schema:
            $ref: '#/definitions/trustCenterAccessResponse'
        '403':
          description: Account does not have access to requested entities
          schema:
            $ref: '#/definitions/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          schema:
            $ref: '#/definitions/endpointError'
        '500':
          description: An internal system error occurred
          schema:
            $ref: '#/definitions/endpointError'
  /trust_exchange/trust_center/access_log:
    get:
      description: 'Returns the access log for all trust centers, showing who has viewed them or downloaded documents.


        Results are paginated. Use the `page_size` parameter to control how many results are returned per page.

        Use the `next_page_token` from the response to retrieve subsequent pages.


        NOTE: This endpoint is not specific to a single trust center, as access is not specific to a single trust center.


        Required API key permissions: `TrustExchange` (select when creating API key in Account Settings)'
      tags:
      - trust_exchange
      summary: Get trust center access log
      operationId: getTrustCenterAccessLog
      parameters:
      - type: integer
        format: int64
        example: 100
        description: 'The number of results to return per page.

          Valid values range from 1 to 100.

          Defaults to 50 if not specified.'
        name: page_size
        in: query
      - type: string
        example: eyJ2IjoxMDAsImUiOjE3MDAwMDAwMDAsImgiOiJhYmMxMjMifQ==
        description: 'Token to retrieve a specific page of results.

          Omit to retrieve the first page.

          Use the `next_page_token` from the previous response to get the next page.'
        name: page_token
        in: query
      responses:
        '200':
          description: Trust center access log.
          schema:
            $ref: '#/definitions/trustCenterAccessLogResponse'
        '403':
          description: Account does not have access to requested entities
          schema:
            $ref: '#/definitions/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          schema:
            $ref: '#/definitions/endpointError'
        '500':
          description: An internal system error occurred
          schema:
            $ref: '#/definitions/endpointError'
  /trust_exchange/trust_center/list:
    get:
      description: 'Returns a list of trust centers for the authenticated organization.


        Required API key permissions: `TrustExchange` (select when creating API key in Account Settings)'
      tags:
      - trust_exchange
      summary: List trust centers
      operationId: listTrustCenters
      responses:
        '200':
          description: List of trust centers.
          schema:
            $ref: '#/definitions/ListTrustCentersResponseBody'
        '429':
          description: Too many requests have been made to this endpoint.
          schema:
            $ref: '#/definitions/endpointError'
        '500':
          description: An internal system error occurred
          schema:
            $ref: '#/definitions/endpointError'
  /trust_exchange/trust_center/subscription/list:
    get:
      description: 'Returns email subscriptions for trust center updates.


        Results are paginated. Use the `page_size` parameter to control how many results are returned per page.

        Use the `next_page_token` from the response to retrieve subsequent pages.


        Required API key permissions: `TrustExchange` (select when creating API key in Account Settings)'
      tags:
      - trust_exchange
      summary: Get trust center subscriptions
      operationId: getTrustCenterSubscriptions
      parameters:
      - type: integer
        format: int64
        example: 100
        description: 'The number of results to return per page.

          Valid values range from 1 to 100.

          Defaults to 100 if not specified.'
        name: page_size
        in: query
      - type: string
        example: eyJ2IjoxMDAsImUiOjE3MDAwMDAwMDAsImgiOiJhYmMxMjMifQ==
        description: 'Token to retrieve a specific page of results.

          Omit to retrieve the first page.

          Use the `next_page_token` from the previous response to get the next page.'
        name: page_token
        in: query
      responses:
        '200':
          description: Trust center subscriptions.
          schema:
            $ref: '#/definitions/trustCenterSubscriptionsResponse'
        '403':
          description: Account does not have access to requested entities
          schema:
            $ref: '#/definitions/endpointError'
        '422':
          description: An invalid parameter was supplied or a mandatory parameter was missing
          schema:
            $ref: '#/definitions/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          schema:
            $ref: '#/definitions/endpointError'
        '500':
          description: An internal system error occurred
          schema:
            $ref: '#/definitions/endpointError'
definitions:
  trustCenterDetail:
    type: object
    properties:
      asset_count:
        description: The number of assets on the trust center.
        type: integer
        format: int64
        example: 5
      company_description:
        description: A description of the company.
        type: string
        example: We are a security company.
      compliance_badges:
        description: The compliance badges displayed on the trust center.
        type: array
        items:
          type: string
      contact_email:
        description: The email of the trust center contact.
        type: string
        example: jane@example.com
      contact_full_name:
        description: The full name of the trust center contact.
        type: string
        example: Jane Smith
      contact_role:
        description: The role of the trust center contact.
        type: string
        example: Security Manager
      documents:
        description: The documents on the trust center.
        type: array
        items:
          $ref: '#/definitions/trustCenterDocument'
      include_industry_average:
        description: Whether the industry average is included on the trust center.
        type: boolean
        example: true
      include_risk_rating:
        description: Whether the risk rating is included on the trust center.
        type: boolean
        example: true
      last_updated_at:
        description: The date the trust center was last updated.
        type: string
        format: date-time
        example: '2024-03-20T15:30:00Z'
      name:
        description: The name of the trust center.
        type: string
        example: My Trust Center
      public_url:
        description: The public URL of the trust center.
        type: string
        example: https://trust.example.com
      published:
        description: Whether the trust center is published.
        type: boolean
        example: true
      questionnaires:
        description: The questionnaires on the trust center.
        type: array
        items:
          $ref: '#/definitions/trustCenterQuestionnaire'
      updates:
        description: The updates on the trust center.
        type: array
        items:
          $ref: '#/definitions/trustCenterUpdate'
      uuid:
        description: The unique identifier for the trust center.
        type: string
        example: 550e8400-e29b-41d4-a716-446655440000
  trustCenterQuestionnaire:
    type: object
    properties:
      access_protection:
        description: 'Whether access protection is enabled for this questionnaire.

          When true, users must request access to view this questionnaire.'
        type: boolean
        example: true
      id:
        description: The unique ID of the trust center questionnaire.
        type: integer
        format: int64
        example: 1234
      name:
        description: The name of the questionnaire.
        type: string
        example: SOC 2 Type II
      type:
        description: The type of the questionnaire.
        type: string
        example: SOC 2 Type II
  trustCenterUpdate:
    type: object
    properties:
      body:
        description: The body of the update.
        type: string
        example: We have published our latest SOC 2 report.
      category:
        description: The category of the update.
        type: string
        example: Security
      created_at:
        description: The date the update was created.
        type: string
        format: date-time
        example: '2024-03-20T15:30:00Z'
      headline:
        description: The headline of the update.
        type: string
        example: New SOC 2 Report Available
  contentLibraryDocumentHistoryResponse:
    type: object
    properties:
      history:
        description: The list of history items for the document.
        type: array
        items:
          $ref: '#/definitions/contentLibraryHistoryItem'
      next_page_token:
        description: The token used to fetch the next page of results, if there are more results.
        type: string
  endpointError:
    description: Error details coming from an endpoint
    type: object
    properties:
      error:
        description: A description of the error
        type: string
  trustCenterAccessResponse:
    type: object
    properties:
      access_requests:
        description: The pending access requests for the trust center.
        type: array
        items:
          $ref: '#/definitions/trustCenterAccessRequest'
      invited_emails:
        description: The email addresses that have been invited to access the trust center.
        type: array
        items:
          type: string
      users_and_orgs_with_access:
        description: The users and organizations with access to the trust center.
        type: array
        items:
          $ref: '#/definitions/trustCenterAccessItem'
  trustCenterAccessRequests:
    type: object
    properties:
      documents:
        description: Content Library document access requests
        type: array
        items:
          $ref: '#/definitions/trustCenterAccessDocumentRequest'
      questionnaires:
        description: Public questionnaire access requests
        type: array
        items:
          $ref: '#/definitions/trustCenterAccessQuestionnaireRequest'
  trustCenterAccessLogEntry:
    type: object
    properties:
      action_data:
        description: Additional data about the action. The shape depends on the action_type.
      action_type:
        $ref: '#/definitions/ActionType'
      created_at:
        description: The time the action was performed.
        type: string
        format: date-time
        example: '2024-03-20T15:30:00Z'
      trust_page_uuid:
        description: The UUID of the trust page the action was performed on, if applicable.
        type: string
        example: 550e8400-e29b-41d4-a716-446655440000
      user_email:
        description: The email of the user who performed the action.
        type: string
        example: jane@example.com
      user_name:
        description: The name of the user who performed the action.
        type: string
        example: Jane Smith
  trustCenterAccessRequest:
    type: object
    properties:
      created_at:
        description: The date the access request was created.
        type: string
        format: date-time
        example: '2024-03-20T15:30:00Z'
      has_signed_nda:
        description: Whether the user has a current signed NDA.
        type: boolean
        example: false
      id:
        description

# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/upguard/refs/heads/main/openapi/upguard-trust-exchange-api-openapi.yml