Status

The Status API provides comprehensive health and status information about your loyalty program.

Endpoints

Get Status Report

Get a comprehensive status report including counts and health metrics for your loyalty program.

Endpoint: GET /status/report

Example Request:

curl -X GET "https://api.monterosa.cloud/loyalty/v1/status/report" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "X-Monterosa-Org-ID: YOUR_ORG_UUID"

Example Response:

{
  "success": true,
  "data": {
    "orgId": "550e8400-e29b-41d4-a716-446655440000",
    "timestamp": "2025-10-05T17:46:12.683Z",
    "status": "healthy",
    "counts": {
      "campaigns": {
        "total": 5,
        "active": 3
      },
      "rules": 12,
      "segments": 4,
      "transactions": 1523,
      "settings": 8,
      "customFields": 3
    },
    "health": {
      "database": "operational",
      "api": "operational"
    }
  }
}

Response Fields

Status

The overall health status of your loyalty program:

  • healthy - All systems operational

  • degraded - Some systems experiencing issues

  • down - Critical systems unavailable

Counts

Summary counts for all major entities:

Field
Description

campaigns.total

Total number of campaigns

campaigns.active

Number of active campaigns

rules

Total number of rules across all campaigns

segments

Number of user segments

transactions

Total transaction count

settings

Number of configured settings

customFields

Number of custom field definitions

Health

Health status for individual system components:

  • database - Database connectivity and performance

  • api - API gateway and Lambda function health

Possible values:

  • operational - Component functioning normally

  • degraded - Component experiencing issues but functional

  • unavailable - Component not accessible

Use Cases

Dashboard Monitoring

Display real-time status on your admin dashboard:

async function updateDashboard() {
  const report = await fetch('/v1/status/report');
  const { data } = await report.json();

  document.getElementById('active-campaigns').textContent = data.counts.campaigns.active;
  document.getElementById('total-transactions').textContent = data.counts.transactions;
  document.getElementById('status').textContent = data.status;
}

Health Checks

Integrate with monitoring systems:

#!/bin/bash
STATUS=$(curl -s "https://api.monterosa.cloud/loyalty/v1/status/report" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Monterosa-Org-ID: $ORG_ID" | jq -r '.data.status')

if [ "$STATUS" != "healthy" ]; then
  echo "ALERT: Loyalty API status is $STATUS"
  # Send alert to monitoring system
fi

Capacity Planning

Monitor growth trends:

import requests
import json

response = requests.get(
    'https://api.monterosa.cloud/loyalty/v1/status/report',
    headers={
        'Authorization': f'Bearer {token}',
        'X-Monterosa-Org-ID': org_id
    }
)

report = response.json()['data']
print(f"Active campaigns: {report['counts']['campaigns']['active']}")
print(f"Total transactions: {report['counts']['transactions']}")
print(f"User segments: {report['counts']['segments']}")

Error Responses

401 Unauthorized:

{
  "success": false,
  "error": {
    "message": "Invalid token"
  }
}

500 Internal Server Error:

{
  "success": false,
  "error": {
    "message": "Failed to generate status report"
  }
}

Best Practices

  1. Monitoring: Poll this endpoint periodically (every 5-10 minutes) for monitoring

  2. Caching: Consider caching the response for 1-2 minutes to reduce load

  3. Alerts: Set up alerts when status changes from healthy

  4. Trending: Track counts over time to identify growth patterns

  5. Documentation: Use the report to understand your loyalty program's scale

Last updated