The Trinity Beast – LRS Report Management Guide

Understanding report limits, usage tracking, and the LRS add-on for unlimited reporting

Region: us-east-2 (Ohio) LRS: https://lrs.cpmp-site.org Updated: May 2026

1. Overview

The Listener Report Service (LRS) provides four report endpoints that give you visibility into your API usage and report generation history. Every subscription tier includes LRS access — the difference is how many reports you can generate per month.

All four endpoints count against the same monthly and daily report limits. Every report request — whether it's a usage detail, usage summary, report-usage detail, or report-summary — uses one report from your monthly allowance.

ℹ️ Key concept: The LRS tracks two types of data:
  • API Usage — Every price request you make to the LPO is logged. The /reports/usage and /reports/summary endpoints let you query this data.
  • Report History — Every report you generate is also logged. The /reports/report-usage and /reports/report-summary endpoints let you see your report generation patterns.

2. Report Limits by Tier

TierReports per MonthPrice
Free10$0/mo
Pro10$30/mo
Enterprise10$100/mo
UnlimitedUnlimited$300/mo
LifetimeUnlimited forever$3,000 one-time
⚠️ All reports count equally. A request to /reports/usage, /reports/summary, /reports/report-usage, or /reports/report-summary each consume one report from your monthly allowance. Plan your report requests accordingly.

Monthly counts reset automatically on the first day of each calendar month via the nightly sync job. There is no daily limit — you can use all your reports in a single day or spread them across the month. It's your choice.

3. LRS Add-On — Unlimited Reports

Unlimited LRS Add-On $20/mo

Remove the 10 report/month cap and generate unlimited reports across all four endpoints. Available to Free, Pro, and Enterprise subscribers.

FeatureWithout Add-OnWith Add-On
Monthly report limit10Unlimited
All 4 report endpoints
All 4 output formats
93-day data retention
✅ Already included: Unlimited and Lifetime tier subscribers already have unlimited LRS reports at no extra charge. The add-on is only needed for Free, Pro, and Enterprise tiers.

After purchasing the add-on through Stripe, your API key is automatically upgraded. No configuration changes needed — your next report request will have unlimited access.

4. LRS Report Endpoints

All endpoints require authentication via Authorization: Bearer YOUR_API_KEY header or api_key_id query parameter. All endpoints support four output formats (json, csv, tsv, text).

4.1 GET /reports/usage — API Usage Detail

GET /reports/usage GET

Returns paginated usage log entries showing every price request made with your API key. Each entry includes the asset, price, source, latency, cache status, and more.

Query Parameters

ParameterTypeDefaultDescription
assetstringFilter by asset symbol (e.g. BTC)
start_datestring93 days agoStart date (YYYY-MM-DD)
end_datestringTodayEnd date (YYYY-MM-DD)
cachedboolFilter by cache status: true or false
pageint1Page number
page_sizeint100Records per page (max 1000)
formatstringjsonOutput format: json, csv, tsv, text

Example

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://lrs.cpmp-site.org/reports/usage?asset=BTC&start_date=2026-03-01&page_size=50"

4.2 GET /reports/summary — API Usage Summary

GET /reports/summary GET

Returns aggregated statistics for your API usage over a date range: total requests, cache hit rate, average latency, breakdown by asset and source.

Query Parameters

ParameterTypeDefaultDescription
start_datestring30 days agoStart date (YYYY-MM-DD)
end_datestringTodayEnd date (YYYY-MM-DD)
formatstringjsonOutput format: json, csv, tsv, text

Example

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://lrs.cpmp-site.org/reports/summary?start_date=2026-03-01"

4.3 GET /reports/report-usage — Report History Detail

GET /reports/report-usage GET NEW

Returns detailed logs of every report you have generated. See which reports you ran, when, what filters you used, how many rows were returned, how long each report took, and which server node generated it.

Query Parameters

ParameterTypeDefaultDescription
start_datestring93 days agoStart date (YYYY-MM-DD)
end_datestringTodayEnd date (YYYY-MM-DD)
report_typestringFilter by report type: usage, summary, report-usage, report-summary
output_formatstringFilter by output format used: json, csv, tsv, text
pageint1Page number
page_sizeint100Records per page (max 1000)
formatstringjsonResponse output format: json, csv, tsv, text

Example

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://lrs.cpmp-site.org/reports/report-usage?report_type=usage&page_size=20"

4.4 GET /reports/report-summary — Report History Summary

GET /reports/report-summary GET NEW

Returns aggregated statistics about your report generation history: total reports generated, breakdown by report type, output format, and cluster node, average report duration, and average rows returned.

Query Parameters

