{"openapi":"3.1.0","info":{"title":"Minutes Network Accelerator - Metrics API","version":"1.0.0","description":"Read-only metrics for the Minutes Network Accelerator: capacity remaining on each route, minutes carried today, available-vs-utilized capacity and the active/paused split. Authenticated with a bearer token; strictly aggregate, with no customer, order or pricing data.","contact":{"name":"Minutes Network Accelerator","email":"accelerator@minutesnetwork.io"}},"servers":[{"url":"https://minutesnetwork.io/accelerator/api/v1","description":"Production"}],"security":[{"bearerAuth":[]}],"paths":{"/capacity":{"get":{"summary":"Capacity remaining per route","description":"Remaining, sold and total capacity for every active route, in minutes and ports, plus system totals. Updates as purchases confirm.","operationId":"getCapacity","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Capacity report","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CapacityReport"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/utilization":{"get":{"summary":"Minutes run today, available vs utilized, active vs paused","description":"Total minutes carried today across the Accelerator, available-vs-utilized daily capacity, and the active / paused / provisioning port split.","operationId":"getUtilization","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Utilization report","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UtilizationReport"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/health":{"get":{"summary":"Service health probe","description":"Public, unauthenticated uptime check. Returns a fixed shape and nothing sensitive.","operationId":"getHealth","security":[],"responses":{"200":{"description":"Service is up","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Send your API key as `Authorization: Bearer <api key>`. Keys are issued on request - contact accelerator@minutesnetwork.io."}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable error message."}},"required":["error"]},"Health":{"type":"object","properties":{"status":{"type":"string","example":"ok"},"service":{"type":"string","example":"mn-accelerator-metrics"},"version":{"type":"string","example":"1.0.0"}},"required":["status","service","version"]},"RouteCapacity":{"type":"object","properties":{"route":{"type":"string","description":"Route slug.","example":"mexico"},"name":{"type":"string","example":"Mexico"},"dial_code":{"type":"string","example":"+52"},"capacity_minutes":{"type":"object","properties":{"total":{"type":"integer","description":"Total carriable minutes of capacity on the route."},"sold":{"type":"integer","description":"Minutes sold (clamped at total)."},"remaining":{"type":"integer","description":"Minutes still available to buy."}},"required":["total","sold","remaining"]},"ports":{"type":"object","properties":{"total":{"type":"integer"},"sold":{"type":"integer"},"available":{"type":"integer"}},"required":["total","sold","available"]},"filled_pct":{"type":"integer","minimum":0,"maximum":100,"description":"Percent of capacity sold."}},"required":["route","name","dial_code","capacity_minutes","ports","filled_pct"]},"CapacityReport":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"unit_notes":{"type":"string"},"routes":{"type":"array","items":{"$ref":"#/components/schemas/RouteCapacity"}},"totals":{"type":"object","properties":{"routes":{"type":"integer"},"capacity_minutes":{"type":"object","properties":{"total":{"type":"integer"},"sold":{"type":"integer"},"remaining":{"type":"integer"}}},"ports":{"type":"object","properties":{"total":{"type":"integer"},"sold":{"type":"integer"},"available":{"type":"integer"}}},"filled_pct":{"type":"integer","minimum":0,"maximum":100}}}},"required":["generated_at","routes","totals"]},"UtilizationReport":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"date":{"type":"string","format":"date","description":"UTC date the figures cover."},"minutes_run_today":{"type":"integer","description":"Total minutes carried today across the Accelerator."},"daily_capacity_minutes":{"type":"object","description":"Daily throughput (minutes/day) by state.","properties":{"sold":{"type":"integer","description":"All sold capacity's daily throughput."},"active":{"type":"integer","description":"Capacity currently carrying traffic."},"paused":{"type":"integer","description":"Capacity paused by its owner."}}},"utilization":{"type":"object","properties":{"utilized_minutes":{"type":"integer","description":"Minutes carried today (= minutes_run_today)."},"available_minutes":{"type":"integer","description":"Sold daily capacity not yet used today."},"utilization_pct":{"type":"number","description":"utilized / sold daily capacity, one decimal."}}},"capacity_status":{"type":"object","properties":{"active_ports":{"type":"integer"},"paused_ports":{"type":"integer"},"provisioning_ports":{"type":"integer"}}}},"required":["generated_at","date","minutes_run_today","daily_capacity_minutes","utilization","capacity_status"]}}}}