Developer Docs

Manage your plants, events, photos, and insights programmatically via the REST API, connect AI assistants via MCP, or use the CLI from your terminal.

Authentication

All API and CLI requests require a Bearer token. Generate tokens from Settings → Developer tokens in the app. Tokens use the prefix tnd_mcp_ and are hashed server-side (SHA-256). They are shown once at creation — store them securely.

curl -H "Authorization: Bearer tnd_mcp_..." \
  https://rootnotes.app/api/plants

Scopes

Each token is issued with one or more scopes. By default, new tokens receive all scopes.

ScopeAllows
plants:readList and get plants, events, photos, locations
plants:writeCreate, update, and delete plants and photos
events:writeCreate, update, and delete events
insights:readAccess analytics and insights dashboard data

Rate limits

Write operations (POST, PATCH, DELETE) are limited to 20 requests per minute per user. Read operations are not rate-limited. When you hit the limit, the API returns 429 Too Many Requests.

Error responses

All errors return JSON with an error field and an HTTP status code.

StatusMeaning
400Validation error
401Missing or invalid token
403Insufficient scopes or resource not owned
404Resource not found
429Rate limit exceeded

Full machine-readable API specification available at /openapi.json.