Developers

Rategyde API

Programmatic access to Nigerian mutual fund performance — YTD returns, NAV, fund managers, benchmarks and market aggregates. Data is sourced from SEC Nigeria and FMAN and refreshed every business day.

Getting started

  1. 1

    Request an API key

    Keys are issued to partners on request. Contact us with your use case and we will issue a key with the scopes you need. Each key is shown exactly once — store it securely.

  2. 2

    Authenticate every request

    Send your key as a Bearer token in the Authorization header. Keys are scoped per endpoint group and rate-limited per minute.

  3. 3

    Make your first call

    All endpoints return JSON. List responses are paginated and include total counts; single-object responses are wrapped in a data envelope.

Request API accessAPI keys are required for access and provided to partners only.
bashcurl https://rategyde.com/api/v1/funds?limit=5 \
  -H "Authorization: Bearer rg_live_your_key_here"

Authentication

Pass your key as a Bearer token. Keys are prefixed rg_live_ and validated with a keyed hash — we never store the plaintext key.

Authorization: Bearer rg_live_your_key_here

Rate limits

Limits are applied per key per minute (default 30, max 100). Every response includes your budget so you can throttle client-side:

  • X-RateLimit-Limit: 30
  • X-RateLimit-Remaining: 12
  • Reset in: 2m 30s
  • Retry-After: 18s

Try it live

Experiment with the API directly from your browser.

API Explorer

Run a configured request against the API. Configure via the modal.

Enter and verify an API key to enable Configure and Send.
No endpoint configured — click Configure to choose an endpoint and parameters.
Verify your API key to enable request configuration and sending.

Endpoints

GET/api/v1/fundsscope: funds:read

List funds

Paginated list of all tracked funds with their latest year-to-date return. Filter by category or manager, or search by fund name.

ParamTypeDescription
pageintegerPage number (default 1).
limitintegerResults per page, 1–100 (default 20).
categorystringExact category, e.g. Money Market Funds.
managerstringExact fund manager name.
searchstringCase-insensitive fund name search.

Example request

Show
curl https://rategyde.com/api/v1/funds?limit=5&category=Money Market Funds \
  -H "Authorization: Bearer $RATEGYDE_API_KEY"

Sample response

Show
{
  "data": [
    {
      "id": "138",
      "slug": "stanbic-ibtc-money-market-fund",
      "fund_name": "Stanbic IBTC Money Market Fund",
      "fund_manager": "Stanbic IBTC Asset Management",
      "fund_category": "Money Market Funds",
      "latest_ytd": 17.42,
      "latest_date": "2026-08-07",
      "source": "SEC"
    }
  ],
  "total": 74,
  "page": 1,
  "limit": 5,
  "totalPages": 15
}
GET/api/v1/funds/{id}scope: funds:read

Get fund detail

Full detail for a single fund, including NAV, offer price and unit holders. Dollar funds also include USD-converted values using the latest CBN rate.

ParamTypeDescription
idintegerNumeric fund id from the list endpoint.

Example request

Show
curl https://rategyde.com/api/v1/funds/138 \
  -H "Authorization: Bearer $RATEGYDE_API_KEY"

Sample response

Show
{
  "data": {
    "id": "138",
    "slug": "stanbic-ibtc-money-market-fund",
    "fund_name": "Stanbic IBTC Money Market Fund",
    "fund_manager": "Stanbic IBTC Asset Management",
    "fund_category": "Money Market Funds",
    "latest_ytd": 17.42,
    "latest_date": "2026-08-07",
    "source": "SEC",
    "latest_nav": 214.55,
    "latest_offer_price": 215.62,
    "latest_unitholders": 12841,
    "usd_nav": null,
    "usd_offer_price": null,
    "usd_exchange_rate": null
  }
}
GET/api/v1/funds/rankingsscope: funds:read

Fund rankings

Funds ranked by current YTD return, highest first. Optionally filter by category.

ParamTypeDescription
pageintegerPage number (default 1).
limitintegerResults per page, 1–100 (default 20).
categorystringExact category filter.

Example request

Show
curl https://rategyde.com/api/v1/funds/rankings?limit=10 \
  -H "Authorization: Bearer $RATEGYDE_API_KEY"

Sample response

Show
{
  "data": [
    {
      "id": "92",
      "slug": "vetiva-capital-management-fund",
      "fund_name": "Vetiva Capital Management Fund",
      "fund_manager": "Vetiva Capital Management",
      "fund_category": "Equity Funds",
      "latest_ytd": 41.87,
      "latest_date": "2026-08-07",
      "source": "SEC"
    }
  ],
  "total": 68,
  "page": 1,
  "limit": 10,
  "totalPages": 7
}
GET/api/v1/managersscope: managers:read

List fund managers

Aggregated fund managers sorted by assets under management — fund counts, total AUM, categories and top-performing fund.

ParamTypeDescription
pageintegerPage number (default 1).
limitintegerResults per page, 1–100 (default 20).
searchstringCase-insensitive manager name search.

Example request

Show
curl https://rategyde.com/api/v1/managers?limit=5 \
  -H "Authorization: Bearer $RATEGYDE_API_KEY"

