Overview
The Treehouse Public API lets trusted integrations manage family tasks, calendar events, and lists on behalf of a household. It is designed for assistants and connectors (including Meta Muse).
Base URL: https://api.treehousetasks.com
Authentication
Use a family API key as a Bearer token:
Authorization: Bearer th_live_…
Parents mint a key while signed in by calling the create-api-key Edge Function with their session JWT. The plaintext key is shown once — store it securely.
curl -X POST "https://yphzagdxgsubmkkfhavi.supabase.co/functions/v1/create-api-key" -H "Authorization: Bearer <SUPABASE_USER_ACCESS_TOKEN>" -H "Content-Type: application/json" -d '{"name":"Muse"}'Access requirements
- A Treehouse family account is required.
- Free plan limits still apply inside the product (members, active tasks, events).
- Premium is one household subscription across iPhone, Android, and web.
- API keys are family-scoped and can be revoked by deleting the row / rotating keys.
Tasks
GET /v1/tasks
Lists non-deleted, non-archived tasks. Optional query: status (todo | inProgress | done | backlog), limit (1–100).
curl "https://api.treehousetasks.com/v1/tasks?status=todo" -H "Authorization: Bearer th_live_…"
POST /v1/tasks
Create a task. Body requires title.
GET /v1/tasks/{id}
Fetch one task by id.
PATCH /v1/tasks/{id}
Update title, description, status, or assigned_to.
DELETE /v1/tasks/{id}
Soft-deletes the task (sets deleted_at).
Calendar events
GET /v1/calendar/events
Optional query: start, end (ISO-8601 filters on start_date), limit (1–100).
curl "https://api.treehousetasks.com/v1/calendar/events?start=2026-09-01T00:00:00Z" -H "Authorization: Bearer th_live_…"
POST /v1/calendar/events
Requires title and start_date. Optional: end_date, is_all_day, type (event | task | reminder), recurrence_type, assignees, event_type_id.
GET / PATCH / DELETE /v1/calendar/events/{id}
Fetch, update, or hard-delete one event.
Lists & items
GET / POST /v1/lists
List or create family lists (create requires title).
GET / PATCH / DELETE /v1/lists/{id}
Fetch, update, or soft-delete a list.
GET / POST /v1/lists/{id}/items
List or create items under a list (create requires title).
PATCH / DELETE /v1/lists/{listId}/items/{itemId}
Update (including is_completed) or hard-delete an item. Parent list must belong to the API key's family.
Other
GET /health
Unauthenticated health check.
GET /v1/me
Returns the family id/name for the API key.
Rate limits & privacy
Authenticated requests are limited to 100 requests per API key per minute (fixed window). Over the limit, the API returns 429 with Retry-After and X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset headers. Health and OpenAPI are not counted.
Treat keys like passwords. Do not embed them in public client apps. See our Privacy Policy and Terms of Service.
Contact
Questions: support@treehousetasks.com