curl --request GET \
--url https://mylifenote.ai/api/agent/v1/search \
--header 'Authorization: Bearer <token>'import requests
url = "https://mylifenote.ai/api/agent/v1/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://mylifenote.ai/api/agent/v1/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://mylifenote.ai/api/agent/v1/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://mylifenote.ai/api/agent/v1/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://mylifenote.ai/api/agent/v1/search")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://mylifenote.ai/api/agent/v1/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"query": "walk",
"since": null,
"results": [
{
"source": "journal_entry",
"id": 10452,
"date": "2026-10-21",
"time": "08:14:09",
"snippet": "Slow morning. Walked before work and noticed how much lighter I felt."
},
{
"source": "mentor_response",
"id": 88213,
"date": "2026-10-21",
"time": "08:14:40",
"mentor": "Seneca",
"journal_entry_id": 10452,
"snippet": "…a walk is a fine way to return to yourself…"
}
],
"count": 2,
"scanned": 312,
"truncated": false
}Search journal and chats
Case-insensitive substring search, performed server-side after decryption. Requires journal:read OR chat:read; results are limited to the sources the token’s scopes allow: journal:read searches journal entries and mentor responses, chat:read searches mentor chat messages. Each source scans at most its 1,000 most recent items (after the since filter). Results from all sources are merged and sorted by time descending. There is no pagination.
curl --request GET \
--url https://mylifenote.ai/api/agent/v1/search \
--header 'Authorization: Bearer <token>'import requests
url = "https://mylifenote.ai/api/agent/v1/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://mylifenote.ai/api/agent/v1/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://mylifenote.ai/api/agent/v1/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://mylifenote.ai/api/agent/v1/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://mylifenote.ai/api/agent/v1/search")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://mylifenote.ai/api/agent/v1/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"query": "walk",
"since": null,
"results": [
{
"source": "journal_entry",
"id": 10452,
"date": "2026-10-21",
"time": "08:14:09",
"snippet": "Slow morning. Walked before work and noticed how much lighter I felt."
},
{
"source": "mentor_response",
"id": 88213,
"date": "2026-10-21",
"time": "08:14:40",
"mentor": "Seneca",
"journal_entry_id": 10452,
"snippet": "…a walk is a fine way to return to yourself…"
}
],
"count": 2,
"scanned": 312,
"truncated": false
}Authorizations
OAuth 2.0 authorization code with mandatory PKCE (S256). Public clients; no client secret. Send the access token as Authorization: Bearer <access_token>.
Query Parameters
Search text, trimmed, at least 2 characters.
2Lower date bound, inclusive, compared against the entry date at day granularity. Accepts a relative form <N>d (for example 7d, 30d, computed from the current UTC date), a date YYYY-MM-DD, or an ISO 8601 datetime (the time part is discarded). An unparseable value is silently ignored (no error, no filter).
Maximum results. Default 20. Values outside 1-50 are clamped.
1 <= x <= 50Was this page helpful?