ParameterTypeDefaultDescription
start_datestring30 days agoStart date (YYYY-MM-DD)
end_datestringTodayEnd date (YYYY-MM-DD)
formatstringjsonResponse output format: json, csv, tsv, text

Example

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://lrs.cpmp-site.org/reports/report-summary?start_date=2026-03-01"

5. Output Formats

All four report endpoints support the same four output formats. Use the format query parameter to select your preferred format.

FormatContent-TypeUse Case
jsonapplication/jsonDefault. Best for programmatic consumption and APIs.
csvtext/csvComma-separated. Import into Excel, Google Sheets, or any CSV tool.
tsvtext/tab-separated-valuesTab-delimited. Ideal for databases and ETL pipelines.
texttext/plainHuman-readable plain text. Good for quick terminal review.

6. Date Range Rules

All report endpoints enforce consistent date range validation:

RuleDescription
Maximum range90 days. Requests spanning more than 90 days are rejected with a 400 error.
No future datesstart_date cannot be in the future. The LRS only reports on historical data.
Start before endstart_date must be on or before end_date.
FormatDates must be in YYYY-MM-DD format (e.g. 2026-03-15).
Default end_dateIf you provide start_date without end_date, the system defaults to today.
Data retentionUsage logs and report history are retained for 93 days.

7. Error Responses

All LRS error responses are returned as structured JSON with a consistent format, regardless of the requested output format. Every error message includes the 🛑 indicator, the region, cluster node, HTTP status code, and a complete sentence describing the issue.

Error Response Format

{
  "error": "🛑 [LRS] [us-east-2] [BeastMirror] [400] Invalid date format for start_date parameter.",
  "code": 400,
  "service": "LRS",
  "region": "us-east-2",
  "cluster_node": "BeastMirror",
  "timestamp": "2026-05-03T18:30:00Z"
}

Status Indicators & Graduated Usage Warnings

Every LRS response includes a status field and, when usage is elevated, a usage_warning field. The warning thresholds are runtime-tunable via application parameters (default: 85% / 90% / 95%).

Statususage_warningMeaningWhen It Appears
(absent)Normal — usage well within limitsMonthly report usage below 85% of your limit
✅🟡"green"Heads-up — usage above 85%Monthly report usage at or above 85% of your limit
✅⚠️"yellow"Caution — approaching limitMonthly report usage at or above 90% of your limit
✅🔴"red"Critical — near limitMonthly report usage at or above 95% of your limit
🛑🔴"red"Limit exceeded429 error — monthly report limit reached
🛑(absent)ErrorInvalid request, authentication failure, or server error
ℹ️ Same thresholds as LPO: The LRS uses the same graduated warning app parameters as the LPO price API. Default thresholds: green at 85%, yellow at 90%, red at 95%. These are tunable at runtime via the usage_warning_green_pct, usage_warning_yellow_pct, and usage_warning_red_pct application parameters.

Plain-Text Response Format

By default, all LRS responses use the emoji status indicators shown above — the Trinity Beast Convention (TBC) format. If your system does not render emoji well, or you prefer machine-friendly text-only responses, you can request plain-text mode by submitting a support ticket through our Support page.

Once enabled for your API key, all status indicators switch to text equivalents:

TBC (Default)Plain TextMeaning
OKNormal — usage within limits
✅🟡OK - NOTE: usage above 85%Heads-up
✅⚠️OK - WARNING: approaching monthly query limitCaution
✅🔴OK - CRITICAL: near monthly query limitCritical
🛑🔴ERROR - LIMIT EXCEEDED429 — limit reached
🛑 [LRS] ...ERROR [LRS] ...Error responses
✅ [LRS] ...OK [LRS] ...Envelope status line
✅ This setting applies to everything: Once plain-text mode is enabled for your API key, it applies to all LPO price responses, all LRS report responses, and all error messages. The usage_warning field always uses the text level ("green", "yellow", "red") regardless of format — only the status field changes.

Error Codes

HTTP StatusMeaningCommon Cause
400Bad RequestInvalid date format, date range exceeds 90 days, future start date, or start after end.
401UnauthorizedMissing API key, invalid API key, or revoked API key.
429Too Many RequestsMonthly report limit exceeded for your tier. Message includes your current count and limit.
500Internal Server ErrorFailed to query data from cache or database connectivity issue.
503Service UnavailableElastiCache health check failed.

429 — Limit Exceeded Response

When your report limit is exceeded, the response includes your API key, current usage, your limit, usage percentage, the graduated warning level, a link to upgrade, and which server caught the limit:

