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

# Get upload status

> Read the upload's status and report.



## OpenAPI

````yaml openapi.json GET /uploads/{upload_id}
openapi: 3.1.0
info:
  description: Push purchase orders and invoices into Pascal.
  title: Pascal Custom Source API
  version: '1'
servers:
  - url: https://app.teampascal.com/api/v1/custom-source
security: []
paths:
  /uploads/{upload_id}:
    get:
      tags:
        - Uploads
      summary: Get upload status and results
      description: Read the upload's status and report.
      operationId: get_upload_uploads__upload_id__get
      parameters:
        - in: path
          name: upload_id
          required: true
          schema:
            title: Upload Id
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadResponse'
          description: Successful Response
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Not Found
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Service Unavailable
      security:
        - bearer: []
components:
  schemas:
    UploadResponse:
      properties:
        closed_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Closed At
        created_at:
          format: date-time
          title: Created At
          type: string
        datasource:
          title: Datasource
          type: string
        dry_run:
          title: Dry Run
          type: boolean
        error:
          anyOf:
            - $ref: '#/components/schemas/ErrorEnvelope'
            - type: 'null'
        finished_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Finished At
        merged_counts:
          anyOf:
            - $ref: '#/components/schemas/MergeResult'
            - type: 'null'
        mode:
          title: Mode
          type: string
        record_count:
          title: Record Count
          type: integer
        report:
          anyOf:
            - $ref: '#/components/schemas/ValidationReport'
            - type: 'null'
        status:
          $ref: '#/components/schemas/UploadStatus'
        upload_id:
          title: Upload Id
          type: string
      required:
        - upload_id
        - status
        - mode
        - dry_run
        - datasource
        - created_at
        - record_count
        - merged_counts
        - report
        - error
        - closed_at
        - finished_at
      title: UploadResponse
      type: object
    ErrorEnvelope:
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
      required:
        - error
      title: ErrorEnvelope
      type: object
    MergeResult:
      properties:
        deleted:
          title: Deleted
          type: integer
        inserted:
          title: Inserted
          type: integer
        updated:
          title: Updated
          type: integer
      required:
        - inserted
        - updated
        - deleted
      title: MergeResult
      type: object
    ValidationReport:
      additionalProperties: false
      properties:
        errors:
          items:
            $ref: '#/components/schemas/Finding'
          title: Errors
          type: array
        per_type:
          items:
            $ref: '#/components/schemas/TypeReport'
          title: Per Type
          type: array
        sampled:
          title: Sampled
          type: integer
        status:
          enum:
            - passed
            - failed
          title: Status
          type: string
      required:
        - errors
        - status
        - sampled
        - per_type
      title: ValidationReport
      type: object
    UploadStatus:
      enum:
        - in_progress
        - done
        - failed
        - expired
        - rejected
      title: UploadStatus
      type: string
    ErrorBody:
      properties:
        code:
          title: Code
          type: string
        details:
          $ref: '#/components/schemas/JsonValue'
        message:
          title: Message
          type: string
      required:
        - code
        - message
      title: ErrorBody
      type: object
    Finding:
      additionalProperties: false
      properties:
        details:
          $ref: '#/components/schemas/JsonValue'
        message:
          title: Message
          type: string
      required:
        - message
        - details
      title: Finding
      type: object
    TypeReport:
      additionalProperties: false
      properties:
        doc_type:
          title: Doc Type
          type: string
        errors:
          items:
            $ref: '#/components/schemas/Finding'
          title: Errors
          type: array
        sampled:
          title: Sampled
          type: integer
        shape_hash:
          title: Shape Hash
          type: string
        warnings:
          items:
            $ref: '#/components/schemas/Finding'
          title: Warnings
          type: array
      required:
        - doc_type
        - shape_hash
        - sampled
        - errors
        - warnings
      title: TypeReport
      type: object
    JsonValue: {}
  securitySchemes:
    bearer:
      scheme: bearer
      type: http

````