تخطَّ إلى المستندات
API

المعرفة

كل عملية في هذه المجموعة: ما تقبله وما تُرجعه والأخطاء التي قد تردّ بها.

العمليات

The workspace knowledge base: notes, files and web pages the AI uses when it writes replies, drafts email and answers in the assistant. Each item sits at one level. A scope is empty for the whole workspace, @ and a domain for everything on that domain (@acme.com), or one address ([email protected]). The AI working for an address reads that address, then its domain, then the whole workspace, the most specific first.

Files are read into text in the background, PDFs, Office and OpenDocument files, spreadsheets, CSV, HTML, XML, Markdown, text and images among them. Text is encrypted at rest, and search runs over the meaning of the text as well as its words.

GET/knowledge

List knowledge items

الصلاحياتknowledge:readيقرأ

Newest first. Every filter is optional. q matches titles, file names and links. A key or an app limited to particular addresses sees the whole-workspace items and the items at its addresses and their domains.

Requires the knowledge:read scope.

معلمات الاستعلام

scopestring

Only the items at exactly this level. A scope is empty for the whole workspace, @ and a domain for everything on that domain (@acme.com), or one address ([email protected]). The AI working for an address reads that address, then its domain, then the whole workspace, the most specific first.

levelstring

Only items at this kind of level.

أحد"workspace""domain""address"
kindstring

Keeps one kind of item: note, file or link.

أحد"note""file""link"
statusstring

Keeps one status: queued, processing, ready or failed.

أحد"queued""processing""ready""failed"
pinnedstring

true keeps the pinned notes and false everything else.

أحد"true""false"
qstring

Words in the title, file name or link.

limitinteger

Rows per page, 1 to 100.

على الأقل 1على الأكثر 100الافتراضي25
cursorstring

The previous page's nextCursor, passed back as it came. It is opaque: it holds where the last row sat in this list's order, so a row deleted or edited between pages never breaks the walk, and the next page starts at the first row that sorts after it. A value this list did not hand out is a 400 invalid_cursor.

يُرجع

A page of items.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.list()knowledge.listAll()knowledge.iterate()
Python
knowledge.list()knowledge.list_all()knowledge.iterate()
Ruby
knowledge.listknowledge.list_allknowledge.iterate
PHP
knowledge->listknowledge->listAllknowledge->iterate
CLI
openemail knowledge list
MCP
listKnowledge

GET/knowledge/levels

List knowledge levels

الصلاحياتknowledge:readيقرأ

The whole workspace, each domain and each address the caller can see, how many items each holds and whether the caller may change items there.

Requires the knowledge:read scope.

يُرجع

Every level the caller can see.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.levels()
Python
knowledge.levels()
Ruby
knowledge.levels
PHP
knowledge->levels
CLI
openemail knowledge levels
MCP
listKnowledgeLevels

GET/knowledge/usage

Read knowledge base usage

الصلاحياتknowledge:readيقرأ

How many items and characters of text the workspace holds, against what its plan allows.

Requires the knowledge:read scope.

يُرجع

The usage and the limits.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.usage()
Python
knowledge.usage()
Ruby
knowledge.usage
PHP
knowledge->usage
CLI
openemail knowledge usage
MCP
getKnowledgeUsage

POST/knowledge/search

Search the knowledge base

الصلاحياتknowledge:readيقرأ

The passages that best answer query, by meaning and by words, the way the AI finds them. With address, the levels the AI uses for that address: the address, its domain and the whole workspace, the most specific ranked a little higher. With scope, that one level. With neither, every level the caller can see.

Requires the knowledge:read scope.

متن الطلب

querystringمطلوب

What to look for, in plain words, up to 500 characters.

من 1 إلى 500 من الأحرف
addressstring

An address of the workspace, to search the levels the AI uses when it writes as that address.

حتى 320 من الأحرف
scopestring

One level to search: an empty string for the whole workspace, @ and a domain, or one address.

حتى 320 من الأحرف
limitinteger

How many passages, from 1 to 25. The server defaults to 8.

على الأقل 1على الأكثر 25
rerankboolean

When true, the AI reads the best 25 passages and puts them in the order that best answers query, leaving out the ones that do not help. It adds a second or two and counts as one AI action. When it cannot finish, the passages keep their usual order and reranked is false.

يُرجع

The passages, best first.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.search()
Python
knowledge.search()
Ruby
knowledge.search
PHP
knowledge->search
CLI
openemail knowledge search
MCP
searchKnowledge

POST/knowledge/notes

Add a note

الصلاحياتknowledge:writeيغيّر البيانات

