Upload Remote Content

Select a knowledge base

Register a Knowledge with contents_db on AgentOS, an Agent or a Team. Read the actual generated ID from GET /config under knowledge.knowledge_instances; use that knowledge_id in the request's selector. It is not an arbitrary Knowledge.id. A selector is required when multiple instances make the request ambiguous (400); no configured knowledge base returns 503. If both selectors are supplied, knowledge_id takes precedence over db_id.

Ingestion and search also require suitable readers, vector storage, an embedder where needed, and their dependencies and credentials. See Knowledge.

Content access

Scoped callers can read their own and shared content; other-owned records return 404. JWT user scoping requires user isolation, while non-admin service-account PAT users always self-scope. A scoped caller cannot modify, refresh or delete shared content (403). Authentication alone does not enable JWT user isolation.

Submit a configured source

Use a config_id returned by the knowledge configuration. Send form fields for config_id and path; a trailing / selects a folder. The configured source supplies its SDK/credentials. source_params must be a JSON object; GitHub accepts repo to select an accessible owner/repo.

Remote content sources are distinct from RemoteKnowledge: this operation requires a local Knowledge instance and returns 501 for RemoteKnowledge.

Choose a valid explicit reader when configuring a chunker; unresolved readers fall back and chunker settings require a resolved reader. 202 accepts in-process background work, not a durable queue job or completed ingestion. Poll the content status; an ID can return 404 until a row is created, and unfinished work can be lost on restart.

POST/knowledge/remote-content

Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Query Parameters

db_id?|

Database ID to use for content storage

knowledge_id?|

Knowledge base ID to upload to

Request Body

application/x-www-form-urlencoded

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl --request POST 'https://example.com/knowledge/remote-content' \  --data-urlencode 'config_id=string' \  --data-urlencode 'path=string'
{  "id": "content-456",  "name": "reports/q1-2024.pdf",  "description": "Q1 Report from S3",  "metadata": {    "source": "s3-docs"  },  "status": "processing"}