CaptivateIQ Data Worksheets API

The Data Worksheets API from CaptivateIQ — 8 operation(s) for data worksheets.

OpenAPI Specification

captivateiq-data-worksheets-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: CaptivateIQ Attribute Worksheets Data Worksheets API
  version: v1
  description: The CaptivateIQ REST API (ciq/v1) for managing employees, hierarchies, data worksheets, commission plans, payouts, reports, and related sales-compensation resources. Harvested from the public developer reference (developers.captivateiq.com).
  x-apievangelist-provenance:
    generated: '2026-07-18'
    method: searched
    source: https://developers.captivateiq.com/reference (per-operation OpenAPI defs merged)
servers:
- url: https://api.captivateiq.com
  description: Production
security:
- tokenAuth: []
tags:
- name: Data Worksheets
paths:
  /ciq/v1/data-worksheets/:
    get:
      operationId: data_worksheets_list
      summary: List Data Worksheets
      parameters:
      - in: query
        name: data_workbook_ids[]
        schema:
          type: string
          format: uuid
        description: Filter by data workbook UUIDs
        explode: true
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: name_contains
        schema:
          type: string
        description: Case-insensitive search to list data workbooks whose names contain the given string.
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Optional. Which field to use when ordering the results. By default we assume [`name`]. Available fields for ordering: [`(-)name`]. See the [FAQs](https://developers.captivateiq.com/docs/faqs) page for tips.'
        schema:
          type: string
      - in: query
        name: type
        schema:
          type: string
        description: Filter by worksheet type. Valid choices are `raw` or `derived`.
      tags:
      - Data Worksheets
      security:
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDataWorksheetList'
          description: ''
  /ciq/v1/data-worksheets/{id}/:
    get:
      operationId: data_worksheets_retrieve
      summary: Get Data Worksheet
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: Primary key, a UUID.
        required: true
      tags:
      - Data Worksheets
      security:
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataWorksheet'
          description: ''
  /ciq/v1/data-worksheets/{worksheet_uuid}/records/:
    post:
      operationId: data_worksheets_records_create
      summary: Create Record
      parameters:
      - in: path
        name: worksheet_uuid
        schema:
          type: string
          format: uuid
        description: Worksheet UUID.
        required: true
      tags:
      - Data Worksheets
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
          application/x-www-form-urlencoded:
            schema:
              type: object
              additionalProperties: {}
          multipart/form-data:
            schema:
              type: object
              additionalProperties: {}
      security:
      - tokenAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
          description: ''
    get:
      operationId: data_worksheets_records_list
      description: 'This endpoint returns only the raw data values present in the worksheet.

        If you experience performance issues, or want to also see derived values, please use the

        [Bulk Export Records](https://developers.captivateiq.com/reference/data_worksheets_records_export_create-1) endpoint instead.'
      summary: List Records
      parameters:
      - in: query
        name: created_at_after
        schema:
          type: string
          format: date
        description: Filter by created_at dates after a date, inclusive of that date. YYYY-MM-DD format.
      - in: query
        name: created_at_before
        schema:
          type: string
          format: date
        description: Filter by created_at dates before a date. YYYY-MM-DD format.
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Optional. Which field to use when ordering the results. By default we assume [`created_at`]. Available fields for ordering: [`(-)created_at`, `(-)updated_at`]. Also accepts column name or UUIDs. For worksheets that are bulk upserted it is recommended to use the worksheet Unique ID name or UUID to avoid duplicates.'
        schema:
          type: string
      - in: query
        name: query
        schema:
          type: string
        description: Perform a case-insensitive text search over record data for the given string.
      - in: query
        name: query_column
        schema:
          type: string
        description: When provided along with query, search only within the specified column name instead of searching all columns.
      - in: query
        name: updated_at_after
        schema:
          type: string
          format: date
        description: Filter by updated_at dates after a date, inclusive of that date. YYYY-MM-DD format.
      - in: query
        name: updated_at_before
        schema:
          type: string
          format: date
        description: Filter by updated_at dates before a date. YYYY-MM-DD format.
      - in: path
        name: worksheet_uuid
        schema:
          type: string
          format: uuid
        description: Worksheet UUID.
        required: true
      tags:
      - Data Worksheets
      security:
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedRecordList'
          description: ''
  /ciq/v1/data-worksheets/{worksheet_uuid}/records/batch/:
    post:
      operationId: data_worksheets_records_batch_create
      summary: Batch Update Records
      parameters:
      - in: path
        name: worksheet_uuid
        schema:
          type: string
          format: uuid
        description: Worksheet UUID.
        required: true
      tags:
      - Data Worksheets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchUpdateRecords'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BatchUpdateRecords'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BatchUpdateRecords'
        required: true
      security:
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchResult'
          description: ''
  /ciq/v1/data-worksheets/{worksheet_uuid}/records/export/:
    post:
      operationId: data_worksheets_records_export_create
      description: 'Export all records as a downloadable CSV file for the given data worksheet. This exports both data and

        derived columns.'
      summary: Bulk Export Records
      parameters:
      - in: query
        name: export_format
        schema:
          type: string
          enum:
          - csv
          - json
          default: csv
        description: Format for the records export.
      - in: path
        name: worksheet_uuid
        schema:
          type: string
          format: uuid
        description: Worksheet UUID.
        required: true
      tags:
      - Data Worksheets
      security:
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
          description: ''
  /ciq/v1/data-worksheets/{worksheet_uuid}/records/import/:
    post:
      operationId: data_worksheets_records_import_create
      description: 'While the CSV file format is not fully standardized, CaptivateIQ''s implementation of CSV parsing will have

        you surround a field''s data with quotation marks in order to allow for commas that may be present in the data.


        For example:

        ```

        Column1,Column2

        "Foo, bar",baz

        ```'
      summary: Bulk Import Records
      parameters:
      - in: path
        name: worksheet_uuid
        schema:
          type: string
          format: uuid
        description: Worksheet UUID.
        required: true
      tags:
      - Data Worksheets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataWorksheetImportCSVRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DataWorksheetImportCSVRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DataWorksheetImportCSVRequest'
        required: true
      security:
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Upload'
          description: ''
  /ciq/v1/data-worksheets/{worksheet_uuid}/records/import/template/:
    get:
      operationId: data_worksheets_records_import_template_retrieve
      summary: Get Bulk Import Records Template
      parameters:
      - in: path
        name: worksheet_uuid
        schema:
          type: string
          format: uuid
        description: Worksheet UUID.
        required: true
      tags:
      - Data Worksheets
      security:
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: string
          description: ''
  /ciq/v1/data-worksheets/{worksheet_uuid}/records/{unique_id}/:
    delete:
      operationId: data_worksheets_records_destroy
      summary: Delete Record
      parameters:
      - in: path
        name: unique_id
        schema:
          type: string
        description: The unique ID column value of a record within the worksheet `worksheet_uuid`.
        required: true
      - in: path
        name: worksheet_uuid
        schema:
          type: string
          format: uuid
        description: Worksheet UUID.
        required: true
      tags:
      - Data Worksheets
      security:
      - tokenAuth: []
      responses:
        '204':
          description: No response body
    get:
      operationId: data_worksheets_records_retrieve
      summary: Get Record
      parameters:
      - in: path
        name: unique_id
        schema:
          type: string
        description: The unique ID column value of a record within the worksheet `worksheet_uuid`.
        required: true
      - in: path
        name: worksheet_uuid
        schema:
          type: string
          format: uuid
        description: Worksheet UUID.
        required: true
      tags:
      - Data Worksheets
      security:
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
          description: ''
    put:
      operationId: data_worksheets_records_update
      summary: Update Record
      parameters:
      - in: path
        name: unique_id
        schema:
          type: string
        description: The unique ID column value of a record within the worksheet `worksheet_uuid`.
        required: true
      - in: path
        name: worksheet_uuid
        schema:
          type: string
          format: uuid
        description: Worksheet UUID.
        required: true
      tags:
      - Data Worksheets
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
          application/x-www-form-urlencoded:
            schema:
              type: object
              additionalProperties: {}
          multipart/form-data:
            schema:
              type: object
              additionalProperties: {}
      security:
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
          description: ''
components:
  schemas:
    BatchUpdateRecords:
      type: object
      properties:
        upserts:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: Records to create or update. Maximum batch size is 1000.
          maxItems: 1000
        deletes:
          type: array
          items:
            type: string
          description: Unique IDs for the records to delete. Maximum batch size is 1000.
          maxItems: 1000
      required:
      - deletes
      - upserts
    Job:
      type: object
      properties:
        object:
          type: string
          readOnly: true
          default: job
          description: Optional. Object type name.
        id:
          type: string
          readOnly: true
          description: Primary key, a UUID.
        url:
          type: string
          readOnly: true
          description: URL to retrieve job details and status.
        type:
          type: string
          nullable: true
          readOnly: true
          description: Job type.
        status:
          type: string
          readOnly: true
          description: 'Job status, one of: PENDING, RECEIVED, STARTED, SUCCESS, FAILURE, REVOKED, REJECTED, RETRY or IGNORED'
        description:
          type: string
          nullable: true
          readOnly: true
          description: Detailed job description.
        details:
          type: object
          additionalProperties: {}
          readOnly: true
          description: Specific details about this job, such as error messages or download links.
        metadata:
          $ref: '#/components/schemas/JobMetadata'
      required:
      - metadata
    DelimiterEnum:
      enum:
      - ','
      - \t
      - '|'
      - ;
      type: string
    ImportModeEnum:
      enum:
      - upsert
      - insert_only
      - delete
      - overwrite
      type: string
    PaginatedRecordList:
      type: object
      properties:
        object:
          type: string
          example: list
        total_count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        data:
          type: array
          items:
            $ref: '#/components/schemas/Record'
    BatchResult:
      type: object
      properties:
        created:
          type: array
          items:
            type: string
          description: Unique IDs of the created records.
        updated:
          type: array
          items:
            type: string
          description: Unique IDs of the updated records.
        deleted:
          type: array
          items:
            type: string
          description: Unique IDs of the deleted records.
      required:
      - created
      - deleted
      - updated
    DateFormatEnum:
      enum:
      - MM_DD_YYYY
      - DD_MM_YYYY
      - YYYY_MM_DD
      type: string
    JobMetadata:
      type: object
      properties:
        user_id:
          type: string
          format: uuid
          readOnly: true
          description: ID for the User who created this job.
        user_email:
          type: string
          format: uuid
          readOnly: true
          description: Email for the User who created this job.
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Date and time of creation.
        updated_at:
          type: string
          format: date-time
          readOnly: true
          description: Date and time of last update.
        aggregation_id:
          type: string
          format: uuid
          readOnly: true
          description: ID by which multiple jobs may be grouped together.
    ObjectTypeEnum:
      enum:
      - records
      - test_records
      - object_model_records
      - hierarchies
      - hierarchies_api
      - employee_assumptions
      - employee_visibility
      - sfdc_report_metadata
      - quota_worksheets
      - unified_employee_assumptions
      - people
      - unified_worksheet_records
      - records_api
      - dispute_attachment
      - docusign_file
      - organization_logo
      - attributes
      - picklist_options
      - plan_document
      - plan_document_template
      - bulk_plan_document_index_template
      - spm_worksheet
      type: string
    DataWorksheet:
      type: object
      properties:
        object:
          type: string
          readOnly: true
          default: data_worksheet
          description: Optional. Object type name.
        id:
          type: string
          readOnly: true
          description: Primary key, a UUID.
        type:
          type: string
          readOnly: true
          description: Worksheet type.
        name:
          type: string
          description: Worksheet name.
        description:
          type: string
          description: Worksheet description.
        workbook:
          type: string
          format: uuid
          readOnly: true
          description: Worksheet's associated data workbook UUID.
        workbook_name:
          type: string
          readOnly: true
          description: Worksheet's associated data workbook name.
        columns:
          type: array
          items:
            $ref: '#/components/schemas/ColumnListItem'
          readOnly: true
          description: Worksheet columns.
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Date and time of creation.
        updated_at:
          type: string
          format: date-time
          readOnly: true
          description: Date and time of last update.
      required:
      - description
      - name
    Record:
      type: object
      properties:
        object:
          type: string
          readOnly: true
          default: record
          description: Optional. Object type name.
        id:
          type: string
          readOnly: true
          description: Primary key, a UUID.
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Date and time of creation.
        updated_at:
          type: string
          format: date-time
          readOnly: true
          description: Date and time of last update.
        data:
          type: object
          additionalProperties: {}
          description: Column data for the record.
      required:
      - data
    ColumnListItem:
      type: object
      properties:
        object:
          type: string
          readOnly: true
          default: column
          description: Optional. Object type name.
        id:
          type: string
          readOnly: true
          description: Primary key, a UUID.
        name:
          type: string
          description: Column name.
        description:
          type: string
          description: Column description.
        variant:
          type: string
          description: Column variant, e.g. raw or derived.
        data_type:
          type: string
          description: Column data type, e.g. number or date.
        format:
          description: Column display format.
        formula:
          type: string
          readOnly: true
          description: Column formula.
        read_only:
          type: boolean
          readOnly: true
          description: Whether or not the column is read only.
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Date and time of creation.
        updated_at:
          type: string
          format: date-time
          readOnly: true
          description: Date and time of last update.
      required:
      - data_type
      - description
      - format
      - name
      - variant
    DataWorksheetImportParams:
      type: object
      properties:
        import_mode:
          allOf:
          - $ref: '#/components/schemas/ImportModeEnum'
          description: 'Mode for our import. Valid choices are: `upsert`, `insert_only`, `overwrite` and `delete`.'
        data_mappings:
          type: object
          additionalProperties:
            type: string
          description: 'Dictionary that optionally maps `{ "CaptivateIQ Column Name": "CSV Header" }`. By default we try  to do an exact match with column name, but will use the provided mappings if names differ.'
        load_all_columns:
          type: boolean
          default: true
          description: Whether to load columns that are not specified in the data mappings. If false, only columns specified in data mappings will be loaded, and the rest will be ignored. If true, we will attempt to load all columns, using data mappings for columns that are mapped and column names for columns that are not mapped.
      required:
      - data_mappings
      - import_mode
    PaginatedDataWorksheetList:
      type: object
      properties:
        object:
          type: string
          example: list
        total_count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        data:
          type: array
          items:
            $ref: '#/components/schemas/DataWorksheet'
    Upload:
      type: object
      properties:
        object:
          type: string
          readOnly: true
          default: upload
          description: Optional. Object type name.
        id:
          type: string
          readOnly: true
          description: Primary key, a UUID.
        url:
          type: string
          readOnly: true
          description: URL to retrieve upload details and status.
        object_type:
          allOf:
          - $ref: '#/components/schemas/ObjectTypeEnum'
          readOnly: true
          description: Upload type.
        file_name:
          type: string
          description: File name including extension, e.g. "my-file.csv".
        encoding:
          type: string
          description: The file's encoding, e.g. "utf-8".
        date_format:
          allOf:
          - $ref: '#/components/schemas/DateFormatEnum'
          description: The file's format for all date fields
        delimiter:
          allOf:
          - $ref: '#/components/schemas/DelimiterEnum'
          description: The file's delimiter
        status:
          type: string
          readOnly: true
          description: Upload status, whether or not it has been processed.
        params:
          readOnly: true
          description: Upload parameters.
        details:
          type: object
          additionalProperties: {}
          readOnly: true
          description: Upload details, such as a presigned url if it's pending processing, or job details if it's processed.
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Date and time of creation.
        updated_at:
          type: string
          format: date-time
          readOnly: true
          description: Date and time of last update.
      required:
      - date_format
      - delimiter
      - encoding
      - file_name
    DataWorksheetImportCSVRequest:
      type: object
      properties:
        file_name:
          type: string
          description: File name for the uploaded file, e.g. `my-file.csv`. We currently only support CSV files.
          pattern: \.csv$
        encoding:
          type: string
          description: Optional. The file's encoding, by default we assume `utf-8`, `utf-16` or `iso-8859-1`. See [here](https://docs.python.org/3.8/library/codecs.html#standard-encodings) for the full list of supported encodings.
        date_format:
          allOf:
          - $ref: '#/components/schemas/DateFormatEnum'
          description: 'Optional. The file''s format for all date fields, by default we assume the organization''s `Default Input Date Format` setting.  Valid choices are: `MM_DD_YYYY`, `DD_MM_YYYY`, and `YYYY_MM_DD`.'
        delimiter:
          allOf:
          - $ref: '#/components/schemas/DelimiterEnum'
          description: 'Optional. The file''s delimiter, by default we assume `,`. Valid choices are: `,`, `\t`, `|` and `;`.'
        params:
          allOf:
          - $ref: '#/components/schemas/DataWorksheetImportParams'
          description: Parameters for the data worksheet upload.
      required:
      - file_name
      - params
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"