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

# Public Data

> Upload redistributable files that your agent can share directly with users.

<Info>
  **Field reference:** [`data_public`](/reference/data_public) — every field, type, default, and tier for this page.
</Info>

Public Data contains files your agent can send to users during conversations. Unlike internal data (which is used for retrieval only), public files can be presented or linked by the agent and downloaded by subscribers via the built-in `present_public_file`, `show_image`, and `show_file_excerpt` tools. Use this for brochures, guides, templates, images, data exports, and any other files you want the agent to distribute.

Public files are also indexed for retrieval, so the agent can search their contents the same way as internal data.

## Adding files

1. Open your agent and go to **Public Data** in the sidebar.
2. Drag and drop files onto the drop zone, or click it to browse.
3. The file uploads and starts indexing automatically — changes on this page save on their own (there is no Save button).

Documents are accepted; executables and scripts (`.exe`, `.dll`, `.bat`, …) are rejected. The maximum file size is set by your subscription plan and enforced on upload.

## Indexing status

After saving, each file shows a status badge as it is processed:

| Badge                                                 | Meaning                                                         |
| ----------------------------------------------------- | --------------------------------------------------------------- |
| **Uploading…**                                        | File picked locally, upload in progress.                        |
| **Queued** / **Queued (next)** / **Queued (N ahead)** | Waiting in the ingest queue.                                    |
| **Converting…**                                       | The source file is being converted to a searchable text format. |
| **Processing…**                                       | Chunks are being embedded and written to the retrieval store.   |
| **Loaded**                                            | Indexed and searchable by the agent.                            |
| **Error: …**                                          | Ingest failed; hover for details.                               |

Once **Loaded**, click the info icon next to a file to see its chunk count and total tokens.

## Chunking configuration

Public files are indexed for retrieval just like internal ones, so each file carries its own chunking config, opened from the **Chunking & metadata** control on the file's row. It controls how the file is split into the passages retrieval searches. Use the defaults unless retrieval quality is off; changes take effect the next time the file is (re-)processed.

