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_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxRequests 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/v1Endpoints
/api/v1/metricsYour 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,
...
}
}/api/v1/goalsYour 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
}
]
}/api/v1/platformsThe 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/mcpAdd 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.