Up to 20,000 characters of text, in Markdown if you like. A note is usually ready for the AI in a second or two. Changing an item needs reach over every address its level covers: the whole workspace needs every address, a domain needs the whole domain, and an address needs that address. A key or an app limited to particular addresses can change items only at those addresses, or at domains it holds whole.

Requires the knowledge:write scope.

متن الطلب

scopestring

The level: an empty string, or left out, for the whole workspace, @ and a domain such as @acme.com, or one address such as [email protected].

حتى 320 من الأحرفالافتراضي""
titlestringمطلوب

A short name for the note, at most 200 characters.

من 1 إلى 200 من الأحرف
bodystringمطلوب

The text, up to 20,000 characters, in Markdown if you like.

من 1 إلى 20000 من الأحرف
pinnedboolean

Puts the note into every prompt at its level. Left out, false.

threadIdstring

The conversation the note comes from, such as one POST /knowledge/drafts drafted it from.

من 1 إلى 200 من الأحرف

يُرجع

The note.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.createNote()
Python
knowledge.create_note()
Ruby
knowledge.create_note
PHP
knowledge->createNote
CLI
openemail knowledge create-note
MCP
addKnowledgeNote

POST/knowledge/links

Add a link

الصلاحياتknowledge:writeيغيّر البيانات

A public web page, at most 2048 characters long. It is fetched and read in the background, so the item starts queued. Without a title, the page's own title is used. Changing an item needs reach over every address its level covers: the whole workspace needs every address, a domain needs the whole domain, and an address needs that address. A key or an app limited to particular addresses can change items only at those addresses, or at domains it holds whole.

Requires the knowledge:write scope.

متن الطلب

scopestring

The level: an empty string, or left out, for the whole workspace, @ and a domain such as @acme.com, or one address such as [email protected].

حتى 320 من الأحرفالافتراضي""
urlstringمطلوب

The page, a public http or https address of at most 2,048 characters.

من 1 إلى 2048 من الأحرف
titlestring

A name for the item, at most 200 characters. Left out, the page's own title once it has been read.

حتى 200 من الأحرف
refreshDaysinteger

Read the page again every this many days (1, 7, 30), so changes reach the AI on their own. Left out or null, it is read again only when you ask.

يمكن أن يكون nullأكثر من 0

يُرجع

The link, queued to be read.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.addLink()
Python
knowledge.add_link()
Ruby
knowledge.add_link
PHP
knowledge->addLink
CLI
openemail knowledge add-link
MCP
addKnowledgeLink

POST/knowledge/files

Upload a file

الصلاحياتknowledge:writeيغيّر البيانات

Send the file itself as the request body, with its Content-Type, and name it with filename or an X-Filename header. At most 20 MB for a document and 10 MB for an image. The text is read in the background, so the item starts queued. Changing an item needs reach over every address its level covers: the whole workspace needs every address, a domain needs the whole domain, and an address needs that address. A key or an app limited to particular addresses can change items only at those addresses, or at domains it holds whole.

Requires the knowledge:write scope.

معلمات الاستعلام

scopestring

A scope is empty for the whole workspace, @ and a domain for everything on that domain (@acme.com), or one address ([email protected]). The AI working for an address reads that address, then its domain, then the whole workspace, the most specific first.

filenamestring

The file name. Its extension tells the kind of file when the Content-Type is generic.

titlestring

Left out, the file name without its extension.

حتى 200 من الأحرف

متن الطلب

نوع المحتوىapplication/octet-stream

binary

يُرجع

The file, queued to be read.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.uploadFile()
Python
knowledge.upload_file()
Ruby
knowledge.upload_file
PHP
knowledge->uploadFile
CLI
openemail knowledge upload-file

GET/knowledge/{id}

Get a knowledge item

الصلاحياتknowledge:readيقرأ

The item with its text: a note's body, or the first 20,000 characters read from a file or a page.

Requires the knowledge:read scope.

معلمات المسار

idstringمطلوب

The id of a knowledge item, as GET /knowledge returns it.

يُرجع

The item and its text.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.get()
Python
knowledge.get()
Ruby
knowledge.get
PHP
knowledge->get
CLI
openemail knowledge get
MCP
getKnowledge

PATCH/knowledge/{id}

Change a knowledge item

الصلاحياتknowledge:writeيغيّر البيانات

Give at least one field. body and pinned are for notes, url and refreshDays are for links. A changed title, body or link is indexed again, and an item moved to another level keeps its index. Changing an item needs reach over every address its level covers: the whole workspace needs every address, a domain needs the whole domain, and an address needs that address. A key or an app limited to particular addresses can change items only at those addresses, or at domains it holds whole. Moving an item needs that reach at both levels.

Requires the knowledge:write scope.

معلمات المسار

