Argilla records API

The records API from Argilla — 3 operation(s) for records.

OpenAPI Specification

argilla-records-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Argilla v1 Authentication records API
  description: Argilla Server API v1
  version: 2.8.0
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  contact:
    email: contact@argilla.io
    url: https://argilla.io
servers:
- url: https://argilla.io/api/v1
  description: Argilla REST API v1
tags:
- name: records
paths:
  /records/{record_id}:
    get:
      tags:
      - records
      summary: Get Record
      operationId: get_record_records__record_id__get
      security:
      - APIKeyHeader: []
      - HTTPBearer: []
      parameters:
      - name: record_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Record Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
        '400':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::MissingDatasetRecordsError
                  params:
                    extra: error parameters
          description: Bad Request
        '404':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::EntityNotFoundError
                  params:
                    extra: error parameters
          description: Not Found
        '403':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::ForbiddenOperationError
                  params:
                    extra: error parameters
          description: Forbidden
        '409':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::EntityAlreadyExistsError
                  params:
                    extra: error parameters
          description: Conflict
        '422':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::ValidationError
                  params:
                    extra: error parameters
          description: Unprocessable Content
        '500':
          content:
            application/json:
              example:
                detail:
                  code: builtins.TypeError
          description: Internal Server Error
    patch:
      tags:
      - records
      summary: Update Record
      operationId: update_record_records__record_id__patch
      security:
      - APIKeyHeader: []
      - HTTPBearer: []
      parameters:
      - name: record_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Record Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
        '400':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::MissingDatasetRecordsError
                  params:
                    extra: error parameters
          description: Bad Request
        '404':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::EntityNotFoundError
                  params:
                    extra: error parameters
          description: Not Found
        '403':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::ForbiddenOperationError
                  params:
                    extra: error parameters
          description: Forbidden
        '409':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::EntityAlreadyExistsError
                  params:
                    extra: error parameters
          description: Conflict
        '422':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::ValidationError
                  params:
                    extra: error parameters
          description: Unprocessable Content
        '500':
          content:
            application/json:
              example:
                detail:
                  code: builtins.TypeError
          description: Internal Server Error
    delete:
      tags:
      - records
      summary: Delete Record
      operationId: delete_record_records__record_id__delete
      security:
      - APIKeyHeader: []
      - HTTPBearer: []
      parameters:
      - name: record_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Record Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
        '400':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::MissingDatasetRecordsError
                  params:
                    extra: error parameters
          description: Bad Request
        '404':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::EntityNotFoundError
                  params:
                    extra: error parameters
          description: Not Found
        '403':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::ForbiddenOperationError
                  params:
                    extra: error parameters
          description: Forbidden
        '409':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::EntityAlreadyExistsError
                  params:
                    extra: error parameters
          description: Conflict
        '422':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::ValidationError
                  params:
                    extra: error parameters
          description: Unprocessable Content
        '500':
          content:
            application/json:
              example:
                detail:
                  code: builtins.TypeError
          description: Internal Server Error
  /records/{record_id}/responses:
    post:
      tags:
      - records
      summary: Create Record Response
      operationId: create_record_response_records__record_id__responses_post
      security:
      - APIKeyHeader: []
      - HTTPBearer: []
      parameters:
      - name: record_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Record Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResponseCreate'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '400':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::MissingDatasetRecordsError
                  params:
                    extra: error parameters
          description: Bad Request
        '404':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::EntityNotFoundError
                  params:
                    extra: error parameters
          description: Not Found
        '403':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::ForbiddenOperationError
                  params:
                    extra: error parameters
          description: Forbidden
        '409':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::EntityAlreadyExistsError
                  params:
                    extra: error parameters
          description: Conflict
        '422':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::ValidationError
                  params:
                    extra: error parameters
          description: Unprocessable Content
        '500':
          content:
            application/json:
              example:
                detail:
                  code: builtins.TypeError
          description: Internal Server Error
  /records/{record_id}/suggestions:
    get:
      tags:
      - records
      summary: Get Record Suggestions
      operationId: get_record_suggestions_records__record_id__suggestions_get
      security:
      - APIKeyHeader: []
      - HTTPBearer: []
      parameters:
      - name: record_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Record Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Suggestions'
        '400':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::MissingDatasetRecordsError
                  params:
                    extra: error parameters
          description: Bad Request
        '404':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::EntityNotFoundError
                  params:
                    extra: error parameters
          description: Not Found
        '403':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::ForbiddenOperationError
                  params:
                    extra: error parameters
          description: Forbidden
        '409':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::EntityAlreadyExistsError
                  params:
                    extra: error parameters
          description: Conflict
        '422':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::ValidationError
                  params:
                    extra: error parameters
          description: Unprocessable Content
        '500':
          content:
            application/json:
              example:
                detail:
                  code: builtins.TypeError
          description: Internal Server Error
    put:
      tags:
      - records
      summary: Create or update a suggestion
      operationId: upsert_suggestion_records__record_id__suggestions_put
      security:
      - APIKeyHeader: []
      - HTTPBearer: []
      parameters:
      - name: record_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Record Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SuggestionCreate'
      responses:
        '201':
          description: Suggestion created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Suggestion'
        '400':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::MissingDatasetRecordsError
                  params:
                    extra: error parameters
          description: Bad Request
        '404':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::EntityNotFoundError
                  params:
                    extra: error parameters
          description: Not Found
        '403':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::ForbiddenOperationError
                  params:
                    extra: error parameters
          description: Forbidden
        '409':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::EntityAlreadyExistsError
                  params:
                    extra: error parameters
          description: Conflict
        '422':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::ValidationError
                  params:
                    extra: error parameters
          description: Unprocessable Content
        '500':
          content:
            application/json:
              example:
                detail:
                  code: builtins.TypeError
          description: Internal Server Error
        '200':
          description: Suggestion updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Suggestion'
    delete:
      tags:
      - records
      summary: Delete suggestions for a record
      operationId: delete_record_suggestions_records__record_id__suggestions_delete
      security:
      - APIKeyHeader: []
      - HTTPBearer: []
      parameters:
      - name: record_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Record Id
      - name: ids
        in: query
        required: true
        schema:
          type: string
          description: A comma separated list with the IDs of the suggestions to be removed
          title: Ids
        description: A comma separated list with the IDs of the suggestions to be removed
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::MissingDatasetRecordsError
                  params:
                    extra: error parameters
          description: Bad Request
        '404':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::EntityNotFoundError
                  params:
                    extra: error parameters
          description: Not Found
        '403':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::ForbiddenOperationError
                  params:
                    extra: error parameters
          description: Forbidden
        '409':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::EntityAlreadyExistsError
                  params:
                    extra: error parameters
          description: Conflict
        '422':
          content:
            application/json:
              example:
                detail:
                  code: argilla.api.errors::ValidationError
                  params:
                    extra: error parameters
          description: Unprocessable Content
        '500':
          content:
            application/json:
              example:
                detail:
                  code: builtins.TypeError
          description: Internal Server Error
