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

# Complete Upload



## OpenAPI

````yaml /openapi.json post /v1/wikis/{wiki_id}/uploads/{upload_id}/complete
openapi: 3.1.0
info:
  description: Versioned API for hosted Almanac wikis.
  title: Almanac V1 API
  version: 0.5.0
servers:
  - url: https://api.usealmanac.com
security:
  - bearerAuth: []
tags:
  - description: Session, onboarding, overview, and email preferences.
    name: Account
  - description: Workspace discovery and details.
    name: Workspaces
  - description: Wiki creation, listing, and details.
    name: Wikis
  - description: Wiki pages, search, topics, and provenance.
    name: Pages
  - description: Source records, trees, search, and original files.
    name: Sources
  - description: Source uploads and upload records.
    name: Uploads
  - description: Ingest and Garden jobs, events, and outcomes.
    name: Jobs
  - description: Workspace-scoped developer keys.
    name: API keys
  - description: Workspace membership and invitations.
    name: Members
  - description: Workspace plans, usage, and billing portal.
    name: Billing
paths:
  /v1/wikis/{wiki_id}/uploads/{upload_id}/complete:
    post:
      tags:
        - Uploads
      summary: Complete Upload
      operationId: complete_upload_v1_wikis__wiki_id__uploads__upload_id__complete_post
      parameters:
        - in: path
          name: wiki_id
          required: true
          schema:
            title: Wiki Id
            type: string
        - in: path
          name: upload_id
          required: true
          schema:
            title: Upload Id
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadResult'
          description: Successful Response
        '400':
          content:
            application/json:
              schema:
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  request_id:
                    type: string
                required:
                  - error
                  - message
                  - request_id
                type: object
          description: Invalid request
components:
  schemas:
    UploadResult:
      additionalProperties: false
      properties:
        imports:
          items:
            $ref: '#/components/schemas/ImportItem'
          title: Imports
          type: array
        job:
          anyOf:
            - $ref: '#/components/schemas/Job'
            - type: 'null'
        upload:
          $ref: '#/components/schemas/Upload'
      required:
        - upload
        - imports
        - job
      title: UploadResult
      type: object
    ImportItem:
      additionalProperties: false
      properties:
        duplicate_source_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Duplicate Source Id
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
        import_id:
          title: Import Id
          type: string
        mime_type:
          anyOf:
            - type: string
            - type: 'null'
          title: Mime Type
        name:
          title: Name
          type: string
        original_path:
          title: Original Path
          type: string
        sha256:
          title: Sha256
          type: string
        size_bytes:
          title: Size Bytes
          type: integer
        source_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Id
        status:
          enum:
            - pending
            - organized
            - duplicate
            - failed
          title: Status
          type: string
        status_label:
          title: Status Label
          type: string
        status_state:
          enum:
            - ready
            - running
            - failed
            - unknown
          title: Status State
          type: string
      required:
        - import_id
        - original_path
        - name
        - status
        - status_state
        - status_label
        - source_id
        - duplicate_source_id
        - error
        - mime_type
        - size_bytes
        - sha256
      title: ImportItem
      type: object
    Job:
      additionalProperties: false
      properties:
        created_at:
          title: Created At
          type: string
        current_step:
          anyOf:
            - type: string
            - type: 'null'
          title: Current Step
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
        finished_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Finished At
        job_id:
          title: Job Id
          type: string
        kind:
          enum:
            - ingest
            - garden
          title: Kind
          type: string
        started_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Started At
        status:
          enum:
            - queued
            - running
            - succeeded
            - failed
          title: Status
          type: string
        status_label:
          title: Status Label
          type: string
        status_state:
          enum:
            - queued
            - running
            - succeeded
            - failed
            - unknown
          title: Status State
          type: string
        summary:
          anyOf:
            - type: string
            - type: 'null'
          title: Summary
        title:
          anyOf:
            - type: string
            - type: 'null'
          title: Title
        updated_at:
          title: Updated At
          type: string
        wiki_id:
          title: Wiki Id
          type: string
      required:
        - job_id
        - wiki_id
        - kind
        - status
        - title
        - current_step
        - summary
        - error
        - status_state
        - status_label
        - created_at
        - updated_at
        - started_at
        - finished_at
      title: Job
      type: object
    Upload:
      additionalProperties: false
      properties:
        created_at:
          title: Created At
          type: string
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
        finished_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Finished At
        source_count:
          title: Source Count
          type: integer
        status:
          enum:
            - uploading
            - queued
            - completed
            - failed
          title: Status
          type: string
        status_label:
          title: Status Label
          type: string
        status_state:
          enum:
            - ready
            - running
            - failed
            - unknown
          title: Status State
          type: string
        summary:
          anyOf:
            - type: string
            - type: 'null'
          title: Summary
        updated_at:
          title: Updated At
          type: string
        upload_id:
          title: Upload Id
          type: string
        wiki_id:
          title: Wiki Id
          type: string
      required:
        - upload_id
        - wiki_id
        - status
        - status_state
        - status_label
        - source_count
        - summary
        - error
        - created_at
        - updated_at
        - finished_at
      title: Upload
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: Almanac access token or API key
      scheme: bearer
      type: http

````