idstringمطلوب

The id of a knowledge item, as GET /knowledge returns it.

متن الطلب

titlestring

A new name, at most 200 characters.

من 1 إلى 200 من الأحرف
bodystring

Notes only.

من 1 إلى 20000 من الأحرف
scopestring

A scope is empty for the whole workspace, @ and a domain for everything on that domain (@acme.com), or one address ([email protected]). The AI working for an address reads that address, then its domain, then the whole workspace, the most specific first.

pinnedboolean

Notes only.

urlstring

Links only.

من 1 إلى 2048 من الأحرف
refreshDaysinteger

Links only: read the page again every this many days. Null stops that.

يمكن أن يكون nullأحد1730

يُرجع

The item as it is now.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.update()
Python
knowledge.update()
Ruby
knowledge.update
PHP
knowledge->update
CLI
openemail knowledge update
MCP
updateKnowledge

DELETE/knowledge/{id}

Delete a knowledge item

الصلاحياتknowledge:writeيحذف

Gone for good, with its file and its passages. The AI stops using it at once.

Requires the knowledge:write scope.

معلمات المسار

idstringمطلوب

The id of a knowledge item, as GET /knowledge returns it.

يُرجع

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.delete()
Python
knowledge.delete()
Ruby
knowledge.delete
PHP
knowledge->delete
CLI
openemail knowledge delete
MCP
deleteKnowledge

POST/knowledge/{id}/refresh

Read a knowledge item again

الصلاحياتknowledge:writeيغيّر البيانات

Fetches a link again, reads a file again, or indexes a note again, and clears a failure. The previous text stays in use until the new one is ready.

Requires the knowledge:write scope.

معلمات المسار

idstringمطلوب

The id of a knowledge item, as GET /knowledge returns it.

يُرجع

The item, queued to be read again.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.refresh()
Python
knowledge.refresh()
Ruby
knowledge.refresh
PHP
knowledge->refresh
CLI
openemail knowledge refresh
MCP
refreshKnowledge

GET/knowledge/stats

Read knowledge base stats

الصلاحياتknowledge:readيقرأ

How the AI used the knowledge base over the last days days, 30 unless you say. uses counts the times a reply suggestion, a draft, the assistant or a search found something in it and empty the times it looked and found nothing, for the whole workspace, with bySurface splitting uses by where. topItems, unusedItems, the waiting suggestions and questions and the open flags count only what the caller can see.

Requires the knowledge:read scope.

معلمات الاستعلام

daysinteger

How many days back to count, today included.

على الأقل 1على الأكثر 90الافتراضي30

يُرجع

The stats.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.stats()
Python
knowledge.stats()
Ruby
knowledge.stats
PHP
knowledge->stats
CLI
openemail knowledge stats
MCP
getKnowledgeStats

GET/knowledge/suggestions

List knowledge suggestions

الصلاحياتknowledge:readيقرأ

Notes the AI suggests and questions nothing in the knowledge base answers, the most recent first, pending ones unless you ask for another status. A learned suggestion comes from a reply sent from the workspace in a conversation: the AI reads the message the reply answers and the reply, and keeps up to three facts that would hold for other people too, at the level of the domain the reply was sent from, or the whole workspace when that domain is not one of its own. Facts the knowledge base already holds are left out, and at most 100 replies a day are read. A question comes from an incoming message: when the AI suggests replies to it, it notes up to 3 things the sender asked about the business that neither the conversation nor the knowledge base answers, at the level of the domain the message arrived at, chosen the same way. The same fact or question again counts up occurrences, and one that was dismissed is not suggested again. Both stop while the workspace setting knowledgeLearning is off.

Requires the knowledge:read scope.

معلمات الاستعلام

kindstring

Keeps one kind: learned for notes drawn from sent replies, or question for questions nothing answers.

أحد"learned""question"
statusstring

Keeps one status: pending, accepted or dismissed. Left out, pending.

أحد"pending""accepted""dismissed"الافتراضي"pending"
limitinteger

Rows per page, 1 to 100.

على الأقل 1على الأكثر 100الافتراضي25
cursorstring

The previous page's nextCursor, passed back as it came. It is opaque: it holds where the last row sat in this list's order, so a row deleted or edited between pages never breaks the walk, and the next page starts at the first row that sorts after it. A value this list did not hand out is a 400 invalid_cursor.

يُرجع

A page of suggestions and questions.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.listSuggestions()knowledge.listAllSuggestions()knowledge.iterateSuggestions()
Python
knowledge.list_suggestions()knowledge.list_all_suggestions()knowledge.iterate_suggestions()
Ruby
knowledge.list_suggestionsknowledge.list_all_suggestionsknowledge.iterate_suggestions
PHP
knowledge->listSuggestionsknowledge->listAllSuggestionsknowledge->iterateSuggestions
CLI
openemail knowledge list-suggestions
MCP
listKnowledgeSuggestions

