{"openapi":"3.1.0","info":{"title":"idlidu Finance — Bank Credit Conditions Panel API","version":"2026.09.0","description":"Point-in-time bank ratios, peers, and conditions indices. Not a credit rating."},"servers":[{"url":"https://finance-api.idlidu.com","description":"Production"}],"paths":{"/v1/health":{"get":{"security":[],"summary":"Liveness (includes panel_source)","responses":{"200":{"description":"OK"},"503":{"description":"Panel hydrate failed (prod, no fixture fallback)"}}}},"/v1/metrics":{"get":{"security":[],"summary":"Metric dictionary","responses":{"200":{"description":"OK"}}}},"/v1/openapi.json":{"get":{"security":[],"summary":"OpenAPI document","responses":{"200":{"description":"OK"}}}},"/v1/public/sample/banks":{"get":{"security":[],"summary":"Free sample banks","responses":{"200":{"description":"OK"}}}},"/v1/public/sample/metrics":{"get":{"security":[],"summary":"Free sample metrics","parameters":[{"name":"bank_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Not in sample"}}}},"/v1/public/sample/index":{"get":{"security":[],"summary":"Free sample last points for a conditions index","parameters":[{"name":"index_id","in":"query","required":false,"schema":{"type":"string"},"description":"Known index id only; default conditions.us.asset_quality.npl.p50_by_size_bucket"}],"responses":{"200":{"description":"OK"},"404":{"description":"Unknown index"}}}},"/v1/banks":{"get":{"summary":"List banks","responses":{"200":{"description":"OK"},"401":{"description":"Unauthorized"}}}},"/v1/banks/{id}":{"get":{"summary":"Bank metadata","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/v1/banks/{id}/metrics":{"get":{"summary":"Bank metrics","responses":{"200":{"description":"OK"}}}},"/v1/banks/{id}/peers":{"get":{"summary":"Peer percentile","responses":{"200":{"description":"OK"},"403":{"description":"Upgrade"}}}},"/v1/indices":{"get":{"summary":"List indices","responses":{"200":{"description":"OK"}}}},"/v1/indices/{indexId}":{"get":{"summary":"Index points","responses":{"200":{"description":"OK"}}}},"/v1/usage":{"get":{"summary":"Usage","responses":{"200":{"description":"OK"},"429":{"description":"Quota"}}}},"/v1/billing/webhook":{"post":{"security":[],"summary":"Billing webhook","responses":{"200":{"description":"OK"}}}},"/v1/billing/portal":{"get":{"summary":"Portal link","responses":{"200":{"description":"OK"}}}},"/v1/public/tools":{"get":{"summary":"MCP tool list (public)","security":[],"responses":{"200":{"description":"Tool definitions"}}}},"/v1/peer-sets":{"get":{"summary":"Peer set definitions (Growth+)","responses":{"200":{"description":"Peer sets"}}}},"/v1/peer-stats":{"get":{"summary":"Peer distribution stats (Growth+)","responses":{"200":{"description":"Stats"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}},"security":[{"bearerAuth":[]}]}