Gainsight People API

Manage person records

Documentation

📖
Documentation
https://support.gainsight.com/PX/API_for_Developers
📖
Authentication
https://support.gainsight.com/PX/API_for_Developers/02About/Authentication
📖
Documentation
https://support.gainsight.com/PX/API_for_Developers/APIs_for_Developers/PX_API
📖
Documentation
https://gainsightpx.docs.apiary.io/
📖
Documentation
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Company_and_Relationship_API/Company_API_Documentation
📖
Authentication
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Generate_REST_API/Generate_REST_API_Key
📖
Documentation
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Person_API/People_API_Documentation
📖
Documentation
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Custom_Object_API/Gainsight_Custom_Object_API_Documentation
📖
Documentation
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Cockpit_API/Call_To_Action_(CTA)_API_Documentation
📖
Documentation
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Timeline_API/Timeline_APIs
📖
Documentation
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Success_Plan_APIs/Success_Plan_APIs
📖
Documentation
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Data_Management_APIs/Data_Management_APIs
📖
Documentation
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Bulk_API/Gainsight_Bulk_REST_APIs
📖
Documentation
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Bulk_API/Gainsight_Bulk_API
📖
Documentation
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Events_API/Events_API
📖
Documentation
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/User_Management_APIs/User_Management_APIs
📖
Documentation
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/User_Management_APIs/SCIM_API
📖
Documentation
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/User_Management_APIs/API_for_Company_Team_Record
📖
Documentation
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Customer_Goals_API/Customer_Goals_APIs
📖
Documentation
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Renewal_Center_API/Renewal_Center_API
📖
Documentation
https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Cockpit_API/Task_APIs

Specifications

Other Resources

OpenAPI Specification

gainsight-people-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Gainsight CS Bulk Accounts People 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: People
  description: Manage person records
paths:
  /data/objects/Person:
    post:
      operationId: upsertPeople
      summary: Gainsight Upsert person records
      description: Insert or update person records in Gainsight. Supports up to 50 records per call with upsert behavior based on key fields.
      tags:
      - People
      parameters:
      - name: keys
        in: query
        required: true
        description: Comma-separated key fields for matching (e.g., Email)
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - records
              properties:
                records:
                  type: array
                  maxItems: 50
                  items:
                    $ref: '#/components/schemas/PersonRecord'
      responses:
        '200':
          description: Records upserted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WriteResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /data/objects/Person/search:
    post:
      operationId: searchPeople
      summary: Gainsight Search person records
      description: Search for person records using filter criteria. Returns up to 5000 records per call.
      tags:
      - People
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchRequest'
      responses:
        '200':
          description: Search results returned
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: boolean
                  data:
                    type: object
                    properties:
                      records:
                        type: array
                        items:
                          $ref: '#/components/schemas/PersonRecord'
                      totalCount:
                        type: integer
                      count:
                        type: integer
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /data/objects/Person/{recordId}:
    get:
      operationId: getPerson
      summary: Gainsight Get a person record
      description: Retrieve a specific person record by Gainsight ID.
      tags:
      - People
      parameters:
      - $ref: '#/components/parameters/recordId'
      responses:
        '200':
          description: Person record returned
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: boolean
                  data:
                    $ref: '#/components/schemas/PersonRecord'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deletePerson
      summary: Gainsight Delete a person record
      description: Delete a person record by Gainsight ID.
      tags:
      - People
      parameters:
      - $ref: '#/components/parameters/recordId'
      responses:
        '200':
          description: Record deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /v1/people:
    get:
      operationId: listPeople
      summary: Gainsight List people
      description: Retrieve a list of person records from Gainsight.
      tags:
      - People
      parameters:
      - $ref: '#/components/parameters/pageNumber'
      - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: List of people returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: boolean
                  data:
                    type: object
                    properties:
                      records:
                        type: array
                        items:
                          $ref: '#/components/schemas/Person'
                      totalCount:
                        type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    WriteResponse:
      type: object
      properties:
        result:
          type: boolean
        data:
          type: object
          properties:
            count:
              type: integer
            insertedCount:
              type: integer
            updatedCount:
              type: integer
            failedCount:
              type: integer
            failures:
              type: array
              items:
                type: object
                properties:
                  index:
                    type: integer
                  errorMessage:
                    type: string
    ApiResponse:
      type: object
      properties:
        result:
          type: boolean
        errorCode:
          type: string
        errorDesc:
          type: string
        requestId:
          type: string
    Person:
      type: object
      properties:
        Gsid:
          type: string
          description: Gainsight unique identifier
        FirstName:
          type: string
          description: First name
        LastName:
          type: string
          description: Last name
        Email:
          type: string
          format: email
          description: Email address
        CompanyId:
          type: string
          description: Associated company ID
        Role:
          type: string
          description: Role or title
        Location:
          type: string
          description: Location
        CreatedDate:
          type: string
          format: date-time
          description: Record creation timestamp
        ModifiedDate:
          type: string
          format: date-time
          description: Record last modified timestamp
    SearchRequest:
      type: object
      properties:
        select:
          type: array
          items:
            type: string
        where:
          type: object
          properties:
            conditions:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  alias:
                    type: string
                  value: {}
                  operator:
                    type: string
                    enum:
                    - EQ
                    - NE
                    - GT
                    - GTE
                    - LT
                    - LTE
                    - CONTAINS
                    - STARTS_WITH
                    - ENDS_WITH
                    - IN
                    - NOT_IN
            expression:
              type: string
        orderBy:
          type: object
          properties:
            field:
              type: string
            order:
              type: string
              enum:
              - ASC
              - DESC
        limit:
          type: integer
          maximum: 5000
        offset:
          type: integer
    PersonRecord:
      type: object
      properties:
        Gsid:
          type: string
          description: Gainsight unique identifier
        FirstName:
          type: string
          description: First name
        LastName:
          type: string
          description: Last name
        Email:
          type: string
          format: email
          description: Email address
        CompanyId:
          type: string
          description: Associated company Gsid
        CompanyName:
          type: string
          description: Associated company name
        Title:
          type: string
          description: Job title
        Role:
          type: string
          description: Contact role
        Phone:
          type: string
          description: Phone number
        Location:
          type: string
          description: Location
        LinkedinUrl:
          type: string
          format: uri
          description: LinkedIn profile URL
        MasterAvatarTypeCode:
          type: string
          description: Avatar type code
        Timezone:
          type: string
          description: Timezone
        SfdcContactId:
          type: string
          description: Salesforce contact ID
        NPS:
          type: number
          description: Net promoter score
        IsPrimary:
          type: boolean
          description: Whether this is the primary contact
        IsActive:
          type: boolean
          description: Whether the person is active
        CreatedDate:
          type: string
          format: date-time
          description: Record creation timestamp
        ModifiedDate:
          type: string
          format: date-time
          description: Last modification timestamp
  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
  parameters:
    pageSize:
      name: pageSize
      in: query
      description: Number of records per page
      schema:
        type: integer
        default: 25
        maximum: 100
    pageNumber:
      name: pageNumber
      in: query
      description: Page number for pagination
      schema:
        type: integer
        default: 0
    recordId:
      name: recordId
      in: path
      required: true
      description: Gainsight record unique identifier (Gsid)
      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