Seismic Content API

API for managing and accessing content within the Seismic platform, including documents, presentations, folders, and other sales materials. Supports uploading, organizing, searching, delivering, and managing content items.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

seismic-content-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Seismic Content API
  description: >-
    API for managing and accessing content within the Seismic platform,
    including documents, presentations, and other sales enablement materials.
    Provides capabilities to upload, organize, search, deliver, and manage
    content items, folders, and content properties within the Seismic
    content management system.
  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: Content
    description: Operations for managing content items including documents, presentations, and other sales materials.
  - name: Content Profiles
    description: Operations for managing content profiles that define content configurations.
  - name: Content Properties
    description: Operations for managing content metadata properties and custom fields.
  - name: Delivery
    description: Operations for delivering and sharing content with buyers and teams.

  - name: Folders
    description: Operations for managing content folders and organizational structure.
paths:
  /content:
    get:
      operationId: listContentItems
      summary: List Content Items
      description: >-
        Retrieves a list of content items from the Seismic platform.
        Supports filtering by folder, content profile, and other criteria.
      tags:
        - Content
      parameters:
        - name: folderId
          in: query
          description: Filter content items by folder ID.
          schema:
            type: string
        - name: contentProfileId
          in: query
          description: Filter content items by content profile ID.
          schema:
            type: string
        - name: query
          in: query
          description: Search query to filter content items by name or metadata.
          schema:
            type: string
        - 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
        - name: sortBy
          in: query
          description: Field to sort results by.
          schema:
            type: string
            enum:
              - name
              - modifiedAt
              - createdAt
        - name: sortOrder
          in: query
          description: Sort order direction.
          schema:
            type: string
            enum:
              - asc
              - desc
            default: asc
      responses:
        '200':
          description: A list of content items.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/ContentItem'
                  totalCount:
                    type: integer
                    description: Total number of matching content items.
                  offset:
                    type: integer
                  limit:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    post:
      operationId: createContentItem
      summary: Create a Content Item
      description: >-
        Creates a new content item in the Seismic platform by uploading
        a file with associated metadata.
      tags:
        - Content
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
                - name
              properties:
                file:
                  type: string
                  format: binary
                  description: The file to upload.
                name:
                  type: string
                  description: Name of the content item.
                folderId:
                  type: string
                  description: ID of the folder to place the content item in.
                contentProfileId:
                  type: string
                  description: ID of the content profile to associate with the content item.
                description:
                  type: string
                  description: Description of the content item.
                properties:
                  type: object
                  description: Custom property values as key-value pairs.
                  additionalProperties:
                    type: string
      responses:
        '201':
          description: Content item created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentItem'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /content/{contentId}:
    get:
      operationId: getContentItem
      summary: Get a Content Item
      description: Retrieves details of a specific content item by its ID.
      tags:
        - Content
      parameters:
        - $ref: '#/components/parameters/contentId'
      responses:
        '200':
          description: Content item details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentItem'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    patch:
      operationId: updateContentItem
      summary: Update a Content Item
      description: Updates the metadata or properties of a specific content item.
      tags:
        - Content
      parameters:
        - $ref: '#/components/parameters/contentId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Updated name of the content item.
                description:
                  type: string
                  description: Updated description.
                folderId:
                  type: string
                  description: ID of the folder to move the content item to.
                properties:
                  type: object
                  description: Updated custom property values.
                  additionalProperties:
                    type: string
      responses:
        '200':
          description: Content item updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentItem'
        '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'
    delete:
      operationId: deleteContentItem
      summary: Delete a Content Item
      description: Deletes a specific content item from the Seismic platform.
      tags:
        - Content
      parameters:
        - $ref: '#/components/parameters/contentId'
      responses:
        '204':
          description: Content item deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /content/{contentId}/file:
    get:
      operationId: downloadContentFile
      summary: Download Content File
      description: Downloads the file associated with a specific content item.
      tags:
        - Content
      parameters:
        - $ref: '#/components/parameters/contentId'
        - name: versionId
          in: query
          description: Specific version of the file to download.
          schema:
            type: string
      responses:
        '200':
          description: File content.
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    put:
      operationId: replaceContentFile
      summary: Replace Content File
      description: Replaces the file associated with a content item with a new version.
      tags:
        - Content
      parameters:
        - $ref: '#/components/parameters/contentId'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
              properties:
                file:
                  type: string
                  format: binary
                  description: The replacement file.
      responses:
        '200':
          description: File replaced successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentItem'
        '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'

  /content/{contentId}/versions:
    get:
      operationId: listContentVersions
      summary: List Content Versions
      description: Retrieves a list of versions for a specific content item.
      tags:
        - Content
      parameters:
        - $ref: '#/components/parameters/contentId'
      responses:
        '200':
          description: A list of content versions.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/ContentVersion'
                  totalCount:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /content/{contentId}/url:
    get:
      operationId: getContentUrl
      summary: Get Content Url
      description: >-
        Retrieves a temporary URL for accessing or viewing a content item.
        The URL is time-limited and suitable for embedding or sharing.
      tags:
        - Content
        - Delivery
      parameters:
        - $ref: '#/components/parameters/contentId'
      responses:
        '200':
          description: Content URL details.
          content:
            application/json:
              schema:
                type: object
                properties:
                  url:
                    type: string
                    format: uri
                    description: Temporary URL for accessing the content.
                  expiresAt:
                    type: string
                    format: date-time
                    description: Expiration time of the URL.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /folders:
    get:
      operationId: listFolders
      summary: List Folders
      description: Retrieves a list of content folders from the Seismic platform.
      tags:
        - Folders
      parameters:
        - name: parentId
          in: query
          description: Filter by parent folder ID to retrieve child folders.
          schema:
            type: string
        - 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 folders.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Folder'
                  totalCount:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    post:
      operationId: createFolder
      summary: Create a Folder
      description: Creates a new content folder in the Seismic platform.
      tags:
        - Folders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                  description: Name of the folder.
                parentId:
                  type: string
                  description: ID of the parent folder.
                description:
                  type: string
                  description: Description of the folder.
      responses:
        '201':
          description: Folder created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /folders/{folderId}:
    get:
      operationId: getFolder
      summary: Get a Folder
      description: Retrieves details of a specific folder by its ID.
      tags:
        - Folders
      parameters:
        - $ref: '#/components/parameters/folderId'
      responses:
        '200':
          description: Folder details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    patch:
      operationId: updateFolder
      summary: Update a Folder
      description: Updates the name or other properties of a specific folder.
      tags:
        - Folders
      parameters:
        - $ref: '#/components/parameters/folderId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Updated folder name.
                description:
                  type: string
                  description: Updated folder description.
                parentId:
                  type: string
                  description: ID of the new parent folder to move this folder to.
      responses:
        '200':
          description: Folder updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        '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'
    delete:
      operationId: deleteFolder
      summary: Delete a Folder
      description: Deletes a specific folder from the Seismic platform.
      tags:
        - Folders
      parameters:
        - $ref: '#/components/parameters/folderId'
      responses:
        '204':
          description: Folder deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /content-properties:
    get:
      operationId: listContentProperties
      summary: List Content Properties
      description: >-
        Retrieves a list of content property definitions configured
        in the Seismic platform.
      tags:
        - Content Properties
      parameters:
        - 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 content property definitions.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/ContentProperty'
                  totalCount:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /content-properties/{propertyId}:
    get:
      operationId: getContentProperty
      summary: Get a Content Property
      description: Retrieves a specific content property definition by its ID.
      tags:
        - Content Properties
      parameters:
        - name: propertyId
          in: path
          required: true
          description: Unique identifier of the content property.
          schema:
            type: string
      responses:
        '200':
          description: Content property details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentProperty'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /content-profiles:
    get:
      operationId: listContentProfiles
      summary: List Content Profiles
      description: >-
        Retrieves a list of content profiles that define content type
        configurations in the Seismic platform.
      tags:
        - Content Profiles
      parameters:
        - 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 content profiles.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/ContentProfile'
                  totalCount:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /content-profiles/{profileId}:
    get:
      operationId: getContentProfile
      summary: Get a Content Profile
      description: Retrieves a specific content profile by its ID.
      tags:
        - Content Profiles
      parameters:
        - name: profileId
          in: path
          required: true
          description: Unique identifier of the content profile.
          schema:
            type: string
      responses:
        '200':
          description: Content profile details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentProfile'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'

  /search:
    post:
      operationId: searchContent
      summary: Search Content
      description: >-
        Searches for content items across the Seismic platform using
        full-text search and filtering capabilities.
      tags:
        - Content
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  description: Full-text search query.
                filters:
                  type: object
                  description: Filter criteria for narrowing search results.
                  properties:
                    contentProfileIds:
                      type: array
                      items:
                        type: string
                      description: Filter by content profile IDs.
                    folderIds:
                      type: array
                      items:
                        type: string
                      description: Filter by folder IDs.
                    fileTypes:
                      type: array
                      items:
                        type: string
                      description: Filter by file types.
                    tags:
                      type: array
                      items:
                        type: string
                      description: Filter by tags.
                    modifiedAfter:
                      type: string
                      format: date-time
                      description: Filter content modified after this date.
                    modifiedBefore:
                      type: string
                      format: date-time
                      description: Filter content modified before this date.
                offset:
                  type: integer
                  default: 0
                limit:
                  type: integer
                  default: 25
                  maximum: 100
                sortBy:
                  type: string
                  enum:
                    - relevance
                    - name
                    - modifiedAt
                    - createdAt
                sortOrder:
                  type: string
                  enum:
                    - asc
                    - desc
      responses:
        '200':
          description: Search results.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/ContentItem'
                  totalCount:
                    type: integer
                  offset:
                    type: integer
                  limit:
                    type: integer
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '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:
    contentId:
      name: contentId
      in: path
      required: true
      description: Unique identifier of the content item.
      schema:
        type: string
    folderId:
      name: folderId
      in: path
      required: true
      description: Unique identifier of the folder.
      schema:
        type: string

  schemas:
    ContentItem:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the content item.
        name:
          type: string
          description: Name of the content item.
        description:
          type: string
          description: Description of the content item.
        folderId:
          type: string
          description: ID of the folder containing this content item.
        contentProfileId:
          type: string
          description: ID of the associated content profile.
        fileType:
          type: string
          description: File type extension of the content item.
        fileSize:
          type: integer
          format: int64
          description: File size in bytes.
        mimeType:
          type: string
          description: MIME type of the content file.
        versionNumber:
          type: integer
          description: Current version number of the content item.
        status:
          type: string
          description: Publication status of the content item.
          enum:
            - draft
            - published
            - archived
        tags:
          type: array
          items:
            type: string
          description: Tags associated with the content item.
        properties:
          type: object
          description: Custom content property values.
          additionalProperties:
            type: string
        createdBy:
          type: string
          description: ID of the user who created the content item.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the content item was created.
        modifiedBy:
          type: string
          description: ID of the user who last modified the content item.
        modifiedAt:
          type: string
          format: date-time
          description: Timestamp when the content item was last modified.
        thumbnailUrl:
          type: string
          format: uri
          description: URL for the content item thumbnail image.

    ContentVersion:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the version.
        contentId:
          type: string
          description: ID of the parent content item.
        versionNumber:
          type: integer
          description: Sequential version number.
        fileSize:
          type: integer
          format: int64
          description: File size in bytes.
        createdBy:
          type: string
          description: ID of the user who created this version.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when this version was created.
        comment:
          type: string
          description: Comment or note associated with this version.

    Folder:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the folder.
        name:
          type: string
          description: Name of the folder.
        description:
          type: string
          description: Description of the folder.
        parentId:
          type: string
          description: ID of the parent folder.
        path:
          type: string
          description: Full path of the folder in the folder hierarchy.
        contentCount:
          type: integer
          description: Number of content items in the folder.
        childFolderCount:
          type: integer
          description: Number of child folders.
        createdBy:
          type: string
          description: ID of the user who created the folder.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the folder was created.
        modifiedBy:
          type: string
          description: ID of the user who last modified the folder.
        modifiedAt:
          type: string
          format: date-time
          description: Timestamp when the folder was last modified.

    ContentProperty:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the content property.
        name:
          type: string
          description: Name of the content property.
        displayName:
          type: string
          description: Display name shown in the UI.
        type:
          type: string
          description: Data type of the property.
          enum:
            - text
            - number
            - date
            - dropdown
            - multiSelect
            - boolean
        required:
          type: boolean
          description: Whether the property is required.
        options:
          type: array
          items:
            type: string
          description: Available options for dropdown and multi-select properties.
        description:
          type: string
          description: Description of the content property.

    ContentProfile:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the content profile.
        name:
          type: string
          description: Name of the content profile.
        description:
          type: string
          description: Description of the content profile.
        allowedFileTypes:
          type: array
          items:
            type: string
          description: List of allowed file type extensions.
        properties:
          type: array
          items:
            type: string
          description: IDs of content properties associated with this profile.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the profile was created.
        modifiedAt:
          type: string
          format: date-time
          description: Timestamp when the profile was last modified.

    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: stri

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