Skip to main content
GET
/
knowledgeSource
/
{id}
Get knowledgeSource by id
curl --request GET \
  --url https://demo.enneo.ai/api/mind/knowledgeSource/{id} \
  --header 'Authorization: Bearer <token>'
{
  "id": 123,
  "type": "faq",
  "status": "active",
  "source": "https://company.com/faq/376189",
  "name": "Opening hours",
  "tags": [
    70,
    71
  ],
  "teams": [
    1,
    2
  ],
  "readByAgents": [
    {
      "id": 1,
      "name": "John Doe",
      "readAt": "2024-11-29 14:38:12"
    }
  ],
  "title": "Opening hours",
  "text": "Our service hours are from 8am to 5pm. We are closed on weekends. [...]",
  "confidential": false,
  "excluded": false,
  "access": {
    "blocked": true,
    "blockedItems": [
      {
        "id": 42,
        "kind": "article"
      },
      {
        "id": 57,
        "kind": "folder"
      }
    ]
  }
}

Authorizations

Authorization
string
header
required

JWT-based authentication

Path Parameters

id
integer
required

The id of the knowledgeSource to retrieve

Response

Successful operation

Knowledge source object

id
integer

Internal id, e.g. 123

Example:

123

type
enum<string>
default:faq

Type of knowledge source

Available options:
faq,
work-instruction,
document,
other,
news,
website
status
enum<string>
default:active

Status of the knowledge source

Available options:
active,
archived,
deleted
Example:

"active"

source
string
default:""

URL to associated source. null for sources with internal ids (tickets and templates) or if non-existant (language model source)

Example:

"https://company.com/faq/376189"

name
string

Name of knowledge source, any requests with existing name will update the existing knowledge source

Example:

"Opening hours"

tags
integer[] | null

Tags that are assigned to this knowledge source

Example:
[70, 71]
teams
integer[]

Teams that restrict access to this knowledge source. When set, only agents whose active team memberships intersect this list can see the article. Applies to all types. An empty array (or omitting the field) means no restriction — all agents see it. On update, sending teams replaces the full set; omitting teams leaves the existing set unchanged.

Example:
[1, 2]
readByAgents
object[]
read-only

Agents that have read the knowledge source

Example:
[
{
"id": 1,
"name": "John Doe",
"readAt": "2024-11-29 14:38:12"
}
]
title
string | null

Title of knowledge source

Example:

"Opening hours"

text
string

Full text that was used as source

Example:

"Our service hours are from 8am to 5pm. We are closed on weekends. [...]"

confidential
boolean
default:false

If true, then this knowledge source is only visible to agents

Example:

false

excluded
boolean
default:false

For website-type pages only — true if the page URL matches the parent connector's sourceConfig.excludePaths. Excluded pages are filtered out of GET /knowledgeSource (bulk list) and return 404 from GET /knowledgeSource/{id} so Cortex sync stays consistent. The configuration view (which calls /knowledgeSourceStructure?withExcluded=true) sees them with this flag set so it can render the "Excluded" tag and the Include action.

access
object

Team-ACL "access hole" indicator. Present only when this node has a problem or contains one; omitted entirely when the node is clean. A hole = the node declares team(s) that an ancestor folder forbids — because visibility is narrowing-only (reachable only by users who pass every restricted ancestor AND the node's own restriction), the access the editor granted does not actually work. To learn what is wrong, open the item and read its real teams.