curl --request GET \
--url https://api.entendre.finance/v1/memory/search \
--header 'X-API-Key: <api-key>'const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.entendre.finance/v1/memory/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.entendre.finance/v1/memory/search"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"matches": [
{
"path": "knowledge/vendors.md",
"layer": "org",
"line": 1,
"text": "Treat approved staking rewards as revenue."
}
],
"match_count": 1,
"truncated": false,
"next_cursor": null
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid path, query or request body.",
"request_id": "req_example"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"request_id": "req_example"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient access to organization",
"request_id": "req_example"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 30s.",
"request_id": "req_example"
}
}{
"error": {
"code": "PROVIDER_ERROR",
"message": "The memory service is temporarily unavailable.",
"request_id": "req_example"
}
}Search memory
Searches memory documents or operational rules.
curl --request GET \
--url https://api.entendre.finance/v1/memory/search \
--header 'X-API-Key: <api-key>'const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.entendre.finance/v1/memory/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.entendre.finance/v1/memory/search"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"matches": [
{
"path": "knowledge/vendors.md",
"layer": "org",
"line": 1,
"text": "Treat approved staking rewards as revenue."
}
],
"match_count": 1,
"truncated": false,
"next_cursor": null
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid path, query or request body.",
"request_id": "req_example"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"request_id": "req_example"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient access to organization",
"request_id": "req_example"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 30s.",
"request_id": "req_example"
}
}{
"error": {
"code": "PROVIDER_ERROR",
"message": "The memory service is temporarily unavailable.",
"request_id": "req_example"
}
}path, the line and the layer: organization, firm or default. An incomplete search cannot show that a rule does not exist; follow next_cursor for more results.
With kind=rule, query is a case-insensitive substring search across the rule text fields, including IDs, names and matchers. The results are complete and not paginated.Authorizations
Your organization API key. Some operations also need a key that is associated with a user; their pages say so.
Query Parameters
document (the default) for a memory document, or rule for an operational rule.
document, rule Text to search for.
1 - 500Document only.
Document only.
org, firm Document only.
Document only.
Document only. The next_cursor value from the previous page.
256Rule only. Limits the lookup to one rule domain.
classification, cash_application Response
Matching lines with their path and source layer.
- Option 1
- Option 2
true when the request succeeded.
Matching lines.
Show child attributes
Show child attributes
Total matches found, which can exceed the number returned.
Some results were left out. Truncation does not show that a match is absent.
Pass as cursor with the same query and filters to continue.
Present when match_count is 0: lines that match the singular or plural form of the query.
Show child attributes
Show child attributes
Paths skipped because their header did not parse.