Seismic LiveDocs API

API for creating and managing LiveDocs, Seismic's dynamic document generation solution. Enables automated creation of personalized proposals, presentations, and sales materials by merging CRM and other data into templates.

OpenAPI Specification

seismic-livedocs-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Seismic LiveDocs API
  description: >-
    API for creating and managing LiveDocs, Seismic's dynamic document
    generation solution. LiveDocs enables automated creation of personalized
    sales materials by merging data from CRM systems and other sources
    into predefined templates. Supports generating presentations,
    proposals, and other dynamic content.
  version: 2.0.0
  termsOfService: https://seismic.com/terms-of-service/
  contact:
    name: Seismic Support
    url: https://seismic.com/support/
    email: [email protected]
  license:
    name: Proprietary
    url: https://seismic.com/terms-of-service/

servers:
  - url: https://api.seismic.com/integration/v2
    description: Seismic API v2 Production

security:
  - bearerAuth: []

tags:
  - name: Data Sources
    description: Operations for managing data source connections used in LiveDoc generation.
  - name: Generation Jobs
    description: Operations for managing asynchronous LiveDoc generation jobs.

  - name: LiveDocs
    description: Operations for generating and managing LiveDoc documents.
  - name: Templates
    description: Operations for managing LiveDoc templates.
paths:
  /livedocs/generate:
    post:
      operationId: generateLiveDoc
      summary: Generate a Livedoc
      description: >-
        Generates a new LiveDoc document by merging data into a specified
        template. The generation can be synchronous for small documents
        or asynchronous for larger ones.
      tags:
        - LiveDocs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - templateId
              properties:
                templateId:
                  type: string
                  description: ID of the LiveDoc template to use for generation.
                name:
                  type: string
                  description: Name for the generated document.
                outputFormat:
                  type: string
                  description: Desired output format for the generated document.
                  enum:
                    - pptx
                    - pdf
                    - docx
                    - xlsx
                inputs:
                  type: object
                  description: >-
                    Key-value pairs of input data to merge into the template.
                    Keys correspond to template field names.
                  additionalProperties: true
                dataSourceId:
                  type: string
                  description: ID of the data source to pull merge data from.
                recordId:
                  type: string
                  description: >-
                    ID of the record in the data source to use for merge data
                    (e.g., a Salesforce opportunity ID).
                folderId:
                  type: string
                  description: ID of the folder to save the generated document in.
                async:
                  type: boolean
                  description: >-
                    Whether to generate the document asynchronously.
                    Large documents should use async generation.
                  default: false
      responses:
        '200':
          description: LiveDoc generated successfully (synchronous).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LiveDocResult'
        '202':
          description: LiveDoc generation job accepted (asynchronous).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerationJob'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /livedocs/templates:
    get:
      operationId: listLiveDocTemplates
      summary: List Livedoc Templates
      description: >-
        Retrieves a list of available LiveDoc templates that can be
        used for document generation.
      tags:
        - Templates
      parameters:
        - name: query
          in: query
          description: Search query to filter templates by name.
          schema:
            type: string
        - name: folderId
          in: query
          description: Filter templates by folder ID.
          schema:
            type: string
        - name: outputFormat
          in: query
          description: Filter templates by supported output format.
          schema:
            type: string
            enum:
              - pptx
              - pdf
              - docx
              - xlsx
        - name: offset
          in: query
          description: Number of items to skip for pagination.
          schema:
            type: integer
            default: 0
        - name: limit
          in: query
          description: Maximum number of items to return.
          schema:
            type: integer
            default: 25
            maximum: 100
      responses:
        '200':
          description: A list of LiveDoc templates.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/LiveDocTemplate'
                  totalCount:
                    type: integer
                  offset:
                    type: integer
                  limit:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /livedocs/templates/{templateId}:
    get:
      operationId: getLiveDocTemplate
      summary: Get a Livedoc Template
      description: >-
        Retrieves details of a specific LiveDoc template, including its
        input fields and configuration.
      tags:
        - Templates
      parameters:
        - $ref: '#/components/parameters/templateId'
      responses:
        '200':
          description: LiveDoc template details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LiveDocTemplate'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /livedocs/templates/{templateId}/inputs:
    get:
      operationId: getLiveDocTemplateInputs
      summary: Get Template Input Fields
      description: >-
        Retrieves the input field definitions for a specific LiveDoc
        template, describing what data is required for generation.
      tags:
        - Templates
      parameters:
        - $ref: '#/components/parameters/templateId'
      responses:
        '200':
          description: Template input field definitions.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/TemplateInput'
                  totalCount:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /livedocs/templates/{templateId}/preview:
    post:
      operationId: previewLiveDocTemplate
      summary: Preview a Livedoc Template
      description: >-
        Generates a preview of a LiveDoc template with sample data.
        Useful for verifying template configuration before full generation.
      tags:
        - Templates
      parameters:
        - $ref: '#/components/parameters/templateId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                inputs:
                  type: object
                  description: Sample data to merge into the template for preview.
                  additionalProperties: true
      responses:
        '200':
          description: Template preview generated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  previewUrl:
                    type: string
                    format: uri
                    description: URL to view the generated preview.
                  expiresAt:
                    type: string
                    format: date-time
                    description: Expiration time of the preview URL.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /livedocs/jobs:
    get:
      operationId: listGenerationJobs
      summary: List Generation Jobs
      description: >-
        Retrieves a list of asynchronous LiveDoc generation jobs
        and their statuses.
      tags:
        - Generation Jobs
      parameters:
        - name: status
          in: query
          description: Filter jobs by status.
          schema:
            type: string
            enum:
              - pending
              - processing
              - completed
              - failed
        - name: offset
          in: query
          description: Number of items to skip for pagination.
          schema:
            type: integer
            default: 0
        - name: limit
          in: query
          description: Maximum number of items to return.
          schema:
            type: integer
            default: 25
            maximum: 100
      responses:
        '200':
          description: A list of generation jobs.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/GenerationJob'
                  totalCount:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /livedocs/jobs/{jobId}:
    get:
      operationId: getGenerationJob
      summary: Get a Generation Job
      description: Retrieves the status and result of a specific generation job.
      tags:
        - Generation Jobs
      parameters:
        - $ref: '#/components/parameters/jobId'
      responses:
        '200':
          description: Generation job details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerationJob'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /livedocs/datasources:
    get:
      operationId: listDataSources
      summary: List Data Sources
      description: >-
        Retrieves a list of configured data sources that can be used
        for LiveDoc generation, such as CRM connections.
      tags:
        - Data Sources
      parameters:
        - name: type
          in: query
          description: Filter data sources by type.
          schema:
            type: string
            enum:
              - salesforce
              - dynamics
              - hubspot
              - custom
        - name: offset
          in: query
          description: Number of items to skip for pagination.
          schema:
            type: integer
            default: 0
        - name: limit
          in: query
          description: Maximum number of items to return.
          schema:
            type: integer
            default: 25
            maximum: 100
      responses:
        '200':
          description: A list of data sources.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/DataSource'
                  totalCount:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /livedocs/datasources/{dataSourceId}:
    get:
      operationId: getDataSource
      summary: Get a Data Source
      description: Retrieves details of a specific data source configuration.
      tags:
        - Data Sources
      parameters:
        - name: dataSourceId
          in: path
          required: true
          description: Unique identifier of the data source.
          schema:
            type: string
      responses:
        '200':
          description: Data source details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSource'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'

