openapi: 3.1.0 info: title: Gainsight CS Bulk Accounts Goals 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: Goals description: Manage customer goals paths: /goals: post: operationId: createGoal summary: Gainsight Create a customer goal description: Create a new customer goal record. tags: - Goals requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GoalInput' responses: '200': description: Goal created content: application/json: schema: type: object properties: result: type: boolean data: $ref: '#/components/schemas/Goal' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /goals/{goalId}: get: operationId: getGoal summary: Gainsight Get a customer goal description: Retrieve a specific customer goal by ID. tags: - Goals parameters: - $ref: '#/components/parameters/goalId' responses: '200': description: Goal returned content: application/json: schema: type: object properties: result: type: boolean data: $ref: '#/components/schemas/Goal' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' put: operationId: updateGoal summary: Gainsight Update a customer goal description: Update an existing customer goal. tags: - Goals parameters: - $ref: '#/components/parameters/goalId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GoalInput' responses: '200': description: Goal updated content: application/json: schema: type: object properties: result: type: boolean data: $ref: '#/components/schemas/Goal' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /goals/search: post: operationId: searchGoals summary: Gainsight Search customer goals description: Search for customer goals using filter criteria. tags: - Goals requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SearchRequest' responses: '200': description: Goals returned content: application/json: schema: type: object properties: result: type: boolean data: type: object properties: records: type: array items: $ref: '#/components/schemas/Goal' totalCount: type: integer '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' components: 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 schemas: GoalInput: type: object required: - Name - CompanyId properties: Name: type: string Description: type: string CompanyId: type: string TemplateId: type: string Status: type: string enum: - Not Started - In Progress - Achieved - Missed OwnerId: type: string TargetDate: type: string format: date 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 Goal: type: object properties: Gsid: type: string description: Goal unique identifier Name: type: string description: Goal name Description: type: string description: Goal description CompanyId: type: string description: Associated company Gsid CompanyName: type: string description: Associated company name TemplateId: type: string description: Goal template identifier Status: type: string enum: - Not Started - In Progress - Achieved - Missed description: Goal status OwnerId: type: string description: Goal owner user ID OwnerName: type: string description: Goal owner name TargetDate: type: string format: date description: Target completion date CompletionPercentage: type: number description: Progress percentage CreatedDate: type: string format: date-time ModifiedDate: type: string format: date-time parameters: goalId: name: goalId in: path required: true description: Customer goal unique identifier schema: type: string 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