Developers

API Reference

A small read-only API for pulling your own metrics, goals, and connected platforms into spreadsheets, dashboards, or scripts. Every request is scoped to the account that owns the API key — there’s no way to read another creator’s data.

Authentication

Generate a key from Settings. Keys start with mf_live_ and are shown once at creation — store it somewhere safe, since we only keep a hash of it. Send it as a bearer token on every request:

Authorization: Bearer mf_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Requests without a valid key return a 401.

Rate limits

Each key is limited to 30 requests per 60 seconds. Going over that returns a 429 with { "error": "Rate limit exceeded." }. The limit applies per key, not per IP, so it follows the key even if you call it from different machines. Agencies pulling data at scale can enable usage-based billing from Settings to remove the fixed cap and pay per call beyond it instead.

Base URL

https://themediafootprint.com/api/v1

Endpoints

GET/api/v1/metrics

Your current aggregate metrics — the same numbers shown on your dashboard, rolled up across every connected platform.

Example response

{
  "ok": true,
  "metrics": {
    "total_followers": 18420,
    "total_views": 1042300,
    "total_revenue": 3120,
    "total_streams": 289411,
    ...
  }
}
GET/api/v1/goals

Your active (non-archived) goals, most recently created first.

Example response

{
  "ok": true,
  "goals": [
    {
      "id": "b4b0...",
      "title": "Hit 20k followers",
      "goal_type": "followers",
      "target_value": "20000",
      "current_value": "18420",
      "deadline": "2026-09-01",
      "status": "in_progress",
      "is_pinned": true
    }
  ]
}
GET/api/v1/platforms

The platforms you've connected, their type, and their connection status.

Example response

{
  "ok": true,
  "platforms": [
    {
      "platform_name": "YouTube",
      "module_type": "video",
      "connection_status": "connected",
      "platform_url": "https://youtube.com/@yourname",
      "platform_handle": "@yourname"
    }
  ]
}

Errors

Errors are always JSON with an error string:

{ "error": "Invalid or missing API key." }

401 means the key is missing, malformed, or revoked. 429 means you’re rate limited. Anything else is a 500 — retry with backoff.