POST/knowledge/suggestions/{id}/accept

Accept a knowledge suggestion

الصلاحياتknowledge:writeيغيّر البيانات

Saves the suggestion as a note, with any field you send in place of the suggested one, and marks it accepted. A question needs its answer in body, and its title stays the question unless you send one. Changing an item needs reach over every address its level covers: the whole workspace needs every address, a domain needs the whole domain, and an address needs that address. A key or an app limited to particular addresses can change items only at those addresses, or at domains it holds whole.

Requires the knowledge:write scope.

معلمات المسار

idstringمطلوب

The id of a suggestion or question, as GET /knowledge/suggestions returns it.

متن الطلب

titlestring

Left out, the suggested title or the question.

من 1 إلى 200 من الأحرف
bodystring

Left out, the suggested note. A question needs it: the answer.

من 1 إلى 20000 من الأحرف
scopestring

Left out, the suggested level. A scope is empty for the whole workspace, @ and a domain for everything on that domain (@acme.com), or one address ([email protected]). The AI working for an address reads that address, then its domain, then the whole workspace, the most specific first.

pinnedboolean

Put the note into every prompt at its level.

يُرجع

The suggestion and the note made from it.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.acceptSuggestion()
Python
knowledge.accept_suggestion()
Ruby
knowledge.accept_suggestion
PHP
knowledge->acceptSuggestion
CLI
openemail knowledge accept-suggestion
MCP
acceptKnowledgeSuggestion

POST/knowledge/suggestions/{id}/dismiss

Dismiss a knowledge suggestion

الصلاحياتknowledge:writeيغيّر البيانات

Marks the suggestion or question dismissed, so it leaves the pending list and is not suggested again. Nothing is added to the knowledge base. Changing an item needs reach over every address its level covers: the whole workspace needs every address, a domain needs the whole domain, and an address needs that address. A key or an app limited to particular addresses can change items only at those addresses, or at domains it holds whole.

Requires the knowledge:write scope.

معلمات المسار

idstringمطلوب

The id of a suggestion or question, as GET /knowledge/suggestions returns it.

يُرجع

The suggestion, dismissed.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.dismissSuggestion()
Python
knowledge.dismiss_suggestion()
Ruby
knowledge.dismiss_suggestion
PHP
knowledge->dismissSuggestion
CLI
openemail knowledge dismiss-suggestion
MCP
dismissKnowledgeSuggestion

GET/knowledge/flags

List knowledge flags

الصلاحياتknowledge:readيقرأ

Open warnings about pairs of items, newest first. Each item is compared with the closest items at every level when it is indexed, and again whenever it changes. duplicate means two items say nearly the same thing. conflict means the AI found that two closely related items disagree on a fact, such as a price or a deadline, and detail says how. Conflicts are looked for while the workspace setting knowledgeLearning is on, at most 200 times a day. A flag shows only to a caller who can see both items. With itemId, only the flags that name that item.

Requires the knowledge:read scope.

معلمات الاستعلام

itemIdstring

Only the flags that name this knowledge item.

limitinteger

How many flags, from 1 to 100. The server defaults to 50.

على الأقل 1على الأكثر 100الافتراضي50

يُرجع

The open flags.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.listFlags()
Python
knowledge.list_flags()
Ruby
knowledge.list_flags
PHP
knowledge->listFlags
CLI
openemail knowledge list-flags
MCP
listKnowledgeFlags

POST/knowledge/flags/{id}/dismiss

Dismiss a knowledge flag

الصلاحياتknowledge:writeيغيّر البيانات

Marks the flag dismissed, and the same two items are not flagged for the same reason again. To settle a real duplicate or conflict instead, change or delete one of the items. It needs the reach to change items at the levels of both.

Requires the knowledge:write scope.

معلمات المسار

idstringمطلوب

The id of a flag, as GET /knowledge/flags returns it.

يُرجع

The flag, dismissed.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.dismissFlag()
Python
knowledge.dismiss_flag()
Ruby
knowledge.dismiss_flag
PHP
knowledge->dismissFlag
CLI
openemail knowledge dismiss-flag
MCP
dismissKnowledgeFlag

GET/knowledge/connectors

List knowledge connectors

الصلاحياتknowledge:readيقرأ

Every connector at a level the caller can see, newest first.

Requires the knowledge:read scope.

يُرجع

