curl --request POST \
--url https://api.tiro.ooo/v1/external/notes/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"keyword": "OKR"
}
'{
"notes": [
{
"guid": "note-abc123-def456",
"title": "OKR Q2 Planning",
"createdAt": "2026-04-15T10:00:00Z",
"updatedAt": "2026-04-15T11:30:00Z",
"sourceType": "live-voice",
"recordingStartAt": "2026-04-15T10:00:05Z",
"recordingEndAt": "2026-04-15T11:00:30Z",
"recordingDurationSeconds": 3625,
"transcribeLocale": "ko_KR",
"translateLocale": null,
"webUrl": "https://tiro.ooo/n/abc123def456",
"collaborators": [],
"participants": [
{
"name": "Alice Kim",
"email": "alice@example.com"
}
],
"matchedSnippets": null,
"documents": []
}
],
"nextCursor": null,
"degraded": false
}Keyword-required deep search. Returns notes hydrated with their primary documents (one-pager, custom) so an MCP/LLM client can read content alongside metadata in a single call.
GET /v1/external/notes?keyword=...GET /v1/external/notes?keyword=... — lightweight: returns matched
note metadata only. Cheaper.POST /v1/external/notes/search (this) — heavy: also returns the
matched notes’ documents. Use when you need to understand the context
behind a topic, not just see which notes match.400).degraded=true and degradedReason to one of
search_index_unavailable / search_index_degraded and returns an
empty notes array — clients should surface this to the user/LLM.sections); each document carries a
truncated flag when the combined section text exceeded the 5,000
char search budget.nextCursor is reserved for future use and is currently always null.curl --request POST \
--url https://api.tiro.ooo/v1/external/notes/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"keyword": "OKR"
}
'{
"notes": [
{
"guid": "note-abc123-def456",
"title": "OKR Q2 Planning",
"createdAt": "2026-04-15T10:00:00Z",
"updatedAt": "2026-04-15T11:30:00Z",
"sourceType": "live-voice",
"recordingStartAt": "2026-04-15T10:00:05Z",
"recordingEndAt": "2026-04-15T11:00:30Z",
"recordingDurationSeconds": 3625,
"transcribeLocale": "ko_KR",
"translateLocale": null,
"webUrl": "https://tiro.ooo/n/abc123def456",
"collaborators": [],
"participants": [
{
"name": "Alice Kim",
"email": "alice@example.com"
}
],
"matchedSnippets": null,
"documents": []
}
],
"nextCursor": null,
"degraded": false
}Documentation Index
Fetch the complete documentation index at: https://api-docs.tiro.ooo/llms.txt
Use this file to discover all available pages before exploring further.
API key in format {id}.{secret}
Matched notes with their documents.
Matched notes, ordered by OpenSearch relevance.
Show child attributes
true when the response was produced via a fallback path (e.g.,
OpenSearch unavailable). When degraded, notes may be empty and
quality is reduced.
Machine-readable reason when degraded=true. null otherwise.
search_index_unavailable, search_index_degraded, null