* **Presets** bundle the three splitting knobs — pick **Default (Auto)**, **FAQ / Q\&A pairs** (256 tok · structural), **Manual / long-form prose** (1024 tok · 15% overlap), **Spreadsheet / CSV**, **Contract / legal** (768 tok · 20% overlap), or **Custom**.
* **Chunk size** (64–4096 tokens), **overlap** (0–50%) and **split strategy** (Auto / Fixed token / Recursive / Structural) can be tuned by hand.
* **Metadata per chunk** — a **Source type tag** plus optional source path, section title, page number, author and document date, for filtered retrieval.
* **Contextual enrichment** — optionally prepend a doc title / section path / summary header to each chunk before embedding, or supply a **Custom template** with the placeholders `{doc_title}`, `{section_path}`, `{summary}`, `{chunk}`.
* **Review chunks before ingest** — pause the pipeline to view, edit, split, merge or re-chunk before anything is embedded (see [Internal Data → Review chunks before ingest](/sidebar-menu/data-internal#review-chunks-before-ingest) for the full workflow).

### Examples — chunking

**Simple — an FAQ handout.** Upload a public FAQ and choose the **FAQ / Q\&A pairs** preset (256 tokens, structural). Each question/answer becomes its own compact chunk, so a user's question matches a single tidy passage the agent can quote back cleanly.

**Complex — a contract pack with cited passages.** Upload your standard contract and template documents, choose the **Contract / legal** preset (768 tokens, 20% overlap) so clause cross-references survive the split, and turn on **Contextual enrichment** with a custom template like `{doc_title} / {section_path}: {chunk}`. Each chunk now carries its document and clause path into the embedding, so a question like "what's the termination notice period?" retrieves the right clause and the agent can quote it with its heading intact.

## Per-file knowledge stores

Each file row has a collapsible **Knowledge stores** panel showing what has been built from that document:

* **Vector chunks** — the searchable passages; **View & edit chunks** lets you review, exclude, split, merge, or edit them.
* **Structured tables** — any tables detected in the file, kept as queryable grids the agent reads with the `query_table` tool.
* **Document folder** — a self-contained per-document bundle (full text, outline, tables, images) the agent browses with `list_documents` and `get_document`.

Knowledge graphs are built only from [Internal Data](/sidebar-menu/data-internal) documents, so that store does not appear here. If a store is missing, re-process the file to build it.

## Import from URL

The **Import from URL** card fetches a web page or document and indexes it like an uploaded file. Add a **Bearer token** for content behind an `Authorization: Bearer …` header, turn on **Include subtree** to crawl a whole same-site tree (sitemap-aware, `robots.txt` respected, up to your plan's page limit) as one expandable entry, and choose a **JavaScript rendering** mode (**Off / Auto / Always**) so single-page apps index their real content. Set a per-URL re-sync cadence (**Off / Daily / Weekly / Monthly**), or **Re-sync** / **Re-crawl** on demand; unchanged content is skipped. Because this is the public page, imported content is retrievable *and* quotable to users, so only crawl pages you are happy to redistribute.

## Services: ingest from SaaS connectors

<Info>
  The **Services** card requires the **Pro** tier or above.
</Info>

The **Services** card ingests records from SaaS tools you have connected on the **Connectors** page: pick a **Connector**, a **Service** and **What to ingest**, optionally add a **Filter**, include/exclude terms and an item cap, or use **Custom mapping (any list tool)** to map an arbitrary REST or GraphQL list endpoint. Each source occupies one file slot. Public-scope service content may be quoted to users, so ingest only what you are comfortable sharing.

## External knowledge sources

The **External knowledge sources (public)** card connects a vector store or search index you already own — **AWS Bedrock Knowledge Bases**, **Azure AI Search**, **Google Vertex AI Search**, **OpenAI Vector Stores**, **Pinecone**, **Weaviate**, or a GitHub-hosted **Obsidian** vault. The agent searches it live on every turn (and on demand via its `search_knowledge_base` tool) and, because it is configured on the public page, may quote or cite the retrieved passages to users — including whole excerpts fetched with `read_knowledge_document`. Your data stays in your store; it is queried live, never copied into Agentheya. Credentials are encrypted at rest.

## How the agent uses public files

The agent has built-in tools for surfacing public files in chat:

* `present_public_file` — shows a download card for a named file.
* `show_image` — renders an image inline in the conversation.
* `show_file_excerpt` — quotes a specific line range from a text file.

Public files are also part of the agent's retrieval pool, so it can answer questions whose answers live inside them.

## Examples

**Simple — share a brochure.** Upload your product brochure PDF. When a user asks for it, the agent uses `present_public_file` to show a download card. The user clicks and gets the file.

**Medium — an illustrated answer.** Upload diagrams and your spec doc. The agent answers "how do I set this up?" from the spec (retrieval) and uses `show_image` to render the relevant setup diagram inline — text and visual in one reply.

**Complex — a quoting catalogue.** Upload a price list and several datasheets. A user asks "what's the throughput of the X200 and how much is it?" — the agent retrieves the spec, uses `show_file_excerpt` to quote the exact throughput line from the datasheet, and `present_public_file` to offer the full datasheet for download. Every claim is backed by a quotable, downloadable source the user can verify.

## File management

* **Download** — fetch the original file for verification.
* **Delete** — remove the file. After saving, the file is dropped from storage and the index is updated. Any download links already issued will stop working.

## Visibility

Public files are accessible via signed links the agent generates at runtime. Treat them as public information — do not upload files containing sensitive personal information, unpublished proprietary data, or credentials.

## Limits

File size and total storage limits depend on your subscription tier. The per-file maximum is enforced on upload.

## Manage via the Management MCP

This page can be managed programmatically through the [Management MCP](/manage-mcp).

|                 |                                                                                                     |
| --------------- | --------------------------------------------------------------------------------------------------- |
| Endpoint        | `https://manage.agentheya.com/mcp`                                                                  |
| Upload          | `file.upload` with `scope: "public"`                                                                |
| List            | `file.list` with `scope: "public"`                                                                  |
| Delete          | `file.delete` with `scope: "public"`                                                                |
| Chunking config | `config.set` section `data_public`                                                                  |
| Schema (HTTP)   | [`GET /api/manage-mcp/schema/data_public`](https://agentheya.com/api/manage-mcp/schema/data_public) |

Example upload:

```json theme={null}
{
  "tool": "file.upload",
  "owner_id": "<your owner_id>",
  "agent_id": "<your agent_id>",
  "scope": "public",
  "filename": "faq.md",
  "content": "# FAQ\n\n..."
}
```

Per-plan size/format limits apply. Ingestion runs asynchronously after upload.
