{"openapi":"3.1.0","info":{"title":"Solo Map Comparison Engine","description":"Generic comparison engine for loans, tools, products, grants, vendors, and other decision workflows.","version":"0.1.0"},"paths":{"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Health Get"}}}}}}},"/.well-known/solo-map-plugins.json":{"get":{"summary":"Well Known Plugins","operationId":"well_known_plugins__well_known_solo_map_plugins_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known Plugins  Well Known Solo Map Plugins Json Get"}}}}}}},"/v1":{"get":{"summary":"Api Index","operationId":"api_index_v1_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Api Index V1 Get"}}}}}}},"/v1/rules":{"get":{"summary":"Rules","operationId":"rules_v1_rules_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Rules V1 Rules Get"}}}}}}},"/v1/plugins":{"get":{"summary":"List Plugins","operationId":"list_plugins_v1_plugins_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Plugins V1 Plugins Get"}}}}}}},"/v1/plugins/{plugin_id}":{"get":{"summary":"Get Plugin","operationId":"get_plugin_v1_plugins__plugin_id__get","parameters":[{"name":"plugin_id","in":"path","required":true,"schema":{"type":"string","title":"Plugin Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Plugin V1 Plugins  Plugin Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/compare/generic":{"post":{"summary":"Compare Generic Endpoint","operationId":"compare_generic_endpoint_v1_compare_generic_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericCompareRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Compare Generic Endpoint V1 Compare Generic Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/loan/simulate":{"post":{"summary":"Simulate Loan Endpoint","operationId":"simulate_loan_endpoint_v1_loan_simulate_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoanCompareRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoanCompareResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/loan/compare":{"post":{"summary":"Compare Loan Endpoint","operationId":"compare_loan_endpoint_v1_loan_compare_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoanCompareRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoanCompareResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/plugins/{plugin_id}/compare":{"post":{"summary":"Compare Plugin","operationId":"compare_plugin_v1_plugins__plugin_id__compare_post","parameters":[{"name":"plugin_id","in":"path","required":true,"schema":{"type":"string","title":"Plugin Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Compare Plugin V1 Plugins  Plugin Id  Compare Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Criterion":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"direction":{"$ref":"#/components/schemas/Direction","default":"min"},"weight":{"type":"number","minimum":0.0,"title":"Weight","default":1.0},"required":{"type":"boolean","title":"Required","default":false},"ideal":{"anyOf":[{},{"type":"null"}],"title":"Ideal"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"type":"object","required":["key","label"],"title":"Criterion"},"Direction":{"type":"string","enum":["min","max","match","info"],"title":"Direction"},"GenericCompareRequest":{"properties":{"criteria":{"items":{"$ref":"#/components/schemas/Criterion"},"type":"array","title":"Criteria"},"options":{"items":{"$ref":"#/components/schemas/GenericOption"},"type":"array","title":"Options"},"constraints":{"additionalProperties":true,"type":"object","title":"Constraints"},"top_n":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Top N","default":10}},"type":"object","required":["criteria","options"],"title":"GenericCompareRequest"},"GenericOption":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"metrics":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"integer"},{"type":"boolean"},{"type":"string"},{"type":"null"}]},"type":"object","title":"Metrics"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"}},"type":"object","required":["id","name"],"title":"GenericOption"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LoanCompareRequest":{"properties":{"amount":{"type":"integer","minimum":1.0,"title":"Amount"},"term_months":{"type":"integer","maximum":600.0,"minimum":1.0,"title":"Term Months"},"annual_income":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Annual Income"},"purpose":{"$ref":"#/components/schemas/LoanPurpose","default":"multi"},"membership":{"type":"boolean","title":"Membership","default":false},"bonus_ratio":{"type":"number","maximum":0.5,"minimum":0.0,"title":"Bonus Ratio","default":0.0},"objective":{"$ref":"#/components/schemas/Objective","default":"balanced"},"manual_rates":{"additionalProperties":{"type":"number"},"type":"object","title":"Manual Rates"},"include_ineligible":{"type":"boolean","title":"Include Ineligible","default":true},"query":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Query"},"providers":{"items":{"type":"string"},"type":"array","maxItems":20,"title":"Providers"},"product_ids":{"items":{"type":"string"},"type":"array","maxItems":50,"title":"Product Ids"},"rate_type":{"anyOf":[{"$ref":"#/components/schemas/RateType"},{"type":"null"}]},"max_monthly_payment":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Monthly Payment"},"max_total_payment":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Total Payment"},"max_interest_total":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Max Interest Total"},"require_web_contract":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Require Web Contract"},"require_refinance":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Require Refinance"},"require_bonus_support":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Require Bonus Support"},"current_annual_rate":{"anyOf":[{"type":"number","maximum":30.0,"minimum":0.0},{"type":"null"}],"title":"Current Annual Rate"},"reset_annual_rate":{"anyOf":[{"type":"number","maximum":30.0,"minimum":0.0},{"type":"null"}],"title":"Reset Annual Rate"},"current_monthly_payment":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Current Monthly Payment"},"reset_monthly_payment":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Reset Monthly Payment"}},"type":"object","required":["amount","term_months"],"title":"LoanCompareRequest"},"LoanCompareResponse":{"properties":{"best":{"anyOf":[{"$ref":"#/components/schemas/LoanPayment"},{"type":"null"}]},"results":{"items":{"$ref":"#/components/schemas/LoanPayment"},"type":"array","title":"Results"},"assumptions":{"items":{"type":"string"},"type":"array","title":"Assumptions"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"},"filters_applied":{"items":{"type":"string"},"type":"array","title":"Filters Applied"},"recommendation_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recommendation Summary"},"matched_count":{"type":"integer","title":"Matched Count","default":0},"eligible_count":{"type":"integer","title":"Eligible Count","default":0},"suggested_next_actions":{"items":{"type":"string"},"type":"array","title":"Suggested Next Actions"}},"type":"object","required":["best","results"],"title":"LoanCompareResponse"},"LoanPayment":{"properties":{"product_id":{"type":"string","title":"Product Id"},"provider":{"type":"string","title":"Provider"},"name":{"type":"string","title":"Name"},"annual_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Annual Rate"},"rate_type":{"$ref":"#/components/schemas/RateType"},"monthly_payment":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Monthly Payment"},"bonus_payment":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bonus Payment"},"total_payment":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Payment"},"interest_total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interest Total"},"burden_ratio_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Burden Ratio Percent"},"monthly_delta_vs_current":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Monthly Delta Vs Current"},"monthly_savings_vs_reset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Monthly Savings Vs Reset"},"eligible":{"type":"boolean","title":"Eligible"},"rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rank"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score"},"reasons":{"items":{"type":"string"},"type":"array","title":"Reasons"},"highlights":{"items":{"type":"string"},"type":"array","title":"Highlights"},"cautions":{"items":{"type":"string"},"type":"array","title":"Cautions"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"}},"type":"object","required":["product_id","provider","name","annual_rate","rate_type","monthly_payment","bonus_payment","total_payment","interest_total","burden_ratio_percent","eligible"],"title":"LoanPayment"},"LoanPurpose":{"type":"string","enum":["multi","debt_refinance","home_refinance","home_purchase","auto","education","reform","business","other"],"title":"LoanPurpose"},"Objective":{"type":"string","enum":["balanced","total_payment","monthly_payment","fixed_rate","web_complete","recommendation"],"title":"Objective"},"RateType":{"type":"string","enum":["fixed","variable","manual"],"title":"RateType"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}