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.

Webhooks

Register a URL from Settings to get a POST request whenever one of these happens on your account:

  • goal.completed — a goal hits 100% of its target.
  • sync.failed — a platform connection has failed to sync 3 times in a row.
  • metric.anomaly — total followers jump or drop by 15%+ since the last sync.
  • platform.connected — a platform is connected on the Connect page.
  • platform.disconnected — a platform is disconnected on the Connect page.
  • invoice.paid — a sponsorship deal’s payment link is paid.

Every delivery is a signed POST with this shape:

{ "event": "goal.completed", "data": { "goal_id": "...", "title": "Hit 20k followers", ... } }

Verify it came from us by recomputing the HMAC-SHA256 of the raw request body using your webhook’s secret (shown once at creation), and comparing it against the X-Signature header. A failed or non-2xx delivery is logged but not retried.

MCP Server

Connect an AI assistant like Claude directly to your data using MCP — same API key, same data, no scripting required.

https://themediafootprint.com/api/mcp

Add it as a remote MCP connector using your mf_live_ key as the bearer token — the same one from the Authentication section above. It exposes three tools:

  • get_metrics — your current metrics snapshot.
  • get_goals — your active goals.
  • get_platforms — your connected platforms.

Tool calls count against the same rate limit and usage metering as the REST API above.