> ## 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.

# Importar um arquivo

> CSV de identidades ou JSONL com um item de lote por linha, processado em segundo plano.



## OpenAPI

````yaml openapi/pt/cell.json POST /v1/ingest/files
openapi: 3.1.0
info:
  title: API de dados da Niadra
  version: '1'
  description: >-
    Escrita, contexto, histórico, objetos, identidade, privacidade e governança
    de um espaço. Cada espaço tem um endereço estável, com o espaço e a região
    no nome.
servers:
  - url: https://{space}.{region}.api.niadra.com
    variables:
      space:
        default: acme-prod
        description: O espaço, que vem na chave de fonte.
      region:
        default: us-east-1
        description: A região do espaço, que também vem na chave.
security: []
paths:
  /v1/ingest/files:
    post:
      tags:
        - ingest
      summary: Importar um arquivo
      description: >-
        Um CSV que semeia a identidade (um `identify` por linha) ou um JSONL com
        um item de lote por linha. O corpo vai direto para o armazenamento de
        objetos; a tarefa de importação processa o arquivo, e a rota GET abaixo
        acompanha o andamento.


        **Autenticação.** Chave de fonte: `Authorization: Bearer nia_sk_...`.
        Escopo exigido: `track`.
      operationId: upload_file_v1_ingest_files_post
      requestBody:
        content:
          application/x-ndjson:
            schema:
              type: string
          text/csv:
            schema:
              type: string
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileImportOut'
              example:
                import_id: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e0a
                format: csv
                status: queued
                size_bytes: 1842201
                sha256: >-
                  9c1e5a7b3d2f40e18a6b5c4d3e2f1a0b9c8d7e6f5a4b3c2d1e0f9a8b7c6d5e4f
                records: 0
                accepted: 0
                duplicates: 0
                rejected: 0
                errors: []
                created_at: '2026-09-22T12:00:04Z'
                finished_at: null
          description: >-
            O arquivo está guardado e na fila; acompanhe com `GET
            /v1/ingest/files/{import_id}`.
      security:
        - sourceKey: []
components:
  schemas:
    FileImportOut:
      additionalProperties: false
      description: >-
        `POST /v1/ingest/files` responde 202 com isto; `GET
        /v1/ingest/files/{import_id}` acompanha o andamento.
      properties:
        accepted:
          title: Accepted
          type: integer
        created_at:
          format: date-time
          title: Created At
          type: string
        duplicates:
          title: Duplicates
          type: integer
        errors:
          description: >-
            As primeiras 100 linhas recusadas; os valores nunca voltam na
            resposta.
          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: Registros do arquivo, contando as linhas em branco.
          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
    RowError:
      additionalProperties: false
      properties:
        code:
          title: Code
          type: string
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
        row:
          description: >-
            Linha do arquivo, a partir de 1 e sem contar o cabeçalho; 0 para a
            importação inteira.
          title: Row
          type: integer
      required:
        - row
        - code
      title: RowError
      type: object
  securitySchemes:
    sourceKey:
      type: http
      scheme: bearer
      description: nia_sk_...

````