The connectors.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.listConnectors()
Python
knowledge.list_connectors()
Ruby
knowledge.list_connectors
PHP
knowledge->listConnectors
CLI
openemail knowledge list-connectors
MCP
listKnowledgeConnectors

POST/knowledge/connectors

Add a knowledge connector

الصلاحياتknowledge:writeيغيّر البيانات

Keeps many web pages from one source in the knowledge base, each page as a link item at the connector's level. site reads the page at url and follows its links to pages on the same host under the same path, leaving out what the site's robots.txt disallows. sitemap reads a sitemap, or a sitemap index and up to 5 of its sitemaps. feed reads an RSS or Atom feed. zendesk reads the published articles of a Zendesk help center, from its address such as https://example.zendesk.com. It keeps at most pageLimit pages, 25 unless you say. The first sync starts within a minute, and it syncs again every refreshDays days, 7 unless you say: new pages are added, changed ones are read again and pages that are gone are removed. A page already in the knowledge base as a link at the same level is left to that item. Its items count toward the plan allowance, and a sync stops adding pages once that is reached. Changing an item needs reach over every address its level covers: the whole workspace needs every address, a domain needs the whole domain, and an address needs that address. A key or an app limited to particular addresses can change items only at those addresses, or at domains it holds whole.

Requires the knowledge:write scope.

متن الطلب

kindstringمطلوب

A site it crawls, a sitemap, an RSS or Atom feed, or a Zendesk help center.

أحد"site""sitemap""feed""zendesk"
urlstringمطلوب

A public https address: the page a site crawl starts from, the sitemap, the feed, or the address of the help center.

من 1 إلى 2048 من الأحرف
scopestring

A scope is empty for the whole workspace, @ and a domain for everything on that domain (@acme.com), or one address ([email protected]). The AI working for an address reads that address, then its domain, then the whole workspace, the most specific first.

الافتراضي""
titlestring

Left out, the host and the kind.

حتى 200 من الأحرف
refreshDaysinteger

Sync again every this many days, 7 when left out. Null syncs only when you ask.

يمكن أن يكون nullأحد1730
pageLimitinteger

The most pages to keep.

على الأقل 1على الأكثر 200الافتراضي25

يُرجع

The connector, queued for its first sync.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.addConnector()
Python
knowledge.add_connector()
Ruby
knowledge.add_connector
PHP
knowledge->addConnector
CLI
openemail knowledge add-connector
MCP
addKnowledgeConnector

GET/knowledge/connectors/{id}

Get a knowledge connector

الصلاحياتknowledge:readيقرأ

The connector, how many items it keeps and when it syncs next.

Requires the knowledge:read scope.

معلمات المسار

idstringمطلوب

The id of a connector, as GET /knowledge/connectors returns it.

يُرجع

The connector.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.getConnector()
Python
knowledge.get_connector()
Ruby
knowledge.get_connector
PHP
knowledge->getConnector
CLI
openemail knowledge get-connector
MCP
getKnowledgeConnector

PATCH/knowledge/connectors/{id}

Change a knowledge connector

الصلاحياتknowledge:writeيغيّر البيانات

Give at least one field. Moving it to another level moves its items with it, and they are indexed again there. Changing an item needs reach over every address its level covers: the whole workspace needs every address, a domain needs the whole domain, and an address needs that address. A key or an app limited to particular addresses can change items only at those addresses, or at domains it holds whole. Moving it needs that reach at both levels.

Requires the knowledge:write scope.

معلمات المسار

idstringمطلوب

The id of a connector, as GET /knowledge/connectors returns it.

متن الطلب

titlestring

A new name, at most 200 characters.

من 1 إلى 200 من الأحرف
scopestring

A scope is empty for the whole workspace, @ and a domain for everything on that domain (@acme.com), or one address ([email protected]). The AI working for an address reads that address, then its domain, then the whole workspace, the most specific first.

refreshDaysinteger

Sync again every this many days. Null syncs only when you ask.

يمكن أن يكون nullأحد1730
pageLimitinteger

The most pages to keep, from 1 to 200.

على الأقل 1على الأكثر 200

يُرجع

The connector as it is now.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.updateConnector()
Python
knowledge.update_connector()
Ruby
knowledge.update_connector
PHP
knowledge->updateConnector
CLI
openemail knowledge update-connector
MCP
updateKnowledgeConnector

DELETE/knowledge/connectors/{id}

Delete a knowledge connector

الصلاحياتknowledge:writeيحذف

Gone for good, with every item it added to the knowledge base. The AI stops using them at once.

Requires the knowledge:write scope.

معلمات المسار

idstringمطلوب

The id of a connector, as GET /knowledge/connectors returns it.

