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.
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: 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: support@seismic.com
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