openapi: 3.1.0 info: title: Gainsight CS Bulk Accounts Activities API description: The Gainsight Bulk API is an asynchronous connector that automates insert or update of large data volumes from CSV files into Gainsight standard and custom objects, with rate limits of 10 calls per hour and 100 per day. version: '1.0' contact: name: Gainsight Support url: https://support.gainsight.com email: support@gainsight.com termsOfService: https://www.gainsight.com/terms-of-service/ servers: - url: https://{domain}.gainsightcloud.com/v1 description: Gainsight CS Production variables: domain: default: customer description: Customer-specific domain prefix security: - apiKey: [] tags: - name: Activities description: Manage timeline activities paths: /timeline/activities: post: operationId: createActivity summary: Gainsight Create a timeline activity description: Create a new activity on the timeline for a company or relationship. tags: - Activities requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ActivityInput' responses: '200': description: Activity created successfully content: application/json: schema: type: object properties: result: type: boolean data: $ref: '#/components/schemas/Activity' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /timeline/activities/bulk: post: operationId: bulkCreateActivities summary: Gainsight Bulk create timeline activities description: Create multiple activities in a single request. Supports payloads up to 80MB. tags: - Activities requestBody: required: true content: application/json: schema: type: object required: - records properties: records: type: array items: $ref: '#/components/schemas/ActivityInput' responses: '200': description: Activities created content: application/json: schema: type: object properties: result: type: boolean data: type: object properties: insertedCount: type: integer failedCount: type: integer '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /timeline/activities/{activityId}: get: operationId: getActivity summary: Gainsight Get a timeline activity description: Retrieve a specific timeline activity by ID. tags: - Activities parameters: - $ref: '#/components/parameters/activityId' responses: '200': description: Activity returned content: application/json: schema: type: object properties: result: type: boolean data: $ref: '#/components/schemas/Activity' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' put: operationId: updateActivity summary: Gainsight Update a timeline activity description: Update an existing timeline activity. tags: - Activities parameters: - $ref: '#/components/parameters/activityId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ActivityInput' responses: '200': description: Activity updated content: application/json: schema: type: object properties: result: type: boolean data: $ref: '#/components/schemas/Activity' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteActivity summary: Gainsight Delete a timeline activity description: Delete a timeline activity by ID. tags: - Activities parameters: - $ref: '#/components/parameters/activityId' responses: '200': description: Activity deleted content: application/json: schema: $ref: '#/components/schemas/ApiResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /timeline/activities/search: post: operationId: searchActivities summary: Gainsight Search timeline activities description: Search for timeline activities using filter criteria. tags: - Activities requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SearchRequest' responses: '200': description: Activities returned content: application/json: schema: type: object properties: result: type: boolean data: type: object properties: records: type: array items: $ref: '#/components/schemas/Activity' totalCount: type: integer '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' components: schemas: Activity: type: object properties: Gsid: type: string description: Activity unique identifier Subject: type: string description: Activity subject line Notes: type: string description: Activity notes or body content ActivityTypeId: type: string description: Activity type identifier ActivityTypeName: type: string description: Activity type name CompanyId: type: string description: Associated company Gsid CompanyName: type: string description: Associated company name ActivityDate: type: string format: date-time description: Date and time of the activity OwnerId: type: string description: Activity owner user ID OwnerName: type: string description: Activity owner name ExternalId: type: string description: External system identifier Attendees: type: array items: type: object properties: personId: type: string email: type: string format: email name: type: string description: List of attendees Sentiment: type: string enum: - Positive - Neutral - Negative description: Sentiment of the activity CreatedDate: type: string format: date-time description: Record creation timestamp ModifiedDate: type: string format: date-time description: Last modification timestamp ActivityInput: type: object required: - Subject - ActivityTypeId - CompanyId - ActivityDate properties: Subject: type: string description: Activity subject Notes: type: string description: Activity notes ActivityTypeId: type: string description: Activity type identifier CompanyId: type: string description: Associated company Gsid ActivityDate: type: string format: date-time description: Date and time of the activity OwnerId: type: string description: Activity owner user ID ExternalId: type: string description: External system identifier Attendees: type: array items: type: object properties: personId: type: string email: type: string format: email Sentiment: type: string enum: - Positive - Neutral - Negative ApiResponse: type: object properties: result: type: boolean errorCode: type: string errorDesc: type: string requestId: type: string SearchRequest: type: object properties: select: type: array items: type: string where: type: object properties: conditions: type: array items: type: object properties: name: type: string value: {} operator: type: string expression: type: string limit: type: integer offset: type: integer parameters: activityId: name: activityId in: path required: true description: Timeline activity unique identifier schema: type: string responses: NotFound: description: The requested resource was not found BadRequest: description: Invalid request body or parameters Unauthorized: description: Authentication failed or access key is missing securitySchemes: apiKey: type: apiKey name: accessKey in: header description: Gainsight CS REST API access key externalDocs: description: Bulk API Documentation url: https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Bulk_API/Gainsight_Bulk_REST_APIs