Skip to content
Covo Developers

Reference

Add a website as knowledge

Teaches the agent from a public web page or RSS/Atom feed.

RESTPOST /api/v1/agents/{agent_id}/knowledge/sources
MCP toolimport_knowledge_from_url
ClassificationWrite
Scopeagents:write
Minimum role on the agenteditor
ConfirmationNot needed
Retry safetySend an Idempotency-Key header (REST) or idempotency_key argument (MCP) to retry safely
Success status201

What it does

Teaches the agent from a public web page or RSS/Atom feed. Fetching and indexing happen in the background; check list_knowledge_sources. refresh_hours re-imports on a schedule.

Side effects

Adds a knowledge source. Covo fetches the page in the background (and again every refresh_hours, if set); the agent starts answering from it once processed.

Inputs

NameTypeRequiredInDescription
agent_idstringyespathThe agent id (agt_...), from list_agents.
urlstringyesbody
refresh_hoursinteger or nullnobodyDefault null.

Example

REST
curl -X POST "https://covo.lanaai.io/api/v1/agents/agt_4edc89bb2964/knowledge/sources" \
  -H "Authorization: Bearer $COVO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"url":"https://example.com/about"}'
MCP (POST /mcp)
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "import_knowledge_from_url",
    "arguments": {
      "agent_id": "agt_4edc89bb2964",
      "url": "https://example.com/about"
    }
  }
}

Response

Returns an object with source and note. This is a real response, shortened to two items per list.

201 response
{
  "source": {
    "id": "53fbb5d6-b760-4ece-bbba-c0852a747a09",
    "tenant_id": "0c368d2d-cd7d-4f6b-9026-b73854e431f8",
    "kind": "website",
    "title": "example.com",
    "filename": null,
    "mime_type": null,
    "size_bytes": null,
    "storage_key": null,
    "source_url": "https://example.com/about",
    "status": "pending",
    "error": null,
    "created_at": "2026-10-07T20:14:41.868Z",
    "updated_at": "2026-10-07T20:14:41.868Z",
    "refresh_hours": null,
    "last_fetched_at": null,
    "content_hash": null,
    "knowledge_base_id": null
  },
  "note": "The page is fetched and indexed in the background; list_knowledge_sources shows its status."
}

Over MCP the same object comes back as the tool result, in structuredContent and as JSON text.

Errors

StatusCodeMeaning
401unauthorizedNo token, or it is unknown, revoked or expired. OAuth apps refresh or reconnect.
403account_suspendedThe account that owns the token is paused.
403insufficient_scopeThe token lacks agents:write.
404agent_not_foundUnknown agent, or not reachable with this token.
400bad_requestAn input is invalid; field names it.
409, 422idempotency_in_progress, idempotency_key_reusedSee Idempotency on the REST page.
403plan_limitThe plan is full; details has the limit.
429rate_limitedWait Retry-After seconds.