يُرجع

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.deleteConnector()
Python
knowledge.delete_connector()
Ruby
knowledge.delete_connector
PHP
knowledge->deleteConnector
CLI
openemail knowledge delete-connector
MCP
deleteKnowledgeConnector

POST/knowledge/connectors/{id}/sync

Sync a knowledge connector now

الصلاحياتknowledge:writeيغيّر البيانات

Queues a sync that starts within a minute, whatever the schedule says, and clears a failure.

Requires the knowledge:write scope.

معلمات المسار

idstringمطلوب

The id of a connector, as GET /knowledge/connectors returns it.

يُرجع

The connector, queued to sync.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.syncConnector()
Python
knowledge.sync_connector()
Ruby
knowledge.sync_connector
PHP
knowledge->syncConnector
CLI
openemail knowledge sync-connector
MCP
syncKnowledgeConnector

POST/knowledge/drafts

Draft a note from a conversation

الصلاحياتknowledge:writethreads:readيقرأ

The AI reads the conversation and writes one note of the facts in it that the team will need again, leaving out personal details and what matters only to that conversation. Nothing is saved: send the draft, changed as you like, to POST /knowledge/notes with the same threadId to keep it. scope suggests a level: the domain the conversation arrived at when the caller may add items there, otherwise the whole workspace or the address. It counts as one AI action.

Requires the knowledge:write and threads:read scopes.

متن الطلب

threadIdstringمطلوب

The conversation, by the id the thread endpoints give it.

من 1 إلى 200 من الأحرف

يُرجع

The draft note.

الأخطاء

الأخطاء التي يمكن أن تُرجعها أي عملية400401403404422500دليل الأخطاء

متاح أيضًا في

TypeScript
knowledge.draftFromThread()
Python
knowledge.draft_from_thread()
Ruby
knowledge.draft_from_thread
PHP
knowledge->draftFromThread
CLI
openemail knowledge draft-from-thread
MCP
draftKnowledgeFromThread

الكائنات

DeletedKnowledgeConnectorobject

objectstring
أحد"knowledge_connector"
idstring
deletedboolean
أحدtrue

DeletedKnowledgeItemobject

objectstring
أحد"knowledge_item"
idstring
deletedboolean
أحدtrue

KnowledgeConnectorobject

objectstringمطلوب
أحد"knowledge_connector"
idstringمطلوب
kindstringمطلوب

A site it crawls, a sitemap, an RSS or Atom feed, or a Zendesk help center.

أحد"site""sitemap""feed""zendesk"
scopestringمطلوب

A scope is empty for the whole workspace, @ and a domain for everything on that domain (@acme.com), or one address ([email protected]). The AI working for an address reads that address, then its domain, then the whole workspace, the most specific first.

levelstringمطلوب
أحد"workspace""domain""address"
titlestringمطلوب
حتى 200 من الأحرف
urlstringمطلوب
refreshDaysintegerمطلوب

It syncs again every this many days. Null when it syncs only when you ask.

يمكن أن يكون nullأحد1730
pageLimitintegerمطلوب

The most pages it keeps.

statusstringمطلوب

queued until a sync starts, syncing while it reads the source, ready once its pages are items, failed when the source could not be read after several tries.

أحد"queued""syncing""ready""failed"
failurestringمطلوب
يمكن أن يكون nullأحد"unsupported""empty""too_large""fetch_failed""blocked_url""conversion_failed""index_failed""over_allowance""missing_file"
itemsintegerمطلوب

How many items it keeps in the knowledge base.

lastSyncAtstringمطلوب
يمكن أن يكون nullالتنسيقdate-time
nextSyncAtstringمطلوب
يمكن أن يكون nullالتنسيقdate-time
createdAtstringمطلوب
التنسيقdate-time
updatedAtstringمطلوب
التنسيقdate-time

KnowledgeDraftobject

objectstringمطلوب
أحد"knowledge_draft"
titlestringمطلوب
bodystringمطلوب

The note, in Markdown.

scopestringمطلوب

The suggested level. A scope is empty for the whole workspace, @ and a domain for everything on that domain (@acme.com), or one address ([email protected]). The AI working for an address reads that address, then its domain, then the whole workspace, the most specific first.

threadIdstringمطلوب

KnowledgeFlagobject

objectstringمطلوب
أحد"knowledge_flag"
idstringمطلوب
kindstringمطلوب

duplicate when the two items say nearly the same thing, conflict when they disagree on a fact.

أحد"duplicate""conflict"
statusstringمطلوب
أحد"open""dismissed"
sourceIdstringمطلوب
sourceTitlestringمطلوب
otherSourceIdstringمطلوب
otherSourceTitlestringمطلوب
detailstringمطلوب