{
  "error": "🛑 [LRS] [us-east-2] [BeastLRS] [429] Monthly report limit exceeded",
  "code": 429,
  "status": "🛑🔴",
  "service": "LRS",
  "region": "us-east-2",
  "cluster_node": "BeastLRS",
  "timestamp": "2026-05-03T18:30:00Z",
  "api_key_id": "key_abc123",
  "monthly_usage": 10,
  "monthly_limit": 10,
  "usage_pct": 100,
  "usage_warning": "red",
  "upgrade_url": "https://cpmp-site.org/subscribe#lrs-addon"
}

8. Response Examples

Every LRS JSON response includes status, monthly_usage, monthly_limit, usage_pct, tier, and — when usage is elevated — usage_warning. These fields mirror the graduated warning system used by the LPO price API.

8.1 Usage Detail — Success Response (Normal)

Example request: GET /reports/usage?asset=BTC&start_date=2026-04-01&page_size=2

{
  "status": "✅",
  "logs": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789",
      "api_key_id": "key_abc123",
      "asset": "BTC",
      "price": 94250.12,
      "source": "coinbase",
      "cached": false,
      "latency_ms": 0,
      "duration_ms": 2,
      "ip_address": "203.0.113.42",
      "timestamp": 1714761600,
      "readable_timestamp": "2026-05-03T12:00:00Z",
      "cache_age_seconds": 0,
      "region": "us-east-2",
      "cluster_node": "BeastMain"
    },
    {
      "id": "b2c3d4e5-f6a7-8901-bcde-f01234567890",
      "api_key_id": "key_abc123",
      "asset": "BTC",
      "price": 94248.75,
      "source": "gemini",
      "cached": true,
      "latency_ms": 0,
      "duration_ms": 1,
      "ip_address": "203.0.113.42",
      "timestamp": 1714761300,
      "readable_timestamp": "2026-05-03T11:55:00Z",
      "cache_age_seconds": 2.4,
      "region": "us-east-2",
      "cluster_node": "BeastMirror"
    }
  ],
  "total_count": 247,
  "page": 1,
  "page_size": 2,
  "filters": {
    "api_key_id": "key_abc123",
    "asset": "BTC",
    "start_date": "2026-04-01"
  },
  "monthly_usage": 3,
  "monthly_limit": 10,
  "usage_pct": 30,
  "tier": "pro"
}

8.2 Usage Summary — Success Response (Normal)

Example request: GET /reports/summary?start_date=2026-04-01

{
  "status": "✅",
  "total_requests": 1482,
  "cache_hit_rate": 87.45,
  "avg_latency_ms": 1.23,
  "by_asset": {
    "BTC": 612,
    "ETH": 445,
    "SOL": 218,
    "XRP": 207
  },
  "by_source": {
    "coinbase": 520,
    "gemini": 380,
    "kraken": 310,
    "bybit": 272
  },
  "date_range": {
    "start": "2026-04-01",
    "end": "2026-05-03"
  },
  "monthly_usage": 4,
  "monthly_limit": 10,
  "usage_pct": 40,
  "tier": "pro"
}

8.3 Report-Usage Detail — Success Response

Example request: GET /reports/report-usage?start_date=2026-03-16&end_date=2026-04-15&report_type=usage&format=json

{
  "status": "✅",
  "logs": [
    {
      "id": "f7a1b2c3-d4e5-6789-abcd-ef0123456789",
      "api_key_id": "key_abc123",
      "report_type": "usage",
      "report_run_date": "2026-04-15T10:30:00Z",
      "asset_filter": "BTC",
      "start_date_filter": "2026-03-15",
      "end_date_filter": "2026-04-15",
      "max_rows_returned": "247",
      "report_duration_ms": "42",
      "output_format": "json",
      "region": "us-east-2",
      "cluster_node": "BeastMirror"
    },
    {
      "id": "b2c3d4e5-f6a7-8901-bcde-f01234567890",
      "api_key_id": "key_abc123",
      "report_type": "usage",
      "report_run_date": "2026-04-12T08:15:00Z",
      "asset_filter": "ETH",
      "start_date_filter": "2026-04-01",
      "end_date_filter": "2026-04-12",
      "max_rows_returned": "89",
      "report_duration_ms": "28",
      "output_format": "csv",
      "region": "us-east-2",
      "cluster_node": "BeastLRS"
    }
  ],
  "total_count": 2,
  "page": 1,
  "page_size": 100,
  "monthly_usage": 5,
  "monthly_limit": 10,
  "usage_pct": 50,
  "tier": "pro"
}

8.4 Report-Summary — Success Response

Example request: GET /reports/report-summary?start_date=2026-03-16&end_date=2026-04-15&format=json

