API Documentation

Complete reference for integrating GatherGuard into your faith-based application.

Authentication

All API requests require authentication using your API key in the Authorization header:

Authorization: Bearer your_api_key_here

You can obtain your API key from the dashboard after signing up.

Error Handling

The API uses conventional HTTP response codes:

Code Description
200 Success
400 Bad Request - Invalid parameters
401 Unauthorized - Invalid API key
500 Server Error

Get Trust Score

POST /trust-score

Retrieve the trust score for a specific user in your organization.

Request Body

Parameter Type Required Description
userId string Required The unique identifier of the user
orgId string Required Your organization ID

Example Request

curl -X POST https://api.gatherguard.org/trust-score \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ 
    "userId": "user_123",
    "orgId": "org_abc"
  }'

Example Response

{
  "userId": "user_123",
  "orgId": "org_abc",
  "trustScore": 75,
  "badges": ["verified", "active_member"],
  "flags": [],
  "lastCalculated": "2025-11-06T12:00:00Z"
}

Log Trust Event

POST /trust-event

Log an event that affects a user's trust score. The score will be automatically recalculated.

Request Body

Parameter Type Required Description
userId string Required The user ID
orgId string Required Your organization ID
eventType string Required Type of event (see list below)
value number Optional Custom point value (defaults to preset)
metadata object Optional Additional context data

Event Types

  • attended_gathering (+5 points)
  • prayer_request (+3 points)
  • community_vouch (+10 points)
  • content_flagged (-15 points)
  • content_approved (+5 points)
  • account_verified (+10 points)
  • completed_profile (+5 points)
  • joined_group (+3 points)
  • led_group (+8 points)

Example Request

curl -X POST https://api.gatherguard.org/trust-event \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ 
    "userId": "user_123",
    "orgId": "org_abc",
    "eventType": "attended_gathering",
    "metadata": {
      "gatheringId": "gathering_456"
    }
  }'

Example Response

{
  "success": true,
  "userId": "user_123",
  "eventType": "attended_gathering",
  "value": 5,
  "newTrustScore": 80,
  "badges": ["verified", "active_member"],
  "flags": []
}

Flag Content

POST /content-flag

Flag user-generated content for moderation review.

Request Body

Parameter Type Required Description
reporterUserId string Required User who is reporting
contentId string Required ID of the content being flagged
contentType string Required Type: post, comment, prayer_request, event, profile
reason string Required Reason: spam, harassment, inappropriate, etc.
reasonDetails string Optional Additional context
orgId string Required Your organization ID

Example Response

{
  "success": true,
  "flagId": "flag_789",
  "contentId": "post_456",
  "status": "pending",
  "flaggedAt": "2025-11-06T12:30:00Z",
  "totalFlags": 2,
  "needsReview": false,
  "message": "Content flag recorded"
}

Verify Attendance

POST /verify-attendance

Verify that a user attended a gathering or meeting.

Request Body

Parameter Type Required Description
userId string Required User who attended
meetingId string Required Unique ID of the meeting/gathering
orgId string Required Your organization ID
meetingType string Optional gathering, prayer_group, bible_study, service

Example Response

{
  "success": true,
  "userId": "user_123",
  "meetingId": "meeting_456",
  "verified": true,
  "newTrustScore": 85,
  "totalMeetings": 5,
  "consistentAttendanceBonus": true,
  "message": "Attendance verified! Bonus awarded."
}

Get Moderation Queue

POST /moderation-queue

Retrieve flagged content that needs moderation review.

Request Body

Parameter Type Required Description
orgId string Required Your organization ID
status string Optional pending, reviewed, actioned, dismissed (default: pending)
limit number Optional Number of results (default: 50)
offset number Optional Pagination offset (default: 0)

Example Response

{
  "flags": [
    {
      "id": "flag_123",
      "contentId": "post_456",
      "contentType": "post",
      "reason": "spam",
      "reporterUserId": "user_789",
      "status": "pending",
      "createdAt": "2025-11-06T12:00:00Z",
      "totalFlags": 3,
      "priority": "high"
    }
  ],
  "total": 1,
  "hasMore": false
}

Rate Limits

API requests are rate limited based on your plan:

  • Beta: 1,000 requests/hour
  • Starter: 5,000 requests/hour
  • Growth: 20,000 requests/hour
  • Enterprise: Custom limits

Support

Need help? Contact us at info@gatherguard.org