> ## Documentation Index
> Fetch the complete documentation index at: https://docs.canary.effectiveai.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Confirm an objection document upload

> Save the uploaded file to this objection and return its ID and name. Retry the same token before expiry to revalidate and confirm the current uploaded bytes. An unchanged registered file version preserves its index state. Repeating PUT can replace the bytes and completion refreshes indexing. An overlapping completion can return 409; retry the same token. Current objection edit access is required. Does not create objection items, run triage or notify an agent.



## OpenAPI

````yaml /openapi.json post /objections/{id}/uploads/complete
openapi: 3.0.3
info:
  title: Effective API
  version: 2.0.0
  description: The public Effective REST API. Authenticate using an Effective API key.
servers:
  - url: https://api.canary.effectiveai.app/api/v2
    description: Canary
security:
  - bearerAuth: []
paths:
  /objections/{id}/uploads/complete:
    post:
      tags:
        - Objections
      summary: Confirm an objection document upload
      description: >-
        Save the uploaded file to this objection and return its ID and name.
        Retry the same token before expiry to revalidate and confirm the current
        uploaded bytes. An unchanged registered file version preserves its index
        state. Repeating PUT can replace the bytes and completion refreshes
        indexing. An overlapping completion can return 409; retry the same
        token. Current objection edit access is required. Does not create
        objection items, run triage or notify an agent.
      operationId: completeObjectionUpload
      parameters:
        - schema:
            type: string
            format: uuid
          required: true
          name: id
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V2ObjectionUploadComplete'
      responses:
        '200':
          description: The file is available in this objection’s documents.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2ObjectionUploadedFile'
        '400':
          description: >-
            Invalid parameters, cursor or completion token;
            invalid_upload_content means correct the file and start a new
            upload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '403':
          description: >-
            Current record, destination or file permissions do not permit this
            operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '404':
          description: >-
            Objection or document is missing, inaccessible or not attached to
            this objection.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '409':
          description: >-
            Read-only filing, document belongs to another owner, upload not
            ready, or concurrent file change. Copy an owned file explicitly;
            retry concurrent completion after it finishes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '413':
          description: Request exceeds 32 KiB.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '415':
          description: Content-Type must be application/json.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '500':
          description: Unexpected server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '503':
          description: Temporarily unavailable. Retry-After is in seconds.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
      security:
        - bearerAuth: []
components:
  schemas:
    V2ObjectionUploadComplete:
      type: object
      properties:
        uploadToken:
          type: string
          minLength: 1
          maxLength: 16384
          description: >-
            Opaque upload token. Return it unchanged to the completion endpoint
            for this objection within one hour.
      required:
        - uploadToken
      additionalProperties: false
    V2ObjectionUploadedFile:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: File ID. Read metadata or download through /files/{id}.
        name:
          type: string
          description: Saved filename, including any suffix added to avoid a collision.
        sizeBytes:
          type: integer
          minimum: 0
        mimeType:
          type: string
      required:
        - id
        - name
        - sizeBytes
        - mimeType
      additionalProperties: false
    V2CodedError:
      allOf:
        - $ref: '#/components/schemas/V2Error'
        - type: object
          properties:
            code:
              type: string
              minLength: 1
              description: Stable error code. Clients must tolerate unknown future codes.
            details:
              type: array
              items:
                type: object
                properties:
                  location:
                    type: string
                    enum:
                      - path
                      - query
                      - header
                      - body
                  path:
                    type: array
                    items:
                      type: string
                      maxLength: 64
                    maxItems: 12
                  code:
                    type: string
                    enum:
                      - required
                      - invalid_type
                      - invalid_value
                      - unknown_field
                  message:
                    type: string
                    minLength: 1
                    maxLength: 200
                required:
                  - location
                  - path
                  - code
                  - message
              minItems: 1
              maxItems: 20
              description: Bounded safe validation issues; may omit some invalid fields.
            requestId:
              type: string
              minLength: 1
              maxLength: 128
              description: >-
                Existing server correlation for this HTTP attempt, when
                available.
            dataset:
              type: string
              enum:
                - naic
                - osha
              description: Dataset needed for dataset_not_enabled.
            businessCode:
              type: string
              description: The rater’s own refusal code, for business_rejection.
            violations:
              type: array
              items:
                type: object
                properties:
                  code:
                    type: string
                    description: Authored or built-in constraint code
                  message:
                    type: string
                    description: Authored message for the failed constraint
                  path:
                    type: string
                    description: Input path of the offending value; empty for the request
                  value:
                    nullable: true
                    description: Offending input value, size-bounded by the runtime
                  constraint:
                    type: string
                    description: The constraint the value failed, as text
                  cite:
                    type: string
                    nullable: true
                    description: >-
                      Filing citation of the constraint, when the source cites
                      one
                required:
                  - code
                  - message
                  - path
                  - value
                  - constraint
                  - cite
                additionalProperties: false
              maxItems: 256
              description: >-
                Each input constraint the submission failed, for invalid_inputs
                and business_rejection.
            violationsTruncated:
              type: boolean
              description: >-
                True when the rater reported more violations than violations
                holds.
            executionId:
              type: string
              description: >-
                The recorded execution of a failed rating, for rater rating
                failures.
            accessUrl:
              type: string
              nullable: true
              format: uri
              description: >-
                Where to add the product to your account, for
                product_access_required.
          required:
            - code
    V2Error:
      type: object
      properties:
        error:
          type: string
          minLength: 1
          description: Human-readable explanation of the failure.
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Effective API key. Send Authorization: Bearer sk-eai-...'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.