---
title: "Create ingestion job"
method: POST
path: "/api/agent/ingest"
tags: ["Ingest"]
---

# Create ingestion job

`POST /api/agent/ingest`

Returns 202 for new jobs or 200 for cached results (dedup hit).

## Request body

- IngestCreateRequest
  - `url` string, uri, required
  - `callback_url` string, uri

## Response `200`

Cached result (dedup hit)

- IngestCachedResponse
  - `id` string, uuid, required
  - `status` 'completed', required
  - `cached` true, required
  - `content_type` 'youtube_video' | 'web_article' | 'pdf_document' | 'audio_file' | 'podcast_episode', required
  - `source_url` string, uri, required
  - `summary` string, required
  - `metadata` IngestMetadata, required
    - `title` string, nullable
    - `author` string, nullable
    - `duration_seconds` integer, nullable
    - `published_at` string, nullable
    - `language` string, nullable
    - `tags` string[]
  - `word_count` integer, required
  - `credits_charged` integer, required
  - `file_url` string, uri, required

## Other responses

- `202` — New job created and processing. Poll GET /api/agent/ingest/{id} with the same Authorization: Bearer <AGENT_API_KEY> header for status.
- `400` — Bad request
- `401` — Unauthorized
- `402` — Insufficient credits
- `409` — Conflict
- `429` — Rate limit exceeded
- `500` — Internal server error

## Changes

> 28 revisions in range; 1 could not be searched.

- **2026-03-01** `2df2182b5901` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/citedy/apis/citedy-agent-api/changes/api/agent/ingest/post.md)

---

[API](https://skmtc.dev/citedy/apis/citedy-agent-api.md) · [All operations](https://skmtc.dev/citedy/apis/citedy-agent-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/citedy/citedy-agent-api/revisions/b5785d3fe446/schema)
