Gainsight CS Renewal Center API

The Renewal Center API enables creating and updating opportunity records in the Gainsight Opportunity object, supporting renewal, upsell, and downsell booking types within the Matrix Data Architecture.

OpenAPI Specification

gainsight-cs-renewal-center-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Gainsight CS Renewal Center API
  description: >-
    The Renewal Center API enables creating and updating opportunity records in
    the Gainsight Opportunity object, supporting renewal, upsell, and downsell
    booking types within the Matrix Data Architecture.
  version: '1.0'
  contact:
    name: Gainsight Support
    url: https://support.gainsight.com
    email: [email protected]
  termsOfService: https://www.gainsight.com/terms-of-service/
externalDocs:
  description: Renewal Center API Documentation
  url: https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Renewal_Center_API/Renewal_Center_API
servers:
  - url: https://{domain}.gainsightcloud.com/v1
    description: Gainsight CS Production
    variables:
      domain:
        default: customer
        description: Customer-specific domain prefix
tags:
  - name: Opportunities
    description: Manage opportunity records
security:
  - apiKey: []
paths:
  /data/objects/Opportunity:
    post:
      operationId: createOpportunity
      summary: Gainsight Create an opportunity
      description: >-
        Create a new opportunity record in the Gainsight Opportunity object.
        Supports renewal, upsell, and downsell booking types.
      tags:
        - Opportunities
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - records
              properties:
                records:
                  type: array
                  maxItems: 50
                  items:
                    $ref: '#/components/schemas/OpportunityRecord'
      responses:
        '200':
          description: Opportunity created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WriteResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
    put:
      operationId: updateOpportunity
      summary: Gainsight Update opportunities
      description: Update one or more opportunity records.
      tags:
        - Opportunities
      parameters:
        - name: keys
          in: query
          required: true
          description: Comma-separated key fields for matching
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - records
              properties:
                records:
                  type: array
                  maxItems: 50
                  items:
                    $ref: '#/components/schemas/OpportunityRecord'
      responses:
        '200':
          description: Opportunity updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WriteResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /data/objects/Opportunity/search:
    post:
      operationId: searchOpportunities
      summary: Gainsight Search opportunities
      description: Search for opportunity records using filter criteria.
      tags:
        - Opportunities
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchRequest'
      responses:
        '200':
          description: Opportunities returned
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: boolean
                  data:
                    type: object
                    properties:
                      records:
                        type: array
                        items:
                          $ref: '#/components/schemas/OpportunityRecord'
                      totalCount:
                        type: integer
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /data/objects/Opportunity/{recordId}:
    get:
      operationId: getOpportunity
      summary: Gainsight Get an opportunity
      description: Retrieve a specific opportunity by ID.
      tags:
        - Opportunities
      parameters:
        - $ref: '#/components/parameters/recordId'
      responses:
        '200':
          description: Opportunity returned
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: boolean
                  data:
                    $ref: '#/components/schemas/OpportunityRecord'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  securitySchemes:
    apiKey:
      type: apiKey
      name: accessKey
      in: header
      description: Gainsight CS REST API access key
  parameters:
    recordId:
      name: recordId
      in: path
      required: true
      description: Opportunity record Gsid
      schema:
        type: string
  responses:
    Unauthorized:
      description: Authentication failed or access key is missing
    BadRequest:
      description: Invalid request body or parameters
    NotFound:
      description: The requested resource was not found
  schemas:
    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
    WriteResponse:
      type: object
      properties:
        result:
          type: boolean
        data:
          type: object
          properties:
            count:
              type: integer
            insertedCount:
              type: integer
            updatedCount:
              type: integer
            failedCount:
              type: integer
    OpportunityRecord:
      type: object
      properties:
        Gsid:
          type: string
          description: Opportunity unique identifier
        Name:
          type: string
          description: Opportunity name
        CompanyId:
          type: string
          description: Associated company Gsid
        CompanyName:
          type: string
          description: Associated company name
        BookingType:
          type: string
          enum:
            - New Business
            - Renewal
            - Upsell
            - Downsell
            - Churn
          description: Booking type
        Amount:
          type: number
          description: Opportunity amount
        Currency:
          type: string
          description: Currency code
        CloseDate:
          type: string
          format: date
          description: Expected close date
        Stage:
          type: string
          description: Opportunity stage
        Probability:
          type: number
          minimum: 0
          maximum: 100
          description: Win probability percentage
        OwnerId:
          type: string
          description: Opportunity owner user ID
        OwnerName:
          type: string
          description: Owner name
        ARR:
          type: number
          description: Annual recurring revenue
        Term:
          type: integer
          description: Contract term in months
        RenewalDate:
          type: string
          format: date
          description: Renewal date
        IsClosed:
          type: boolean
          description: Whether the opportunity is closed
        IsWon:
          type: boolean
          description: Whether the opportunity was won
        SfdcOpportunityId:
          type: string
          description: Salesforce opportunity ID
        CreatedDate:
          type: string
          format: date-time
        ModifiedDate:
          type: string
          format: date-time