House-tops API
Build scripture-centered apps on top of House-tops.
1. Choosing an auth method
X-API-KeyRead-only access to public data (feed, verses, graph). No user context. Best for embeds, dashboards and integrations.
Authorization: BearerAct on behalf of a House-tops user with their consent, limited to granted scopes. Best for third-party apps that read or write user data.
Authorization: BearerFirst-party tokens from /api/v1/auth/token/. For the official House-tops apps only.
2. Public endpoints (no auth)
Rate limited to 300/hour per IP, or 5000/hour with an API key.
3. OAuth2 flow
Register an app to get a client_id (and secret for confidential apps), then:
4. Scopes
| Scope | Grants |
|---|---|
read | Read public data and your profile |
reflections:read | Read your private reflections |
reflections:write | Create and edit reflections |
sermons:read | Read your sermon notes |
sermons:write | Create sermon notes |
post | Publish posts on your behalf |
connections:write | Create verse connections |
A request with a token missing the required scope returns 403.
5. Webhooks
Subscribe to events:
post.created, post.upvoted, connection.created, comment.created.
Each delivery is a POST with headers X-HouseTops-Event and X-HouseTops-Signature (HMAC-SHA256 of the raw body).
Verify the signature (Python):
A webhook is auto-disabled after 10 consecutive delivery failures.
6. Rate limits
| Context | Limit |
|---|---|
| Anonymous | 100 / hour |
| Public API (per IP) | 300 / hour |
| Per API key | 5000 / hour |
| Authenticated user | 1000 / hour |