For a conflict, one sentence on the facts that disagree. Null for a duplicate.

يمكن أن يكون null
scorenumberمطلوب

How close in meaning the two items are, from 0 to 1.

createdAtstringمطلوب
التنسيقdate-time

KnowledgeItemobject

objectstringمطلوب
أحد"knowledge_item"
idstringمطلوب
kindstringمطلوب

A note written in place, an uploaded file, or a web page fetched from a link.

أحد"note""file""link"
scopestringمطلوب

A scope is empty for the whole workspace, @ and a domain for everything on that domain (@acme.com), or one address ([email protected]). The AI working for an address reads that address, then its domain, then the whole workspace, the most specific first.

levelstringمطلوب
أحد"workspace""domain""address"
titlestringمطلوب
حتى 200 من الأحرف
urlstringمطلوب

The page a link item reads. Null for notes and files.

يمكن أن يكون null
fileNamestringمطلوب
يمكن أن يكون null
mimeTypestringمطلوب
يمكن أن يكون null
sizeBytesintegerمطلوب
يمكن أن يكون null
pinnedbooleanمطلوب

A pinned note goes into every AI prompt at its level, not only when it matches.

statusstringمطلوب

queued and processing while the text is read and indexed, ready once the AI can use it, failed when it could not be read. A changed item goes back to queued, and its previous text stays in use until the new one is ready.

أحد"queued""processing""ready""failed"
failurestringمطلوب
يمكن أن يكون nullأحد"unsupported""empty""too_large""fetch_failed""blocked_url""conversion_failed""index_failed""over_allowance""missing_file"
chunksintegerمطلوب

How many passages the text was split into for search.

charsintegerمطلوب

Characters of text, which count toward the plan allowance.

originstringمطلوب
أحد"app""api""assistant""mcp"
createdBystringمطلوب
يمكن أن يكون null
createdAtstringمطلوب
التنسيقdate-time
updatedAtstringمطلوب
التنسيقdate-time
indexedAtstringمطلوب
يمكن أن يكون nullالتنسيقdate-time
refreshDaysintegerمطلوب

Links only: the page is read again every this many days, and changes reach the AI on their own. Null when it is read only when you ask.

يمكن أن يكون nullأحد1730
nextRefreshAtstringمطلوب

When the page is next read again. Null when it is not scheduled.

يمكن أن يكون nullالتنسيقdate-time
connectorIdstringمطلوب

The connector that keeps this item in step with its source, or null for an item added by hand.

يمكن أن يكون null
threadIdstringمطلوب

The conversation the note was saved from, or null.

يمكن أن يكون null
usesintegerمطلوب

How many times it came up in a reply suggestion, a draft, the assistant or a search.

lastUsedAtstringمطلوب
يمكن أن يكون nullالتنسيقdate-time
flagsintegerمطلوب

How many open duplicate or conflict flags name it. Lists and GET /knowledge/{id} count them, and the answer to a change says 0.

KnowledgeItemDetailobject

objectstring
أحد"knowledge_item"
idstring
kindstring

A note written in place, an uploaded file, or a web page fetched from a link.

أحد"note""file""link"
scopestring

A scope is empty for the whole workspace, @ and a domain for everything on that domain (@acme.com), or one address ([email protected]). The AI working for an address reads that address, then its domain, then the whole workspace, the most specific first.

levelstring
أحد"workspace""domain""address"
titlestring
حتى 200 من الأحرف
urlstring

The page a link item reads. Null for notes and files.

يمكن أن يكون null
fileNamestring
يمكن أن يكون null
mimeTypestring
يمكن أن يكون null
sizeBytesinteger
يمكن أن يكون null
pinnedboolean

A pinned note goes into every AI prompt at its level, not only when it matches.

statusstring

queued and processing while the text is read and indexed, ready once the AI can use it, failed when it could not be read. A changed item goes back to queued, and its previous text stays in use until the new one is ready.

أحد"queued""processing""ready""failed"
failurestring
يمكن أن يكون nullأحد"unsupported""empty""too_large""fetch_failed""blocked_url""conversion_failed""index_failed""over_allowance""missing_file"
chunksinteger

How many passages the text was split into for search.

charsinteger

Characters of text, which count toward the plan allowance.

originstring
أحد"app""api""assistant""mcp"
createdBystring
يمكن أن يكون null
createdAtstring
التنسيقdate-time
updatedAtstring
التنسيقdate-time
indexedAtstring
يمكن أن يكون nullالتنسيقdate-time
refreshDaysinteger

Links only: the page is read again every this many days, and changes reach the AI on their own. Null when it is read only when you ask.

يمكن أن يكون nullأحد1730
nextRefreshAtstring

