Unify Object Records API

Create, read, update, delete, upsert and find-unique the records of any Unify object, with a validation_mode dry-run for writes. 6 operation(s).

OpenAPI Specification

unify-object-records-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Unify Data Object Records API
  summary: Interact with objects, attributes, and records within the Unify platform.
  version: '1'
  termsOfService: https://www.unifygtm.com/legal/terms-and-conditions
  contact:
    name: Unify Support
    url: https://www.unifygtm.com/support
    email: support@unifygtm.com
servers:
- url: https://api.unifygtm.com
  variables: {}
security:
- ApiKeyAuth: []
tags:
- name: Object Records
paths:
  /data/v1/objects/{object_name}/records:
    post:
      operationId: create_object_record
      description: 'Create a record of an object. `data` must include every required

        attribute, and a value that duplicates an existing record''s unique

        attribute value is rejected with a conflict — use upsert instead when

        the record may already exist.'
      parameters:
      - name: object_name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/UObjects.UObjectName'
      - name: validation_mode
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/ValidationMode'
        explode: false
      responses:
        '201':
          description: Response for a successful create operation.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - data
                properties:
                  status:
                    type: string
                    enum:
                    - success
                  data:
                    type: object
                    required:
                    - object
                    - id
                    - created_at
                    - updated_at
                    - attributes
                    properties:
                      object:
                        type: string
                        description: The API name of the object this record is an instance of.
                        readOnly: true
                      id:
                        allOf:
                        - $ref: '#/components/schemas/UValues.UUuid'
                        description: Unique UUID identifier for the record.
                        readOnly: true
                      created_at:
                        type: string
                        format: date-time
                        description: Date and time the record was created.
                        readOnly: true
                      updated_at:
                        type: string
                        format: date-time
                        description: Date and time the record was last updated.
                        readOnly: true
                      attributes:
                        type: object
                        additionalProperties:
                          allOf:
                          - $ref: '#/components/schemas/UValues.UValue'
                          nullable: true
                        description: 'Attribute values for the record. Each key is the API name of the attribute

                          and each value is the corresponding attribute value for the record.'
                description: Response for a successful create operation.
        '400':
          description: Response for any operation that results in a bad request error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                properties:
                  status:
                    type: string
                    enum:
                    - bad_request
                    - record_missing_required_field
                    - referenced_record_not_found
                  errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UResponses.BadRequestError'
                  message:
                    type: string
                description: Response for any operation that results in a bad request error.
        '401':
          description: Response for any operation that results in an unauthorized error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - unauthorized
                  message:
                    type: string
                description: Response for any operation that results in an unauthorized error.
        '404':
          description: Response for any operation that results in a not found error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - object_not_found
                  message:
                    type: string
                description: Response for any operation that results in a not found error.
        '409':
          description: Response for any operation that results in a conflict error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - record_conflict
                  message:
                    type: string
                description: Response for any operation that results in a conflict error.
        '500':
          description: Response for any operation that results in an internal server error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - error
                  message:
                    type: string
                description: Response for any operation that results in an internal server error.
        '503':
          description: Response for any operation that results in service unavailability.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - service_unavailable
                  message:
                    type: string
                description: Response for any operation that results in service unavailability.
      tags:
      - Object Records
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRecordRequest'
      x-mcp-tool:
        destructiveHint: false
        openWorldHint: false
  /data/v1/objects/{object_name}/records/find-unique:
    post:
      operationId: find_unique_object_record
      description: 'Find a single record by attribute values. `match` must include at least

        one unique attribute so that at most one record can match; the response

        contains the matching record, or `null` data when none exists.'
      parameters:
      - name: object_name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/UObjects.UObjectName'
      responses:
        '200':
          description: Response for a successful get operation.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - data
                properties:
                  status:
                    type: string
                    enum:
                    - success
                  data:
                    type: object
                    required:
                    - object
                    - id
                    - created_at
                    - updated_at
                    - attributes
                    properties:
                      object:
                        type: string
                        description: The API name of the object this record is an instance of.
                        readOnly: true
                      id:
                        allOf:
                        - $ref: '#/components/schemas/UValues.UUuid'
                        description: Unique UUID identifier for the record.
                        readOnly: true
                      created_at:
                        type: string
                        format: date-time
                        description: Date and time the record was created.
                        readOnly: true
                      updated_at:
                        type: string
                        format: date-time
                        description: Date and time the record was last updated.
                        readOnly: true
                      attributes:
                        type: object
                        additionalProperties:
                          allOf:
                          - $ref: '#/components/schemas/UValues.UValue'
                          nullable: true
                        description: 'Attribute values for the record. Each key is the API name of the attribute

                          and each value is the corresponding attribute value for the record.'
                    nullable: true
                description: Response for a successful get operation.
        '400':
          description: Response for any operation that results in a bad request error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                properties:
                  status:
                    type: string
                    enum:
                    - bad_request
                  errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UResponses.BadRequestError'
                  message:
                    type: string
                description: Response for any operation that results in a bad request error.
        '401':
          description: Response for any operation that results in an unauthorized error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - unauthorized
                  message:
                    type: string
                description: Response for any operation that results in an unauthorized error.
        '404':
          description: Response for any operation that results in a not found error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - object_not_found
                  message:
                    type: string
                description: Response for any operation that results in a not found error.
        '500':
          description: Response for any operation that results in an internal server error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - error
                  message:
                    type: string
                description: Response for any operation that results in an internal server error.
      tags:
      - Object Records
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FindUniqueRecordRequest'
      x-mcp-tool:
        readOnlyHint: true
        openWorldHint: false
  /data/v1/objects/{object_name}/records/upsert:
    post:
      operationId: upsert_object_record
      description: 'Create or update a record depending on whether one already exists. The

        `match` values (which must include at least one unique attribute) find

        the existing record, and the `create` / `update` / `*_if_empty` property

        groups control which attribute values apply in each case. This is the

        recommended way to write records that may already exist.'
      parameters:
      - name: object_name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/UObjects.UObjectName'
      - name: validation_mode
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/ValidationMode'
        explode: false
      responses:
        '200':
          description: Response for a successful update operation.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - data
                properties:
                  status:
                    type: string
                    enum:
                    - success
                  data:
                    type: object
                    required:
                    - object
                    - id
                    - created_at
                    - updated_at
                    - attributes
                    properties:
                      object:
                        type: string
                        description: The API name of the object this record is an instance of.
                        readOnly: true
                      id:
                        allOf:
                        - $ref: '#/components/schemas/UValues.UUuid'
                        description: Unique UUID identifier for the record.
                        readOnly: true
                      created_at:
                        type: string
                        format: date-time
                        description: Date and time the record was created.
                        readOnly: true
                      updated_at:
                        type: string
                        format: date-time
                        description: Date and time the record was last updated.
                        readOnly: true
                      attributes:
                        type: object
                        additionalProperties:
                          allOf:
                          - $ref: '#/components/schemas/UValues.UValue'
                          nullable: true
                        description: 'Attribute values for the record. Each key is the API name of the attribute

                          and each value is the corresponding attribute value for the record.'
                description: Response for a successful update operation.
        '400':
          description: Response for any operation that results in a bad request error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                properties:
                  status:
                    type: string
                    enum:
                    - bad_request
                    - record_missing_required_field
                    - referenced_record_not_found
                  errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UResponses.BadRequestError'
                  message:
                    type: string
                description: Response for any operation that results in a bad request error.
        '401':
          description: Response for any operation that results in an unauthorized error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - unauthorized
                  message:
                    type: string
                description: Response for any operation that results in an unauthorized error.
        '404':
          description: Response for any operation that results in a not found error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - object_not_found
                  message:
                    type: string
                description: Response for any operation that results in a not found error.
        '409':
          description: Response for any operation that results in a conflict error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - record_conflict
                  message:
                    type: string
                description: Response for any operation that results in a conflict error.
        '500':
          description: Response for any operation that results in an internal server error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - error
                  message:
                    type: string
                description: Response for any operation that results in an internal server error.
        '503':
          description: Response for any operation that results in service unavailability.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - service_unavailable
                  message:
                    type: string
                description: Response for any operation that results in service unavailability.
      tags:
      - Object Records
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertRecordRequest'
      x-mcp-tool:
        idempotentHint: true
        openWorldHint: false
  /data/v1/objects/{object_name}/records/{record_id}:
    get:
      operationId: get_object_record
      description: Get a single record by its ID.
      parameters:
      - name: object_name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/UObjects.UObjectName'
      - name: record_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Response for a successful get operation.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - data
                properties:
                  status:
                    type: string
                    enum:
                    - success
                  data:
                    type: object
                    required:
                    - object
                    - id
                    - created_at
                    - updated_at
                    - attributes
                    properties:
                      object:
                        type: string
                        description: The API name of the object this record is an instance of.
                        readOnly: true
                      id:
                        allOf:
                        - $ref: '#/components/schemas/UValues.UUuid'
                        description: Unique UUID identifier for the record.
                        readOnly: true
                      created_at:
                        type: string
                        format: date-time
                        description: Date and time the record was created.
                        readOnly: true
                      updated_at:
                        type: string
                        format: date-time
                        description: Date and time the record was last updated.
                        readOnly: true
                      attributes:
                        type: object
                        additionalProperties:
                          allOf:
                          - $ref: '#/components/schemas/UValues.UValue'
                          nullable: true
                        description: 'Attribute values for the record. Each key is the API name of the attribute

                          and each value is the corresponding attribute value for the record.'
                description: Response for a successful get operation.
        '400':
          description: Response for any operation that results in a bad request error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                properties:
                  status:
                    type: string
                    enum:
                    - bad_request
                  errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UResponses.BadRequestError'
                  message:
                    type: string
                description: Response for any operation that results in a bad request error.
        '401':
          description: Response for any operation that results in an unauthorized error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - unauthorized
                  message:
                    type: string
                description: Response for any operation that results in an unauthorized error.
        '404':
          description: Response for any operation that results in a not found error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - object_not_found
                    - record_not_found
                  message:
                    type: string
                description: Response for any operation that results in a not found error.
        '500':
          description: Response for any operation that results in an internal server error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - error
                  message:
                    type: string
                description: Response for any operation that results in an internal server error.
      tags:
      - Object Records
      x-mcp-tool:
        readOnlyHint: true
        openWorldHint: false
    patch:
      operationId: update_object_record
      description: 'Update a record by its ID. Only the attributes present in `data` are

        changed; other attribute values are left untouched.'
      parameters:
      - name: object_name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/UObjects.UObjectName'
      - name: record_id
        in: path
        required: true
        schema:
          type: string
      - name: validation_mode
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/ValidationMode'
        explode: false
      responses:
        '200':
          description: Response for a successful update operation.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - data
                properties:
                  status:
                    type: string
                    enum:
                    - success
                  data:
                    type: object
                    required:
                    - object
                    - id
                    - created_at
                    - updated_at
                    - attributes
                    properties:
                      object:
                        type: string
                        description: The API name of the object this record is an instance of.
                        readOnly: true
                      id:
                        allOf:
                        - $ref: '#/components/schemas/UValues.UUuid'
                        description: Unique UUID identifier for the record.
                        readOnly: true
                      created_at:
                        type: string
                        format: date-time
                        description: Date and time the record was created.
                        readOnly: true
                      updated_at:
                        type: string
                        format: date-time
                        description: Date and time the record was last updated.
                        readOnly: true
                      attributes:
                        type: object
                        additionalProperties:
                          allOf:
                          - $ref: '#/components/schemas/UValues.UValue'
                          nullable: true
                        description: 'Attribute values for the record. Each key is the API name of the attribute

                          and each value is the corresponding attribute value for the record.'
                description: Response for a successful update operation.
        '400':
          description: Response for any operation that results in a bad request error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                properties:
                  status:
                    type: string
                    enum:
                    - bad_request
                    - record_missing_required_field
                    - referenced_record_not_found
                  errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UResponses.BadRequestError'
                  message:
                    type: string
                description: Response for any operation that results in a bad request error.
        '401':
          description: Response for any operation that results in an unauthorized error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - unauthorized
                  message:
                    type: string
                description: Response for any operation that results in an unauthorized error.
        '404':
          description: Response for any operation that results in a not found error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - object_not_found
                    - record_not_found
                  message:
                    type: string
                description: Response for any operation that results in a not found error.
        '409':
          description: Response for any operation that results in a conflict error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - record_conflict
                  message:
                    type: string
                description: Response for any operation that results in a conflict error.
        '500':
          description: Response for any operation that results in an internal server error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - error
                  message:
                    type: string
                description: Response for any operation that results in an internal server error.
        '503':
          description: Response for any operation that results in service unavailability.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - service_unavailable
                  message:
                    type: string
                description: Response for any operation that results in service unavailability.
      tags:
      - Object Records
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRecordRequest'
      x-mcp-tool:
        idempotentHint: true
        openWorldHint: false
    delete:
      operationId: delete_object_record
      description: Delete a record by its ID.
      parameters:
      - name: object_name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/UObjects.UObjectName'
      - name: record_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Response for a successful delete operation.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                properties:
                  status:
                    type: string
                    enum:
                    - success
                description: Response for a successful delete operation.
        '400':
          description: Response for any operation that results in a bad request error.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
         

# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/unify/refs/heads/main/openapi/unify-object-records-api-openapi.yml