---
title: "Ingest a document via a standalone source API key"
method: POST
path: "/v1/ingest"
tags: ["Sources"]
---

# Ingest a document via a standalone source API key

`POST /v1/ingest`

## Request

- Base URL: `https://api.talonic.com`
- URL: `https://api.talonic.com/v1/ingest`
- Auth: HTTP bearer

Multipart upload of one document (≤50 MB), authenticated by a source's own `Authorization: Bearer tlnc_...` API key — no source id in the path, the key resolves it. Duplicate files (by content hash) return a `duplicate` status with the existing document's id. A narrower sibling of `POST /v1/sources/{id}/documents`: the queued response has no `processing_mode`/`source_id`, and `links` carries only `document` (no `source` link).

## Response `200`

Document ingested (or duplicate detected).

- object
  - `document_id` string, uuid: When status is `duplicate`, the id of the linked-duplicate row created for this upload (see `existing_document_id` for the canonical).
  - `filename` string: The uploaded file's own name.
  - `size_bytes` integer, nullable: The uploaded file's own size in bytes.
  - `status` 'queued' | 'duplicate'
  - `existing_document_id` string, uuid, nullable: Present when status is duplicate — the canonical document this upload deduplicated to.
  - `message` string: Present when status is duplicate.
  - `links` object
    - `document` string

## Other responses

- `400`: The request is invalid.
- `401`: Missing or invalid API key.
- `413`: The uploaded file exceeds the size limit.

---

[API](https://skmtc.dev/talonic/apis/talonic-api.md) · [All operations](https://skmtc.dev/talonic/apis/talonic-api/llms.txt) · [OpenAPI document](https://skmtc.dev/talonic/apis/talonic-api/revisions/678fe5f8c9c3?raw)
