Preview. Launching November 2026.

LitFin Insights: Public API

Banking and finance training intelligence, as a feed.

A subscription API for regulators, central banks, and research institutions. Every metric is an anonymized, training-derived aggregate on competency, readiness, and training reach, never live credit-market data, and every response ships with a privacy envelope you can cite: k-anonymity bucket, differential privacy epsilon, and upstream source count.

Subscription tiers

Pick the tier that matches your mandate.

Research

Universities, think tanks, journalists

TBA

Pricing disclosed at access request

Quota
500 queries per month
Granularity
Weekly and monthly
  • Five-year historical window
  • Weekly and monthly granularity
  • Full privacy envelope on every response
  • Attribution required in published work

Institutional

Banks, asset managers, rating agencies

TBA

Pricing disclosed at access request

Quota
10,000 queries per month
Granularity
Daily, weekly, monthly
  • Seven-year historical window
  • All metrics, all regions
  • Higher per-minute burst allowance
  • Dedicated onboarding engineer

Regulator

Central banks, national supervisors

TBA

Pricing disclosed at access request

Quota
Unlimited
Granularity
Daily, weekly, monthly
  • Ten-year historical window
  • Daily data, no upper query cap
  • Direct line to the aggregation team
  • Complimentary access for BOT, BCEAO, CBK

Example queries

One endpoint. Many questions.

POST to /api/insights/v1/query. All responses carry a privacy envelope suitable for citation.

credit_demand_index

curl -X POST https://litfin-training.com/api/insights/v1/query \
  -H "Authorization: Bearer lfn_insight_..." \
  -H "Content-Type: application/json" \
  -d '{
    "metric": "credit_demand_index",
    "region": { "country": "TZ" },
    "dateRange": { "from": "<YYYY-MM-DD>", "to": "<YYYY-MM-DD>" },
    "granularity": "monthly"
  }'
{
  "success": true,
  "data": {
    "series": [
      { "t": "<YYYY-MM-DD>", "value": <number>, "unit": "<unit>",
        "ci95Low": <number|null>, "ci95High": <number|null> }
    ],
    "metadata": {
      "privacyLevel": "<k-anonymous|dp-noised>",
      "kAnonymity": <number|null>,
      "epsilonDP": <number|null>,
      "sourceCount": <number>,
      "suppressedBuckets": <number|null>
    },
    "generatedAt": "<ISO-8601>"
  }
}

approval_rate

curl -X POST https://litfin-training.com/api/insights/v1/query \
  -H "Authorization: Bearer lfn_insight_..." \
  -H "Content-Type: application/json" \
  -d '{
    "metric": "approval_rate",
    "region": { "country": "TZ" },
    "dateRange": { "from": "<YYYY-MM-DD>", "to": "<YYYY-MM-DD>" },
    "granularity": "monthly"
  }'
{
  "success": true,
  "data": {
    "series": [
      { "t": "<YYYY-MM-DD>", "value": <number>, "unit": "<unit>",
        "ci95Low": <number|null>, "ci95High": <number|null> }
    ],
    "metadata": {
      "privacyLevel": "<k-anonymous|dp-noised>",
      "kAnonymity": <number|null>,
      "epsilonDP": <number|null>,
      "sourceCount": <number>,
      "suppressedBuckets": <number|null>
    },
    "generatedAt": "<ISO-8601>"
  }
}

default_rate

curl -X POST https://litfin-training.com/api/insights/v1/query \
  -H "Authorization: Bearer lfn_insight_..." \
  -H "Content-Type: application/json" \
  -d '{
    "metric": "default_rate",
    "region": { "country": "TZ" },
    "dateRange": { "from": "<YYYY-MM-DD>", "to": "<YYYY-MM-DD>" },
    "granularity": "monthly"
  }'
{
  "success": true,
  "data": {
    "series": [
      { "t": "<YYYY-MM-DD>", "value": <number>, "unit": "<unit>",
        "ci95Low": <number|null>, "ci95High": <number|null> }
    ],
    "metadata": {
      "privacyLevel": "<k-anonymous|dp-noised>",
      "kAnonymity": <number|null>,
      "epsilonDP": <number|null>,
      "sourceCount": <number>,
      "suppressedBuckets": <number|null>
    },
    "generatedAt": "<ISO-8601>"
  }
}

portfolio_yield

curl -X POST https://litfin-training.com/api/insights/v1/query \
  -H "Authorization: Bearer lfn_insight_..." \
  -H "Content-Type: application/json" \
  -d '{
    "metric": "portfolio_yield",
    "region": { "country": "TZ" },
    "dateRange": { "from": "<YYYY-MM-DD>", "to": "<YYYY-MM-DD>" },
    "granularity": "monthly"
  }'
{
  "success": true,
  "data": {
    "series": [
      { "t": "<YYYY-MM-DD>", "value": <number>, "unit": "<unit>",
        "ci95Low": <number|null>, "ci95High": <number|null> }
    ],
    "metadata": {
      "privacyLevel": "<k-anonymous|dp-noised>",
      "kAnonymity": <number|null>,
      "epsilonDP": <number|null>,
      "sourceCount": <number>,
      "suppressedBuckets": <number|null>
    },
    "generatedAt": "<ISO-8601>"
  }
}

npl_ratio

curl -X POST https://litfin-training.com/api/insights/v1/query \
  -H "Authorization: Bearer lfn_insight_..." \
  -H "Content-Type: application/json" \
  -d '{
    "metric": "npl_ratio",
    "region": { "country": "TZ" },
    "dateRange": { "from": "<YYYY-MM-DD>", "to": "<YYYY-MM-DD>" },
    "granularity": "monthly"
  }'
{
  "success": true,
  "data": {
    "series": [
      { "t": "<YYYY-MM-DD>", "value": <number>, "unit": "<unit>",
        "ci95Low": <number|null>, "ci95High": <number|null> }
    ],
    "metadata": {
      "privacyLevel": "<k-anonymous|dp-noised>",
      "kAnonymity": <number|null>,
      "epsilonDP": <number|null>,
      "sourceCount": <number>,
      "suppressedBuckets": <number|null>
    },
    "generatedAt": "<ISO-8601>"
  }
}

