{"openapi":"3.1.0","info":{"title":"Daloopa MCP Service","description":"A service that provides Daloopa's financial data","version":"1.0.0"},"paths":{"/register":{"post":{"tags":["Auth"],"summary":"Register Client","operationId":"register_client_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_register_client_register_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/authorize":{"get":{"tags":["Auth"],"summary":"Authorize","operationId":"authorize_authorize_get","parameters":[{"name":"client_id","in":"query","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"redirect_uri","in":"query","required":true,"schema":{"type":"string","title":"Redirect Uri"}},{"name":"response_type","in":"query","required":true,"schema":{"type":"string","title":"Response Type"}},{"name":"state","in":"query","required":true,"schema":{"type":"string","title":"State"}},{"name":"code_challenge","in":"query","required":false,"schema":{"type":"string","title":"Code Challenge"}},{"name":"code_challenge_method","in":"query","required":false,"schema":{"type":"string","default":"S256","title":"Code Challenge Method"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/login":{"post":{"tags":["Auth"],"summary":"Login","operationId":"login_login_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_login_login_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sso-login":{"post":{"tags":["Auth"],"summary":"Sso Login","operationId":"sso_login_sso_login_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_sso_login_sso_login_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mcp-sso-validation":{"get":{"tags":["Auth"],"summary":"Sso Validation","operationId":"sso_validation_mcp_sso_validation_get","parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string","title":"Code"}},{"name":"state","in":"query","required":true,"schema":{"type":"string","title":"State"}},{"name":"sso_email","in":"query","required":false,"schema":{"type":"string","title":"Sso Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/token":{"post":{"tags":["Auth"],"summary":"Token","operationId":"token_token_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_token_token_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/token":{"post":{"tags":["Auth"],"summary":"Api Key Token","operationId":"api_key_token_auth_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_api_key_token_auth_token_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/.well-known/oauth-protected-resource":{"get":{"tags":["Auth"],"summary":"Protected Resource Metadata","description":"RFC 9728 Protected Resource Metadata for MCP authorization discovery.","operationId":"protected_resource_metadata__well_known_oauth_protected_resource_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-authorization-server":{"get":{"tags":["Auth"],"summary":"Well Known","operationId":"well_known__well_known_oauth_authorization_server_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/openai-apps-challenge":{"get":{"tags":["Auth"],"summary":"Well Known Openai Apps Challenge","operationId":"well_known_openai_apps_challenge__well_known_openai_apps_challenge_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/consumption":{"get":{"tags":["Consumption"],"summary":"Get datapoint consumption over a time range","operationId":"get_consumption_consumption_get","parameters":[{"name":"start_at","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start At"}},{"name":"end_at","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End At"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumptionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/consumption/events":{"get":{"tags":["Consumption"],"summary":"List datapoint access events over a time range","operationId":"list_consumption_events_consumption_events_get","parameters":[{"name":"start_at","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start At"}},{"name":"end_at","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End At"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":500,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumptionEventsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Root","description":"Root endpoint showing service information.","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health/":{"get":{"summary":"Health Check","description":"Health check endpoint.","operationId":"health_check_health__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"Body_api_key_token_auth_token_post":{"properties":{"api_key":{"type":"string","title":"Api Key"}},"type":"object","required":["api_key"],"title":"Body_api_key_token_auth_token_post"},"Body_login_login_post":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"},"client_id":{"type":"string","title":"Client Id"},"redirect_uri":{"type":"string","title":"Redirect Uri"},"code_challenge":{"type":"string","title":"Code Challenge"},"state":{"type":"string","title":"State"},"agree_terms":{"type":"string","title":"Agree Terms"}},"type":"object","required":["email","password","client_id","redirect_uri","code_challenge","state"],"title":"Body_login_login_post"},"Body_register_client_register_post":{"properties":{"client_name":{"type":"string","title":"Client Name"},"redirect_uris":{"items":{"type":"string"},"type":"array","title":"Redirect Uris"},"token_endpoint_auth_method":{"type":"string","title":"Token Endpoint Auth Method","default":"client_secret_post"}},"type":"object","required":["client_name","redirect_uris"],"title":"Body_register_client_register_post"},"Body_sso_login_sso_login_post":{"properties":{"client_id":{"type":"string","title":"Client Id"},"redirect_uri":{"type":"string","title":"Redirect Uri"},"code_challenge":{"type":"string","title":"Code Challenge"},"state":{"type":"string","title":"State"},"agree_terms":{"type":"string","title":"Agree Terms"}},"type":"object","required":["client_id","redirect_uri","code_challenge","state"],"title":"Body_sso_login_sso_login_post"},"Body_token_token_post":{"properties":{"grant_type":{"type":"string","title":"Grant Type"},"code":{"type":"string","title":"Code"},"redirect_uri":{"type":"string","title":"Redirect Uri"},"client_id":{"type":"string","title":"Client Id"},"client_secret":{"type":"string","title":"Client Secret"},"code_verifier":{"type":"string","title":"Code Verifier"}},"type":"object","title":"Body_token_token_post"},"ConsumptionEvent":{"properties":{"source":{"type":"string","title":"Source"},"number_of_datapoints":{"type":"integer","title":"Number Of Datapoints"},"user_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Identifier"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"}},"type":"object","required":["source","number_of_datapoints","timestamp"],"title":"ConsumptionEvent"},"ConsumptionEventsResponse":{"properties":{"count":{"type":"integer","title":"Count"},"results":{"items":{"$ref":"#/components/schemas/ConsumptionEvent"},"type":"array","title":"Results"}},"type":"object","required":["count","results"],"title":"ConsumptionEventsResponse"},"ConsumptionResponse":{"properties":{"monthly_limit":{"type":"string","title":"Monthly Limit"},"consumption":{"type":"integer","title":"Consumption"},"initial_date":{"type":"string","format":"date","title":"Initial Date"},"final_date":{"type":"string","format":"date","title":"Final Date"}},"type":"object","required":["monthly_limit","consumption","initial_date","final_date"],"title":"ConsumptionResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}