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