Ingest
Reference
Ingest
Push documents directly into Repo without going through a connector.
POST
Ingest
Use this when you have a custom source not covered by Repo’s built-in connectors (e.g. an internal wiki, a proprietary CRM, a folder of PDFs in S3) and you want to feed its documents into Repo’s memory.Documentation Index
Fetch the complete documentation index at: https://docs.userepo.com/llms.txt
Use this file to discover all available pages before exploring further.
Required action
ingest
Body
Array of source documents to ingest. Min 1 entry.
Document fields
The connector this document belongs to. Create a connector first via the console, or contact support for a “virtual” connector for custom sources.
One of
slack, google_drive, notion, gmail. For custom sources, pick the one whose access model matches yours.One of
message, document, file.Stable ID from your source system. Repo dedupes on
(organizationId, provider, externalId) — re-posting with the same externalId is treated as an update.Human-facing title. Used in citations.
The full text content to embed.
Deep-link back to the source (will be returned in retrieval hits).
Original author’s name.
When the source was created at the provider.
When the source was last updated at the provider.
Arbitrary provider-specific metadata. If you want to preserve ACLs or other access policy data, include an
accessPolicy key — Repo’s retrieval will surface it back to the caller.Response
skipped counts documents that matched an existing externalId with identical content (no-op).
Example
When to use ingest vs. a connector
Use /v1/ingest when | Use a built-in connector when |
|---|---|
| You have a custom source not covered by connectors | The source is Slack, Drive, Notion, or Gmail |
| You want to control sync cadence yourself | You want hands-off, every-15-minute polling |
| You’re piping in data from an ETL pipeline you already run | You don’t want to maintain sync logic |