TempleDevelopers

    The Temple API

    Read and update your church's data from your own systems: keep a website's group list current, sync people with another tool, or pull giving into a report. Available on Growth and Enterprise plans.

    Getting a token

    A church admin creates one at Settings, System, Integrations, API tokens, and chooses what it may do. It is shown once. Temple keeps only a hash, so a lost token cannot be recovered: revoke it and make a new one. Keep it on a server. Anyone holding it has what it permits.

    curl -H "Authorization: Bearer tmpl_your_token" \
      https://blvxyvvtoetcvvnakfxi.supabase.co/functions/v1/public-api/v1/me
    people:readPeople, tags, custom fields and lists
    people:writeAdd and update people, their tags and field values
    groups:readGroups, rosters, meetings and attendance
    events:readEvents and registrations
    services:readServices, service plans and songs
    giving:readApproved donations

    How it behaves

    • Lists take limit (1 to 100, default 50) and offset, and say where to go next in meta.next_offset, which is null on the last page.
    • Errors look like { "error": { "code", "message" } }, and the message says what to fix.
    • A token sees only its own church. Another church's record reads as 404.
    • 300 requests a minute per token. Over that you get 429 with Retry-After.
    • Dates are YYYY-MM-DD. Times are ISO 8601 in UTC.

    Endpoints

    All paths start with https://blvxyvvtoetcvvnakfxi.supabase.co/functions/v1/public-api/v1.

    Church

    • GET /me

      The church this token belongs to, and its scopes.

    People

    • GET /people

      Filter with search, email, status, tag (a tag id) or updated_since. Archived people are left out unless you ask with status=archived.

    • GET /people/:id

      One person, with their tags, custom fields and groups.

    • POST /people

      first_name and last_name are required. Also email, phone, address, city, province, postal_code, country, date_of_birth, join_date, status and source.

    • PATCH /people/:id

      Any of the same fields.

    • POST /people/:id/tags

      Body: { "tag_id": "..." }

    • DELETE /people/:id/tags/:tagId

      Takes a tag off.

    • PUT /people/:id/fields/:fieldId

      Body: { "value": ... }, in the shape the field's type takes.

    • DELETE /people/:id/fields/:fieldId

      Clears a value.

    • GET /tags

      Every tag.

    • GET /fields

      Custom field definitions.

    • GET /lists

      Audiences and rule-based lists.

    • GET /lists/:id/people

      Who is on a list. Rule-based lists run live.

    Groups

    • GET /groups

      Every group.

    • GET /groups/:id

      One group.

    • GET /groups/:id/members

      Its roster.

    • GET /groups/:id/meetings

      Meetings and who attended.

    Events

    • GET /events

      Every event, newest first.

    • GET /events/:id

      One event.

    • GET /events/:id/registrations

      Who registered, and what they paid.

    Services

    • GET /services

      Services on the calendar.

    • GET /services/:id

      One service.

    • GET /plans

      Service plans.

    • GET /plans/:id

      One plan, with its items in order.

    • GET /songs

      The song library.

    • GET /songs/:id

      One song, with its chart.

    Giving

    • GET /donations

      Approved gifts, filtered with from and to. Event fees are not gifts and are not included.

    Hearing about changes

    To be told when something happens rather than asking, use webhooks, under the same Integrations settings. To put a form on your website, see Temple forms on your website.