{"openapi":"3.1.0","info":{"title":"DebtSnowballPro API","version":"0.1.0","description":"An extended multi-strategy debt-payoff calculator: full month-by-month snowball, avalanche, and hybrid/custom-order schedules, a side-by-side comparison, and an optional brute-force optimality check — all local, self-contained.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://debtsnowballpro.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/debtsnowballpro/docs"},"termsOfService":"https://connectorbay.com/debtsnowballpro/terms"},"servers":[{"url":"https://debtsnowballpro.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/debtsnowballpro/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/debt_payoff_snowball":{"post":{"operationId":"debt_payoff_snowball","summary":"Full month-by-month snowball payoff schedule: smallest starting balance first. Use for \"pay off my","description":"Full month-by-month snowball payoff schedule: smallest starting balance first. Use for \"pay off my\n    debts smallest balance first with $300 extra a month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"debts":{"description":"Each debt: {name?: string, balance: number > 0, min_payment: number > 0, interest_rate: number (APR, %, 0-100)}.","items":{"additionalProperties":true,"type":"object"},"title":"Debts","type":"array"},"extra_payment":{"default":0,"description":"Extra dollars per month beyond every debt's combined minimum payments.","minimum":0,"title":"Extra Payment","type":"number"}},"required":["debts"],"title":"debt_payoff_snowballArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/debt_payoff_avalanche":{"post":{"operationId":"debt_payoff_avalanche","summary":"Full month-by-month avalanche payoff schedule: highest interest rate first — mathematically minimizes","description":"Full month-by-month avalanche payoff schedule: highest interest rate first — mathematically minimizes\n    total interest of any fixed ordering. Use for \"pay off my debts highest interest rate first\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"debts":{"description":"Each debt: {name?: string, balance: number > 0, min_payment: number > 0, interest_rate: number (APR, %, 0-100)}.","items":{"additionalProperties":true,"type":"object"},"title":"Debts","type":"array"},"extra_payment":{"default":0,"description":"Extra dollars per month beyond every debt's combined minimum payments.","minimum":0,"title":"Extra Payment","type":"number"}},"required":["debts"],"title":"debt_payoff_avalancheArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/debt_payoff_hybrid":{"post":{"operationId":"debt_payoff_hybrid","summary":"Full month-by-month payoff schedule using either this connector's documented hybrid score (blends","description":"Full month-by-month payoff schedule using either this connector's documented hybrid score (blends\n    interest rate and balance) or, if custom_order is given, your own exact payoff order. Use for \"what order\n    should I pay off my credit card, car loan, and student loan in\" or \"pay off my car loan first, then...\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"debts":{"description":"Each debt: {name?: string, balance: number > 0, min_payment: number > 0, interest_rate: number (APR, %, 0-100)}.","items":{"additionalProperties":true,"type":"object"},"title":"Debts","type":"array"},"extra_payment":{"default":0,"description":"Extra dollars per month beyond every debt's combined minimum payments.","minimum":0,"title":"Extra Payment","type":"number"},"custom_order":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"A specific payoff order (list of debt names, one per debt) to use instead of the built-in hybrid score.","title":"Custom Order"}},"required":["debts"],"title":"debt_payoff_hybridArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/compare_payoff_strategies":{"post":{"operationId":"compare_payoff_strategies","summary":"Runs snowball, avalanche, and hybrid/custom against the SAME debts and budget, with a side-by-side","description":"Runs snowball, avalanche, and hybrid/custom against the SAME debts and budget, with a side-by-side\n    comparison table and an invariant check that avalanche pays the least total interest. Use for \"compare\n    snowball vs avalanche on my 4 credit cards with $300 extra a month\", \"prove avalanche is optimal for\n    these debts\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"debts":{"description":"Each debt: {name?: string, balance: number > 0, min_payment: number > 0, interest_rate: number (APR, %, 0-100)}.","items":{"additionalProperties":true,"type":"object"},"title":"Debts","type":"array"},"extra_payment":{"default":0,"description":"Extra dollars per month beyond every debt's combined minimum payments.","minimum":0,"title":"Extra Payment","type":"number"},"custom_order":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"An explicit payoff order (list of debt names) to use as the third strategy instead of the built-in hybrid score.","title":"Custom Order"},"verify_optimal":{"default":false,"description":"If true, brute-force every possible payoff order (for 7 debts or fewer) and confirm avalanche achieves the true minimum total interest.","title":"Verify Optimal","type":"boolean"}},"required":["debts"],"title":"compare_payoff_strategiesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/debtsnowballpro_glossary":{"post":{"operationId":"debtsnowballpro_glossary","summary":"Definitions of debt-payoff terms (snowball, avalanche, hybrid strategy, interchange argument, freed-up","description":"Definitions of debt-payoff terms (snowball, avalanche, hybrid strategy, interchange argument, freed-up\n    minimum, ...). Use for \"what's the interchange argument\", \"what's a freed-up minimum\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific term to look up; omit to list all.","title":"Term"}},"title":"debtsnowballpro_glossaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}