components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        OAuth 2.0 Bearer Token. Obtain tokens through the Seismic
        authentication flow. See
        https://developer.seismic.com/seismicsoftware/docs/authentication

  parameters:
    templateId:
      name: templateId
      in: path
      required: true
      description: Unique identifier of the LiveDoc template.
      schema:
        type: string
    jobId:
      name: jobId
      in: path
      required: true
      description: Unique identifier of the generation job.
      schema:
        type: string

  schemas:
    LiveDocResult:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the generated document.
        name:
          type: string
          description: Name of the generated document.
        templateId:
          type: string
          description: ID of the template used for generation.
        contentId:
          type: string
          description: ID of the content item created in Seismic.
        outputFormat:
          type: string
          description: Format of the generated document.
          enum:
            - pptx
            - pdf
            - docx
            - xlsx
        downloadUrl:
          type: string
          format: uri
          description: URL to download the generated document.
        folderId:
          type: string
          description: ID of the folder where the document was saved.
        createdBy:
          type: string
          description: ID of the user who initiated the generation.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the document was generated.

    LiveDocTemplate:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the template.
        name:
          type: string
          description: Name of the template.
        description:
          type: string
          description: Description of the template.
        outputFormats:
          type: array
          items:
            type: string
            enum:
              - pptx
              - pdf
              - docx
              - xlsx
          description: Supported output formats for this template.
        folderId:
          type: string
          description: ID of the folder containing this template.
        inputCount:
          type: integer
          description: Number of input fields defined in the template.
        dataSourceId:
          type: string
          description: ID of the default data source for this template.
        status:
          type: string
          description: Status of the template.
          enum:
            - active
            - inactive
            - draft
        createdBy:
          type: string
          description: ID of the user who created the template.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the template was created.
        modifiedBy:
          type: string
          description: ID of the user who last modified the template.
        modifiedAt:
          type: string
          format: date-time
          description: Timestamp when the template was last modified.
        thumbnailUrl:
          type: string
          format: uri
          description: URL for the template thumbnail image.

    TemplateInput:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the input field.
        name:
          type: string
          description: Name of the input field (used as key in generation requests).
        displayName:
          type: string
          description: Display label for the input field.
        type:
          type: string
          description: Data type of the input field.
          enum:
            - text
            - number
            - date
            - boolean
            - image
            - table
            - dropdown
        required:
          type: boolean
          description: Whether the input field is required for generation.
        defaultValue:
          description: Default value for the input field.
        description:
          type: string
          description: Description or help text for the input field.
        options:
          type: array
          items:
            type: string
          description: Available options for dropdown-type inputs.
        dataSourceField:
          type: string
          description: >-
            Name of the data source field this input maps to
            for automatic population.

    GenerationJob:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the generation job.
        templateId:
          type: string
          description: ID of the template being used.
        status:
          type: string
          description: Current status of the generation job.
          enum:
            - pending
            - processing
            - completed
            - failed
        progress:
          type: integer
          description: Progress percentage (0-100).
          minimum: 0
          maximum: 100
        result:
          $ref: '#/components/schemas/LiveDocResult'
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
          description: Error details if the job failed.
        createdBy:
          type: string
          description: ID of the user who initiated the job.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the job was created.
        completedAt:
          type: string
          format: date-time
          description: Timestamp when the job completed or failed.

    DataSource:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the data source.
        name:
          type: string
          description: Name of the data source.
        type:
          type: string
          description: Type of data source integration.
          enum:
            - salesforce
            - dynamics
            - hubspot
            - custom
        status:
          type: string
          description: Connection status of the data source.
          enum:
            - connected
            - disconnected
            - error
        description:
          type: string
          description: Description of the data source.
        objectTypes:
          type: array
          items:
            type: string
          description: >-
            Available object types from the data source
            (e.g., Account, Opportunity, Contact).
        lastSyncAt:
          type: string
          format: date-time
          description: Timestamp of the last data synchronization.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the data source was configured.

    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Error code.
            message:
              type: string
              description: Human-readable error message.
            details:
              type: array
              items:
                type: object
                properties:
                  field:
                    type: string
                  message:
                    type: string

  responses:
    BadRequest:
      description: Bad request. The request was invalid or cannot be processed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized. Authentication credentials are missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Forbidden. The authenticated user does not have permission to perform this action.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Not found. The requested resource does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Too many requests. Rate limit exceeded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      headers:
        Retry-After:
          description: Number of seconds to wait before making another request.
          schema:
            type: integer