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.
/knowledge/remote-contentUpload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.
Authorization
HTTPBearer In: header
Query Parameters
Database ID to use for content storage
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"}{ "detail": "string", "error_id": "string", "error_type": "string"}{ "detail": "string", "error_id": "string", "error_type": "string"}{ "detail": "string", "error_id": "string", "error_type": "string"}{ "detail": "string"}{ "detail": "string", "error_id": "string", "error_type": "string"}