When the page is next read again. Null when it is not scheduled.

يمكن أن يكون nullالتنسيقdate-time
connectorIdstring

The connector that keeps this item in step with its source, or null for an item added by hand.

يمكن أن يكون null
threadIdstring

The conversation the note was saved from, or null.

يمكن أن يكون null
usesinteger

How many times it came up in a reply suggestion, a draft, the assistant or a search.

lastUsedAtstring
يمكن أن يكون nullالتنسيقdate-time
flagsinteger

How many open duplicate or conflict flags name it. Lists and GET /knowledge/{id} count them, and the answer to a change says 0.

bodystring

The text of a note. Null for files and links.

يمكن أن يكون null
previewstring

The text the AI reads, from the start. Null while a file or page has not been read yet.

يمكن أن يكون null
previewTruncatedboolean

True when the text goes on past the preview.

KnowledgeItemListobject

objectstring
أحد"list"
hasMoreboolean

True when another page follows. Pass nextCursor back as cursor to read it.

nextCursorstring

An opaque cursor for the next page, or null on the last page. Pass it back unchanged.

يمكن أن يكون null

KnowledgeLevelobject

objectstring
أحد"knowledge_level"
scopestring

A scope is empty for the whole workspace, @ and a domain for everything on that domain (@acme.com), or one address ([email protected]). The AI working for an address reads that address, then its domain, then the whole workspace, the most specific first.

levelstring
أحد"workspace""domain""address"
writableboolean

Whether the caller may add and change items here.

itemsinteger

KnowledgeSearchHitobject

sourceIdstring

The item the passage comes from.

titlestring
kindstring
أحد"note""file""link"
scopestring
levelstring
أحد"workspace""domain""address"
urlstring
يمكن أن يكون null
headingstring

The headings the passage sits under, joined with > .

textstring
scorenumber

Higher is a better match. Only the order means anything.

KnowledgeSearchResultobject

objectstring
أحد"knowledge_search"
querystring
rerankedboolean

True when the AI put the passages in order, as rerank asks.

KnowledgeStatsobject

objectstring
أحد"knowledge_stats"
daysinteger
usesinteger

Times the AI found something in the knowledge base.

emptyinteger

Times it looked and found nothing.

coveragenumber

uses divided by uses and empty together, from 0 to 1. 0 when it never looked.

bySurfaceRecord<string, integer>

uses by where they happened: compose, reply, chat, tool, search.

seriesobject[]

One entry per day, oldest first, days with nothing included.

daystring
التنسيقdate
usesinteger
emptyinteger
topItemsobject[]

The items used most, ever.

idstring
titlestring
kindstring
أحد"note""file""link"
scopestring
usesinteger
lastUsedAtstring
يمكن أن يكون nullالتنسيقdate-time
unusedItemsinteger

Ready items the AI has never used.

pendingSuggestionsinteger
openQuestionsinteger
openFlagsinteger

KnowledgeSuggestionobject

objectstringمطلوب
أحد"knowledge_suggestion"
idstringمطلوب
kindstringمطلوب

learned is a fact the AI found in a reply sent from the workspace. question is something a sender asked that nothing in the knowledge base answers.

أحد"learned""question"
statusstringمطلوب
أحد"pending""accepted""dismissed"
scopestringمطلوب

A scope is empty for the whole workspace, @ and a domain for everything on that domain (@acme.com), or one address ([email protected]). The AI working for an address reads that address, then its domain, then the whole workspace, the most specific first.

levelstringمطلوب
أحد"workspace""domain""address"
titlestringمطلوب

The suggested title, or the question.

bodystringمطلوب

The suggested note. Null for a question, which needs its answer when it is accepted.

يمكن أن يكون null
occurrencesintegerمطلوب

How many times the same fact or question came up.

threadIdstringمطلوب

The conversation it came from most recently.

يمكن أن يكون null
sourceIdstringمطلوب

The note made from it, once it is accepted.

يمكن أن يكون null
createdAtstringمطلوب
التنسيقdate-time
updatedAtstringمطلوب
التنسيقdate-time
decidedAtstringمطلوب
يمكن أن يكون nullالتنسيقdate-time

KnowledgeSuggestionListobject

objectstring
أحد"list"
hasMoreboolean

True when another page follows. Pass nextCursor back as cursor to read it.

nextCursorstring

An opaque cursor for the next page, or null on the last page. Pass it back unchanged.

يمكن أن يكون null

KnowledgeUsageobject

objectstring
أحد"knowledge_usage"
planstring
أحد"free""starter""business""enterprise"
sourcesinteger

Items held.

charsinteger

Characters of text held.

limitsobject
sourcesinteger
charsinteger