{
  "status": "✅",
  "total_reports": 7,
  "by_report_type": {
    "usage": 4,
    "summary": 2,
    "report-usage": 1
  },
  "by_output_format": {
    "json": 5,
    "csv": 1,
    "text": 1
  },
  "by_cluster_node": {
    "BeastMirror": 5,
    "BeastLRS": 2
  },
  "avg_duration_ms": 38.71,
  "avg_rows_returned": 2145.86,
  "date_range": {
    "start": "2026-03-16",
    "end": "2026-04-15"
  },
  "monthly_usage": 6,
  "monthly_limit": 10,
  "usage_pct": 60,
  "tier": "pro"
}

Report-Summary (Text)

LRS Report Summary — 2026-03-16 to 2026-04-15
============================================================
Total Reports     : 7
Avg Duration      : 38.71ms
Avg Rows Returned : 2145.86

By Report Type:
  usage            4
  summary          2
  report-usage     1

By Output Format:
  json         5
  csv          1
  text         1

By Cluster Node:
  BeastMirror  5
  BeastLRS     2

8.5 Graduated Warning Examples (All Levels)

As your monthly report usage increases, the status and usage_warning fields change to give you advance notice before hitting your limit. These examples show the metadata fields at each warning level for a Pro tier subscriber with a 10-report monthly limit.

Normal — Below 85% (8 of 10 used)

// 8 of 10 reports used = 80% — below green threshold
{
  "status": "✅",
  ...
  "monthly_usage": 8,
  "monthly_limit": 10,
  "usage_pct": 80,
  "tier": "pro"
  // No usage_warning field — usage is within normal range
}

🟡 Green Warning — At or Above 85% (9 of 10 used)

// 9 of 10 reports used = 90% — above green AND yellow thresholds
{
  "status": "✅⚠️",
  ...
  "monthly_usage": 9,
  "monthly_limit": 10,
  "usage_pct": 90,
  "usage_warning": "yellow",
  "tier": "pro"
}
⚠️ Note: With only 10 reports/month, a single report moves usage by 10%. At 9 of 10 (90%), you jump straight to yellow. With higher limits (e.g., unlimited add-on), you would see the green (85%) level first.

⚠️ Yellow Warning — At or Above 90%

Shown above at 9 of 10 (90%). For subscribers with higher limits, here's what yellow looks like:

// Enterprise subscriber with 50-report limit, 46 used = 92%
{
  "status": "✅⚠️",
  ...
  "monthly_usage": 46,
  "monthly_limit": 50,
  "usage_pct": 92,
  "usage_warning": "yellow",
  "tier": "enterprise"
}

🔴 Red Warning — At or Above 95%

// Enterprise subscriber with 50-report limit, 48 used = 96%
{
  "status": "✅🔴",
  ...
  "monthly_usage": 48,
  "monthly_limit": 50,
  "usage_pct": 96,
  "usage_warning": "red",
  "tier": "enterprise"
}

8.6 Limit Exceeded (429)

When your monthly report limit is reached, the LRS returns a 429 with full usage context and a link to upgrade:

{
  "error": "🛑 [LRS] [us-east-2] [BeastLRS] [429] Monthly report limit exceeded",
  "code": 429,
  "status": "🛑🔴",
  "service": "LRS",
  "region": "us-east-2",
  "cluster_node": "BeastLRS",
  "timestamp": "2026-05-03T18:30:00Z",
  "api_key_id": "key_abc123",
  "monthly_usage": 10,
  "monthly_limit": 10,
  "usage_pct": 100,
  "usage_warning": "red",
  "upgrade_url": "https://cpmp-site.org/subscribe#lrs-addon"
}

8.7 Exempt Tier Response (Unlimited / Lifetime / LRS Add-On)

Subscribers on Unlimited, Lifetime, or with the LRS add-on see unlimited access with zeroed limits:

{
  "status": "✅",
  "total_reports": 42,
  "by_report_type": {
    "usage": 20,
    "summary": 12,
    "report-usage": 6,
    "report-summary": 4
  },
  "by_output_format": {
    "json": 30,
    "csv": 8,
    "tsv": 2,
    "text": 2
  },
  "by_cluster_node": {
    "BeastMain": 18,
    "BeastMirror": 14,
    "BeastLRS": 10
  },
  "avg_duration_ms": 31.45,
  "avg_rows_returned": 1876.33,
  "date_range": {
    "start": "2026-04-01",
    "end": "2026-05-03"
  },
  "monthly_usage": 0,
  "monthly_limit": 0,
  "usage_pct": 0,
  "tier": "unlimited"
}
✅ Exempt tiers: When monthly_limit is 0, it means unlimited. No usage_warning field appears. The status is always .