note:query
Description: Retrieve a single note by its ID or import_id.
Request Schema
{
"payload": {
"type": "note:query",
"id": 123
},
"signature": "payload_ed25519_hex_signature",
"source_public_key": "your_client_public_key"
}
Or using import_id:
{
"payload": {
"type": "note:query",
"import_id": "NOTE-001"
},
"signature": "payload_ed25519_hex_signature",
"source_public_key": "your_client_public_key"
}
Request Attributes
- See global request attributes
-
payload.id- Integer - The note ID (optional if import_id is provided) -
payload.import_id- String - The note’s import_id (optional if id is provided)
At least one of id or import_id must be provided.
Authentication Behavior
This endpoint follows Pattern A: Full Account Access.
All authentication methods see the same data - no person filtering is applied.
Response Schema
{
"source_public_key": "community_public_key",
"source_site": {
"protocol": "https",
"fqdn": "arkipel.localhost:3000"
},
"created_at": "2025-03-18T10:30:00Z",
"signature": "8b6392d5550605bd6ccddf9c21ebec470de4b44e4b4deb746076e37ab61c5346e07e7c7c7cebb5bbee41cdd92a476bcd3f02373d146ec165b31c31fc31c9ce0d",
"payload": {
"type": "note:query",
"resource": {
"id": 123,
"import_id": "NOTE-001",
"title": "Meeting Notes",
"body_plain": "Discussion about project timeline...",
"body_html": "<p>Discussion about project timeline...</p>",
"commentable": {
"type": "Person",
"id": 789,
"name": "John Doe",
"import_id": "P001"
},
"created_at": "2025-03-17T09:00:00Z",
"updated_at": "2025-03-17T09:00:00Z"
}
}
}
Response Attributes
-
payload.resource- Object - The requested note:-
id- Integer - Unique identifier -
import_id- String - External reference ID (optional) -
title- String - Note title -
body_plain- String - Note content as plain text -
body_html- String - Note content as HTML -
commentable- Object - The subject this note is about-
type- String - Class name (Person, Organization, Household) -
id- Integer - Subject ID -
name- String - Display name of the subject -
import_id- String - Subject’s import ID (if available)
-
-
created_at- ISO 8601 timestamp - Creation time -
updated_at- ISO 8601 timestamp - Last update time
-
Error Responses
Note Not Found
{
"source_public_key": "community_public_key",
"source_site": {
"protocol": "https",
"fqdn": "arkipel.localhost:3000"
},
"created_at": "2025-03-18T10:30:00Z",
"signature": "...",
"payload": {
"type": "note:query"
},
"error": "Note not found for id: 999999 or import_id: ",
"status": "not_found"
}
Missing Parameters
{
"payload": {
"type": "note:query"
},
"error": "Note not found for id: or import_id: ",
"status": "not_found"
}
Real Life Example
{
"source_public_key": "bwyexzko74pnnjn741936fnaujxyhib9rpx8rggtejwnc3cz6ans",
"source_site": {
"protocol": "https",
"fqdn": "arkipel.co"
},
"created_at": "2026-02-14T14:14:22Z",
"signature": "0b7cf3e421c4d7e4212e2069fbfbfd6734d0809fa3603e492949dc5b948da691f277c601d48b9cbac2bebbfdf697e8e01aa93ff54ae53afab4c5c2272dea0400",
"payload": {
"type": "note:query",
"resource": {
"id": 456,
"import_id": "NOTE-2024-045",
"title": "Budget Review Q1 2026",
"body_plain": "Key points:\n- Revenue up 15%\n- Expenses controlled\n- New hiring approved",
"body_html": "<p>Key points:</p><ul><li>Revenue up 15%</li><li>Expenses controlled</li><li>New hiring approved</li></ul>",
"commentable": {
"type": "Household",
"id": 789,
"name": "Johnson Family",
"import_id": "HH-012"
},
"created_at": "2025-03-10T14:30:00Z",
"updated_at": "2025-03-10T14:30:00Z"
}
}
}
Usage Notes
- This is an ephemeral query - no message is persisted to the database
- Soft-deleted notes return a “not_found” error
- Authentication can be via token, whitelist, or membership
- The note is findable by either
idorimport_id - Both
idandimport_idare checked - the first matching note is returned