Seismic Content API

Operations for managing content items including documents, presentations, and other sales materials.

Documentation

Specifications

Schemas & Data

OpenAPI Specification

seismic-content-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Seismic Analytics Analytics Content API
  description: API for accessing analytics and reporting data on content usage, user engagement, and sales effectiveness within the Seismic platform. Provides insights into how content is being used, which materials are most effective, and how teams are engaging with sales enablement resources.
  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: Content
  description: Operations for managing content items including documents, presentations, and other sales materials.
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
      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'
  /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:
  responses:
    Forbidden:
      description: Forbidden. The authenticated user does not have permission to perform this action.
      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'
    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
    BadRequest:
      description: Bad request. The request was invalid or cannot be processed.
      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'
  schemas:
    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.
    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.
    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
  parameters:
    contentId:
      name: contentId
      in: path
      required: true
      description: Unique identifier of the content item.
      schema:
        type: string
  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