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

# File import status

> Accepted, duplicate and rejected rows of a file import.



## OpenAPI

````yaml openapi/en/cell.json GET /v1/ingest/files/{import_id}
openapi: 3.1.0
info:
  title: Niadra data API
  version: '1'
  description: >-
    Writing, context, history, objects, identity, privacy and governance of one
    space. Every space has a stable address, with the space and the region in
    its name.
servers:
  - url: https://{space}.{region}.api.niadra.com
    variables:
      space:
        default: acme-prod
        description: The space, which comes in the source key.
      region:
        default: us-east-1
        description: The region of the space, which also comes in the key.
security: []
paths:
  /v1/ingest/files/{import_id}:
    get:
      tags:
        - ingest
      summary: File import status
      description: >-
        Follows a file import started with `POST /v1/ingest/files`: status, how
        many records were accepted, duplicated or rejected, and the first 100
        rejected rows with the reason. Values from the file are never echoed
        back.


        **Authentication.** Source key: `Authorization: Bearer nia_sk_...`.
        Required scope: `track`.
      operationId: file_import_v1_ingest_files__import_id__get
      parameters:
        - in: path
          name: import_id
          required: true
          schema:
            format: uuid
            title: Import Id
            type: string
          description: The `import_id` returned when the file was sent.
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileImportOut'
              example:
                import_id: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e0a
                format: csv
                status: completed
                size_bytes: 1842201
                sha256: >-
                  9c1e5a7b3d2f40e18a6b5c4d3e2f1a0b9c8d7e6f5a4b3c2d1e0f9a8b7c6d5e4f
                records: 20412
                accepted: 20377
                duplicates: 31
                rejected: 4
                errors:
                  - row: 1882
                    code: invalid_input
                    detail: phone_e164 is not in international format
                created_at: '2026-09-22T12:00:04Z'
                finished_at: '2026-09-22T12:01:39Z'
          description: The import, as it stands now.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: The request does not match the contract.
      security:
        - sourceKey: []
components:
  schemas:
    FileImportOut:
      additionalProperties: false
      description: >-
        `POST /v1/ingest/files` answers 202 with this; `GET
        /v1/ingest/files/{import_id}` follows it.
      properties:
        accepted:
          title: Accepted
          type: integer
        created_at:
          format: date-time
          title: Created At
          type: string
        duplicates:
          title: Duplicates
          type: integer
        errors:
          description: The first 100 rejected rows; values are never echoed.
          items:
            $ref: '#/components/schemas/RowError'
          title: Errors
          type: array
        finished_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Finished At
        format:
          enum:
            - csv
            - jsonl
          title: Format
          type: string
        import_id:
          format: uuid
          title: Import Id
          type: string
        records:
          description: Records in the file, blank lines included.
          title: Records
          type: integer
        rejected:
          title: Rejected
          type: integer
        sha256:
          title: Sha256
          type: string
        size_bytes:
          title: Size Bytes
          type: integer
        status:
          enum:
            - queued
            - running
            - completed
            - failed
          title: Status
          type: string
      required:
        - import_id
        - status
        - format
        - size_bytes
        - sha256
        - records
        - accepted
        - duplicates
        - rejected
        - errors
        - created_at
      title: FileImportOut
      type: object
    Problem:
      additionalProperties: false
      description: RFC 9457 problem details; `code` comes from the versioned error catalog.
      properties:
        code:
          title: Code
          type: string
        detail:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Detail
        request_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Request Id
        status:
          title: Status
          type: integer
        title:
          title: Title
          type: string
        type:
          default: about:blank
          title: Type
          type: string
      required:
        - title
        - status
        - code
      title: Problem
      type: object
    RowError:
      additionalProperties: false
      properties:
        code:
          title: Code
          type: string
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
        row:
          description: 1-based row of the file, header excluded; 0 for the whole import.
          title: Row
          type: integer
      required:
        - row
        - code
      title: RowError
      type: object
  securitySchemes:
    sourceKey:
      type: http
      scheme: bearer
      description: nia_sk_...

````