components:
  schemas:
    ChatFieldValue:
      properties:
        role:
          type: string
          maxLength: 20
          minLength: 1
          title: Role
        content:
          type: string
          maxLength: 20000
          minLength: 1
          title: Content
      type: object
      required:
      - role
      - content
      title: ChatFieldValue
    SuggestionType:
      type: string
      enum:
      - model
      - human
      title: SuggestionType
    RecordStatus:
      type: string
      enum:
      - pending
      - completed
      title: RecordStatus
    Record:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        status:
          $ref: '#/components/schemas/RecordStatus'
        fields:
          type: object
          title: Fields
        metadata:
          title: Metadata
          type: object
          nullable: true
        external_id:
          title: External Id
          type: string
          nullable: true
        responses:
          title: Responses
          items:
            $ref: '#/components/schemas/Response'
          type: array
          nullable: true
        suggestions:
          title: Suggestions
          items:
            $ref: '#/components/schemas/Suggestion'
          type: array
          nullable: true
        vectors:
          title: Vectors
          additionalProperties:
            items:
              type: number
            type: array
          type: object
          nullable: true
        dataset_id:
          type: string
          format: uuid
          title: Dataset Id
        inserted_at:
          type: string
          format: date-time
          title: Inserted At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
      - id
      - status
      - fields
      - dataset_id
      - inserted_at
      - updated_at
      title: Record
    SpanQuestionResponseValueItem:
      properties:
        label:
          type: string
          title: Label
        start:
          type: integer
          minimum: 0.0
          title: Start
        end:
          type: integer
          minimum: 1.0
          title: End
      type: object
      required:
      - label
      - start
      - end
      title: SpanQuestionResponseValueItem
    Suggestion:
      properties:
        question_id:
          type: string
          format: uuid
          title: Question Id
        type:
          $ref: '#/components/schemas/SuggestionType'
          nullable: true
        value:
          title: Value
        agent:
          title: Agent
          type: string
          nullable: true
        score:
          title: Score
          anyOf:
          - type: number
          - items:
              type: number
            type: array
          nullable: true
        id:
          type: string
          format: uuid
          title: Id
        inserted_at:
          type: string
          format: date-time
          title: Inserted At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
      - question_id
      - value
      - id
      - inserted_at
      - updated_at
      title: Suggestion
    SuggestionCreate:
      properties:
        question_id:
          type: string
          format: uuid
          title: Question Id
        type:
          $ref: '#/components/schemas/SuggestionType'
          nullable: true
        value:
          anyOf:
          - items:
              $ref: '#/components/schemas/SpanQuestionResponseValueItem'
            type: array
            maxItems: 10000
          - items:
              $ref: '#/components/schemas/RankingQuestionResponseValueItem'
            type: array
          - items:
              type: string
            type: array
          - type: integer
          - type: string
          title: Value
        agent:
          title: Agent
          description: Agent used to generate the suggestion
          type: string
          maxLength: 200
          minLength: 1
          pattern: ^[a-zA-Z0-9-_:\.\/\s]*[a-zA-Z0-9][a-zA-Z0-9-_:\.\/\s]*$
          nullable: true
        score:
          title: Score
          description: The score assigned to the suggestion
          anyOf:
          - type: number
          - items:
              type: number
            type: array
          nullable: true
      type: object
      required:
      - question_id
      - value
      title: SuggestionCreate
    Response:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        values:
          title: Values
          additionalProperties:
            $ref: '#/components/schemas/ResponseValue'
          type: object
          nullable: true
        status:
          $ref: '#/components/schemas/ResponseStatus'
        record_id:
          type: string
          format: uuid
          title: Record Id
        user_id:
          type: string
          format: uuid
          title: User Id
        inserted_at:
          type: string
          format: date-time
          title: Inserted At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
      - id
      - status
      - record_id
      - user_id
      - inserted_at
      - updated_at
      title: Response
    ResponseValueCreate:
      properties:
        value:
          anyOf:
          - items:
              $ref: '#/components/schemas/SpanQuestionResponseValueItem'
            type: array
            maxItems: 10000
          - items:
              $ref: '#/components/schemas/RankingQuestionResponseValueItem'
            type: array
          - items:
              type: string
            type: array
          - type: integer
          - type: string
          title: Value
      type: object
      required:
      - value
      title: ResponseValueCreate
    RankingQuestionResponseValueItem:
      properties:
        value:
          type: string
          title: Value
        rank:
          title: Rank
          type: integer
          nullable: true
      type: object
      required:
      - value
      title: RankingQuestionResponseValueItem
    ResponseValue:
      properties:
        value:
          title: Value
      type: object
      required:
      - value
      title: ResponseValue
    RecordUpdate:
      properties:
        fields:
          title: Fields
          additionalProperties:
            anyOf:
            - type: string
            - items:
                $ref: '#/components/schemas/ChatFieldValue'
              type: array
            - type: object
            nullable: true
          type: object
          nullable: true
        metadata:
          title: Metadata
          type: object
          nullable: true
        suggestions:
          title: Suggestions
          items:
            $ref: '#/components/schemas/SuggestionCreate'
          type: array
          nullable: true
        vectors:
          title: Vectors
          additionalProperties:
            items:
              type: number
            type: array
          type: object
          nullable: true
      type: object
      title: RecordUpdate
    Suggestions:
      properties:
        items:
          items:
            $ref: '#/components/schemas/Suggestion'
          type: array
          title: Items
      type: object
      required:
      - items
      title: Suggestions
    ResponseCreate:
      properties:
        values:
          title: Values
          additionalProperties:
            $ref: '#/components/schemas/ResponseValueCreate'
          type: object
          nullable: true
        status:
          $ref: '#/components/schemas/ResponseStatus'
      type: object
      required:
      - status
      title: ResponseCreate
    ResponseStatus:
      type: string
      enum:
      - draft
      - submitted
      - discarded
      title: ResponseStatus
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-Argilla-Api-Key
    HTTPBearer:
      type: http
      scheme: bearer