elanotes (sdks/python) is generated with openapi-python-client
and wrapped for automatic Idempotency-Key plus ElanotesError
(reason, hint, help, retry_after_seconds, details).
Workspace-only. Not published to PyPI. Read the bearer from
ELA_API_TOKEN. Create a personal access token in web Settings → Access tokens. Read is included; authenticated note mutations require notes.write. Permissions apply through the SDK just as through HTTP, CLI, and Cloud MCP.
baseUrl is the API origin with no /v1 suffix. A local API uses
Client("http://127.0.0.1:4000").
Search
Create with Idempotency-Key
idempotency_key still send a generated UUID.
A queued write has not changed the note. Inspecting its receipt also requires notes.review when authenticated. With a write-only token, hand the ID to a reviewer; agents must not approve their own proposals.
Handle VERSION_MOVED via hint
node scripts/sdk-generate.mjs --python. Drift check:
node scripts/assert-sdk-current.mjs.
Same contract as the TypeScript SDK.