Skip to main content
v1 · Read-only

The GraceBase API is live and currently read-only. Generate a key under Settings → Developers. Write endpoints and an official SDK are coming next.

API Documentation

Build on
GraceBase.

A RESTful API for reading your church data — members, giving, funds, and events. Authenticate with an API key and start building.

Create an API key

Getting Started

Create a key, send your first request, and you're reading data.

API Key Authentication

Generate scoped keys in Settings → Developers and pass them as a Bearer token. Keys are shown once and can be revoked anytime.

RESTful & JSON

Standard HTTP methods and status codes. Lists use cursor pagination with a consistent response envelope.

Scopes & Rate Limits

Each key is limited to the scopes you choose (e.g. members:read). Up to 100 requests per 10 seconds per key.

SDK (coming soon)

An official TypeScript SDK (@gracebase/api) is on the way. For now, any HTTP client works.

Quick Start

javascript
// 1. Create an API key in the dashboard:
//    Settings → Developers → Create key (shown once)

// 2. Call the API with your key as a Bearer token:
const res = await fetch(
  "https://www.gracebase.co/api/v1/members?limit=10",
  { headers: { Authorization: "Bearer gb_live_..." } }
);

const { data, pagination } = await res.json();
console.log(data);

Authentication

Every request requires an API key in the Authorization header. Generate keys from Settings → Developers in your dashboard. A key only grants the scopes you select.

Base URL

https://www.gracebase.co/api/v1
javascript
const response = await fetch("https://www.gracebase.co/api/v1/members", {
  headers: {
    Authorization: "Bearer gb_live_your_key",
  },
});

const { data, pagination } = await response.json();

API Endpoints

Read endpoints for your church data. Write endpoints are coming in v2.

Members

GET
/v1/members

List members (filters: status, updatedSince, cursor, limit)

GET
/v1/members/:id

Get a specific member by ID

Donations

GET
/v1/donations

List donations (filters: from, to, fundId). Includes refund metadata

GET
/v1/donations/:id

Get a specific donation by ID

Funds

GET
/v1/funds

List giving funds

GET
/v1/funds/:id

Get a specific fund by ID

Events

GET
/v1/events

List events (filters: from, to)

GET
/v1/events/:id

Get a specific event by ID

Responses & Pagination

Lists return a data array plus a pagination object. Pass the nextCursor back as ?cursor= to page through results. Errors use a consistent { error } envelope with standard HTTP status codes.

javascript
// Every list response is shaped consistently:
{
  "data": [ /* records */ ],
  "pagination": { "nextCursor": "abc123", "hasMore": true }
}

// Fetch the next page with the cursor:
//   GET https://www.gracebase.co/api/v1/donations?cursor=abc123&limit=50

// Errors use a matching envelope:
{ "error": { "code": "forbidden", "message": "..." } }

What You Can Build

Read access opens up reporting, sync, and custom experiences.

Custom Dashboards

Pull members, giving, and events into your own analytics platform or build custom reports.

Accounting & Data Warehouse

Sync giving data (with refund metadata) into your accounting tools or a data warehouse.

Read-Only Apps

Power a member directory or giving dashboard with secure, scoped read access.

Automation Platforms

Use Zapier or Make to read GraceBase data on a schedule and pipe it elsewhere.

Ready to build?

Create your first API key in the dashboard and start reading your church data in minutes.