avg_ticket_size

curl -X POST https://litfin-training.com/api/insights/v1/query \
  -H "Authorization: Bearer lfn_insight_..." \
  -H "Content-Type: application/json" \
  -d '{
    "metric": "avg_ticket_size",
    "region": { "country": "TZ" },
    "dateRange": { "from": "<YYYY-MM-DD>", "to": "<YYYY-MM-DD>" },
    "granularity": "monthly"
  }'
{
  "success": true,
  "data": {
    "series": [
      { "t": "<YYYY-MM-DD>", "value": <number>, "unit": "<unit>",
        "ci95Low": <number|null>, "ci95High": <number|null> }
    ],
    "metadata": {
      "privacyLevel": "<k-anonymous|dp-noised>",
      "kAnonymity": <number|null>,
      "epsilonDP": <number|null>,
      "sourceCount": <number>,
      "suppressedBuckets": <number|null>
    },
    "generatedAt": "<ISO-8601>"
  }
}

disbursement_volume

curl -X POST https://litfin-training.com/api/insights/v1/query \
  -H "Authorization: Bearer lfn_insight_..." \
  -H "Content-Type: application/json" \
  -d '{
    "metric": "disbursement_volume",
    "region": { "country": "TZ" },
    "dateRange": { "from": "<YYYY-MM-DD>", "to": "<YYYY-MM-DD>" },
    "granularity": "monthly"
  }'
{
  "success": true,
  "data": {
    "series": [
      { "t": "<YYYY-MM-DD>", "value": <number>, "unit": "<unit>",
        "ci95Low": <number|null>, "ci95High": <number|null> }
    ],
    "metadata": {
      "privacyLevel": "<k-anonymous|dp-noised>",
      "kAnonymity": <number|null>,
      "epsilonDP": <number|null>,
      "sourceCount": <number>,
      "suppressedBuckets": <number|null>
    },
    "generatedAt": "<ISO-8601>"
  }
}

vicoba_participation_rate

curl -X POST https://litfin-training.com/api/insights/v1/query \
  -H "Authorization: Bearer lfn_insight_..." \
  -H "Content-Type: application/json" \
  -d '{
    "metric": "vicoba_participation_rate",
    "region": { "country": "TZ" },
    "dateRange": { "from": "<YYYY-MM-DD>", "to": "<YYYY-MM-DD>" },
    "granularity": "monthly"
  }'
{
  "success": true,
  "data": {
    "series": [
      { "t": "<YYYY-MM-DD>", "value": <number>, "unit": "<unit>",
        "ci95Low": <number|null>, "ci95High": <number|null> }
    ],
    "metadata": {
      "privacyLevel": "<k-anonymous|dp-noised>",
      "kAnonymity": <number|null>,
      "epsilonDP": <number|null>,
      "sourceCount": <number>,
      "suppressedBuckets": <number|null>
    },
    "generatedAt": "<ISO-8601>"
  }
}

female_borrower_share

curl -X POST https://litfin-training.com/api/insights/v1/query \
  -H "Authorization: Bearer lfn_insight_..." \
  -H "Content-Type: application/json" \
  -d '{
    "metric": "female_borrower_share",
    "region": { "country": "TZ" },
    "dateRange": { "from": "<YYYY-MM-DD>", "to": "<YYYY-MM-DD>" },
    "granularity": "monthly"
  }'
{
  "success": true,
  "data": {
    "series": [
      { "t": "<YYYY-MM-DD>", "value": <number>, "unit": "<unit>",
        "ci95Low": <number|null>, "ci95High": <number|null> }
    ],
    "metadata": {
      "privacyLevel": "<k-anonymous|dp-noised>",
      "kAnonymity": <number|null>,
      "epsilonDP": <number|null>,
      "sourceCount": <number>,
      "suppressedBuckets": <number|null>
    },
    "generatedAt": "<ISO-8601>"
  }
}

msme_new_origination

curl -X POST https://litfin-training.com/api/insights/v1/query \
  -H "Authorization: Bearer lfn_insight_..." \
  -H "Content-Type: application/json" \
  -d '{
    "metric": "msme_new_origination",
    "region": { "country": "TZ" },
    "dateRange": { "from": "<YYYY-MM-DD>", "to": "<YYYY-MM-DD>" },
    "granularity": "monthly"
  }'
{
  "success": true,
  "data": {
    "series": [
      { "t": "<YYYY-MM-DD>", "value": <number>, "unit": "<unit>",
        "ci95Low": <number|null>, "ci95High": <number|null> }
    ],
    "metadata": {
      "privacyLevel": "<k-anonymous|dp-noised>",
      "kAnonymity": <number|null>,
      "epsilonDP": <number|null>,
      "sourceCount": <number>,
      "suppressedBuckets": <number|null>
    },
    "generatedAt": "<ISO-8601>"
  }
}

Privacy, by default

Every response is citable.

  • privacyLevel. public, k-anonymous, or dp-noised. Never ambiguous.
  • kAnonymity. The minimum bucket size applied before any value was released.
  • epsilonDP. The differential privacy budget spent on this query, when DP noise is applied.
  • sourceCount. Independent upstream contributors behind the aggregate.

Request access.

Tell us your mandate, your organisation, and which metrics you need. We respond within two business days.

Email insights@litfin-training.com