Beta notice

The API and this website are in beta and subject to change. If you plan to use the API, we highly recommend subscribing to the newsletter for updates.

TempleDB API

Access comprehensive temple data programmatically. Read-only API with flexible field selection and pagination.

Endpoints

Get All Temples

List Temples
https://templedb.org/api/temples
Loading...

Default fields: id, name, status, image.

Query parameters

  • fields — comma-separated fields (e.g. id,name,status).
  • limit — results per page (default 20, max 100).
  • offset — zero-based offset.
  • page — 1-based page number (alternative to offset).
  • status — filter by temple status (e.g. Operating, Announced).
  • search — search by temple name, address, city, state, or country (case-insensitive).

Get Single Temple

Need a temple ID? View the complete list of temple IDs.

GET /api/temples/salt-lake-temple
https://templedb.org/api/temples/salt-lake-temple
Loading...

Returns full temple data. Use fields parameter to limit fields.

Submit Edit Request

Create an edit request for an existing temple or submit a new temple request. No authentication required.

Endpoint

POST /api/temples/edit-requests

Request Body

{
  "templeId": "string",           // Temple ID to edit
  "changes": { ... },             // Fields to update
  "userId": "string (optional)",  // User ID (defaults to "anonymous")
  "userEmail": "string (optional)" // User email (defaults to "anonymous@templedb.org")
}

Requirements

  • templeId and changes are required.
  • For new temple requests, changes.name is required.
  • For existing temple edits, provide any subset of fields to update.

Example: Edit Existing Temple

curl -X POST https://templedb.org/api/temples/edit-requests \
  -H "Content-Type: application/json" \
  -d '{
    "templeId": "salt-lake-temple",
    "changes": {
      "description": "Updated description"
    }
  }'

Create New Temple

Note: you must include a name field.

curl -X POST https://templedb.org/api/temples/edit-requests \
  -H "Content-Type: application/json" \
  -d '{
    "templeId": "new-temple-chicago",
    "changes": {
      "name": "Chicago Temple",
      "status": "Announced",
      "location": {
        "city": "Chicago",
        "state": "Illinois",
        "country": "United States"
      }
    }
  }'

Success Response (201)

{
  "success": true,
  "message": "Edit request created successfully",
  "data": {
    "editRequestId": "doc-id-12345",
    "templeId": "salt-lake-temple",
    "userId": "anonymous",
    "timestamp": "2026-01-20T12:34:56.789Z"
  }
}

Error Responses

  • 400 Bad Request: Missing templeId or changes.
  • 400 Bad Request: New temple request without changes.name.
  • 500 Internal Server Error: Server configuration issue.

Edit requests are reviewed and approved by administrators before being applied to the database.

Live examples

Default (no fields) — returns id,name,status,image
https://templedb.org/api/temples
Loading...
Fields filter — id,name,status
https://templedb.org/api/temples?fields=id,name,status
Loading...
Pagination — page=2&limit=5
https://templedb.org/api/temples?page=2&limit=5
Loading...
Search — search=provo
https://templedb.org/api/temples?search=provo
Loading...
Search with filters — search=provo&fields=id,name,status,location.city
https://templedb.org/api/temples?search=provo&fields=id,name,status,location.city
Loading...

No filters (all fields)

GET /api/temples/salt-lake-temple
https://templedb.org/api/temples/salt-lake-temple
Loading...

With specific fields

GET /api/temples/salt-lake-temple?fields=...
https://templedb.org/api/temples/salt-lake-temple?fields=id,name,status,location.address,location.city,presidents
Loading...

Get temple districts

GET /api/temples/salt-lake-temple?fields=id,name,districts
https://templedb.org/api/temples/salt-lake-temple?fields=id,name,districts
Loading...

Get dedicatory prayer

GET /api/temples/salt-lake-temple?fields=id,name,dedicatoryPrayer
https://templedb.org/api/temples/salt-lake-temple?fields=id,name,dedicatoryPrayer
Loading...

Available fields

Use fields to request a comma-separated list. Nested properties can be requested using dot notation (for example location.city).

  • id, name, status, description
  • location: location.latitude, location.longitude, location.address, location.city, location.state, location.country, location.postalCode, location.phone, location.officialLocation
  • links: links.official, links.appointment, links.dedicatoryPrayer, links.unofficial
  • services: services.templeClothing, services.templeHousing, services.arrivalCenter, services.visitorsCenter, services.distributionCenter
  • presidents, districts, timeline, closures, dedicatoryPrayer
  • info: info.rooms, info.totalfloorarea, info.elevation, info.site, info.numberDedicated
  • media / media.*: media items (photographs/videos) and fields like media, media.thumb, media.caption, media.credit, media.youtubeID