Seismic Groups API

Operations for managing user groups and teams.

Documentation

Specifications

Schemas & Data

OpenAPI Specification

seismic-groups-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Seismic Analytics Content Analytics Groups 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: Groups
  description: Operations for managing user groups and teams.
paths:
  /users/{userId}/groups:
    get:
      operationId: getUserGroups
      summary: Get User Groups
      description: Retrieves the groups that a specific user belongs to.
      tags:
      - Groups
      parameters:
      - $ref: '#/components/parameters/userId'
      responses:
        '200':
          description: List of groups the user belongs to.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Group'
                  totalCount:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    put:
      operationId: setUserGroups
      summary: Set User Group Memberships
      description: Replaces the user's group memberships with the specified set of groups.
      tags:
      - Groups
      parameters:
      - $ref: '#/components/parameters/userId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - groupIds
              properties:
                groupIds:
                  type: array
                  items:
                    type: string
                  description: IDs of the groups to assign to the user.
      responses:
        '200':
          description: User group memberships updated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Group'
        '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'
  /groups:
    get:
      operationId: listGroups
      summary: List Groups
      description: Retrieves a list of user groups in the Seismic platform.
      tags:
      - Groups
      parameters:
      - name: query
        in: query
        description: Search query to filter groups by name.
        schema:
          type: string
      - name: parentId
        in: query
        description: Filter by parent group ID for hierarchical groups.
        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 groups.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Group'
                  totalCount:
                    type: integer
                  offset:
                    type: integer
                  limit:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    post:
      operationId: createGroup
      summary: Create a Group
      description: Creates a new user group in the Seismic platform.
      tags:
      - Groups
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              properties:
                name:
                  type: string
                  description: Name of the group.
                description:
                  type: string
                  description: Description of the group.
                parentId:
                  type: string
                  description: ID of the parent group for hierarchical grouping.
      responses:
        '201':
          description: Group created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          description: Conflict. A group with this name already exists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /groups/{groupId}:
    get:
      operationId: getGroup
      summary: Get a Group
      description: Retrieves details of a specific group by its ID.
      tags:
      - Groups
      parameters:
      - $ref: '#/components/parameters/groupId'
      responses:
        '200':
          description: Group details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    patch:
      operationId: updateGroup
      summary: Update a Group
      description: Updates the name or other properties of a specific group.
      tags:
      - Groups
      parameters:
      - $ref: '#/components/parameters/groupId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Updated group name.
                description:
                  type: string
                  description: Updated group description.
                parentId:
                  type: string
                  description: Updated parent group ID.
      responses:
        '200':
          description: Group updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
        '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: deleteGroup
      summary: Delete a Group
      description: Deletes a specific group from the Seismic platform.
      tags:
      - Groups
      parameters:
      - $ref: '#/components/parameters/groupId'
      responses:
        '204':
          description: Group deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /groups/{groupId}/members:
    get:
      operationId: listGroupMembers
      summary: List Group Members
      description: Retrieves a list of users who are members of a specific group.
      tags:
      - Groups
      parameters:
      - $ref: '#/components/parameters/groupId'
      - 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 group members.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
                  totalCount:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    post:
      operationId: addGroupMember
      summary: Add a Member to a Group
      description: Adds a user as a member of a specific group.
      tags:
      - Groups
      parameters:
      - $ref: '#/components/parameters/groupId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - userId
              properties:
                userId:
                  type: string
                  description: ID of the user to add to the group.
      responses:
        '201':
          description: User added to group successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: Conflict. User is already a member of the group.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /groups/{groupId}/members/{userId}:
    delete:
      operationId: removeGroupMember
      summary: Remove a Member from a Group
      description: Removes a user from a specific group.
      tags:
      - Groups
      parameters:
      - $ref: '#/components/parameters/groupId'
      - $ref: '#/components/parameters/userId'
      responses:
        '204':
          description: User removed from group successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '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'
    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
    Unauthorized:
      description: Unauthorized. Authentication credentials are missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    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'
  parameters:
    userId:
      name: userId
      in: path
      required: true
      description: Unique identifier of the user.
      schema:
        type: string
    groupId:
      name: groupId
      in: path
      required: true
      description: Unique identifier of the group.
      schema:
        type: string
  schemas:
    Group:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the group.
        name:
          type: string
          description: Name of the group.
        description:
          type: string
          description: Description of the group.
        parentId:
          type: string
          description: ID of the parent group.
        memberCount:
          type: integer
          description: Number of members in the group.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the group was created.
        modifiedAt:
          type: string
          format: date-time
          description: Timestamp when the group was last modified.
    User:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the user.
        email:
          type: string
          format: email
          description: Email address of the user.
        firstName:
          type: string
          description: First name of the user.
        lastName:
          type: string
          description: Last name of the user.
        displayName:
          type: string
          description: Display name of the user.
        title:
          type: string
          description: Job title of the user.
        department:
          type: string
          description: Department the user belongs to.
        roleId:
          type: string
          description: ID of the assigned role.
        roleName:
          type: string
          description: Name of the assigned role.
        teamId:
          type: string
          description: ID of the team the user belongs to.
        teamName:
          type: string
          description: Name of the team the user belongs to.
        status:
          type: string
          description: Account status.
          enum:
          - active
          - inactive
          - pending
          - suspended
        avatarUrl:
          type: string
          format: uri
          description: URL of the user's avatar image.
        lastLoginAt:
          type: string
          format: date-time
          description: Timestamp of the user's last login.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the user account was created.
        modifiedAt:
          type: string
          format: date-time
          description: Timestamp when the user account 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: string
                  message:
                    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