Sample response

Show
{
  "data": [
    {
      "manager_name": "Stanbic IBTC Asset Management",
      "slug": "stanbic-ibtc-asset-management",
      "total_funds": 6,
      "total_aum": 1850000000000,
      "category_count": 4,
      "top_fund_name": "Stanbic IBTC Money Market Fund",
      "top_ytd": 17.42,
      "latest_date": "2026-08-07"
    }
  ],
  "total": 24,
  "page": 1,
  "limit": 5,
  "totalPages": 5
}
GET/api/v1/managers/{slug}scope: managers:read

Get manager detail

A single fund manager with aggregates and the full list of funds they manage.

ParamTypeDescription
slugstringManager slug from the list endpoint.

Example request

Show
curl https://rategyde.com/api/v1/managers/stanbic-ibtc-asset-management \
  -H "Authorization: Bearer $RATEGYDE_API_KEY"

Sample response

Show
{
  "data": {
    "manager_name": "Stanbic IBTC Asset Management",
    "slug": "stanbic-ibtc-asset-management",
    "total_funds": 6,
    "total_aum": 1850000000000,
    "category_count": 4,
    "top_fund": { "name": "Stanbic IBTC Money Market Fund", "ytd": 17.42 },
    "latest_date": "2026-08-07",
    "funds": [
      {
        "id": "138",
        "slug": "stanbic-ibtc-money-market-fund",
        "fund_name": "Stanbic IBTC Money Market Fund",
        "fund_category": "Money Market Funds",
        "latest_ytd": 17.42,
        "latest_nav": 214.55,
        "latest_date": "2026-08-07"
      }
    ]
  }
}
GET/api/v1/benchmarksscope: benchmarks:read

Benchmarks

Latest macro benchmarks: CBN Monetary Policy Rate, 91-day T-bill yield and CPI inflation.

Example request

Show
curl https://rategyde.com/api/v1/benchmarks \
  -H "Authorization: Bearer $RATEGYDE_API_KEY"

Sample response

Show
{
  "data": {
    "mpr": { "indicator": "mpr", "value": 27.5, "effective_date": "2025-02-01", "source": "manual" },
    "tbill_91d": { "indicator": "tbill_91d", "value": 18.0, "effective_date": "2025-01-01", "source": "manual" },
    "inflation_cpi": { "indicator": "inflation_cpi", "value": 24.23, "effective_date": "2025-06-01", "source": "World Bank" }
  }
}
GET/api/v1/market/summaryscope: market:read

Market summary

Whole-market snapshot: total NAV, fund and manager counts, per-category aggregates and the top 20 managers by market share.

Example request

Show
curl https://rategyde.com/api/v1/market/summary \
  -H "Authorization: Bearer $RATEGYDE_API_KEY"

Sample response

Show
{
  "data": {
    "as_of": "2026-08-07",
    "total_nav": 5200000000000,
    "total_funds": 76,
    "total_managers": 24,
    "categories": [
      { "category": "Money Market Funds", "total_nav": 2100000000000, "fund_count": 28, "avg_ytd": 16.8 }
    ],
    "top_managers": [
      { "manager": "Stanbic IBTC Asset Management", "total_nav": 1850000000000, "market_share": 35.6, "fund_count": 6, "avg_ytd": 15.9 }
    ]
  }
}

Client examples

JavaScript / Node

Show
javascriptconst res = await fetch(
  "https://rategyde.com/api/v1/funds?limit=5",
  { headers: { Authorization: `Bearer ${process.env.RATEGYDE_API_KEY}` } }
);
const { data, total, page, limit, totalPages } = await res.json();

Python

Show
pythonimport os, requests

res = requests.get(
    "https://rategyde.com/api/v1/funds",
    params={"limit": 5},
    headers={"Authorization": f"Bearer {os.environ['RATEGYDE_API_KEY']}"},
)
res.raise_for_status()
funds = res.json()["data"]

Error handling

Errors always return a JSON body with a stable machine-readable code:

json{
  "error": "Scope 'managers:read' required",
  "code": "FORBIDDEN"
}
CodeHTTPMeaning
UNAUTHORIZED401Missing or malformed Authorization header.
INVALID_KEY401The API key is unknown, revoked, or does not match.
FORBIDDEN403Your key does not have the scope required for this endpoint.
VALIDATION_ERROR400A query parameter failed validation (e.g. limit out of range).
NOT_FOUND404The requested fund or manager does not exist.
RATE_LIMITED429Per-key request budget exhausted for the current minute.
INTERNAL_ERROR500Something went wrong on our side. Retry with backoff.

Data semantics

  • YTD values are annualised per-annum rates, not cumulative returns since 1 January.
  • Each record carries latest_date (data date) and source — SEC filings with FMAN daily-price fallback.
  • Dollar-denominated funds include NGN values; USD conversions use the latest CBN central rate.
  • Data refreshes each business day; cache politely and respect rate limits.

Ready to build?

Tell us what you are building and we will issue a partner key with the right scopes and limits.

Request API access
Use your own API key to test the explorer.