Documentation
How Tevarindo works, and the API behind it
The webapp and the REST API run the exact same math layer — nothing shown in the UI is computed differently than what the API returns.
How the comparison works
List every debt
Type, balance, APR, and minimum payment for each credit card, personal loan, or other balance you want to fold in.
We compute your weighted average rate
Every balance is weighted by its APR to produce a single blended rate — the number a flat "average APR" hides.
Three consolidation paths get priced
A personal loan, a HELOC, and a 0% balance transfer card are each modeled with their own fees, term, and effective APR (IRR of the real cash flows, not the sticker rate).
The cheapest total cost wins
Options are ranked by total cost — interest plus fees — not by the lowest headline rate, so a low-rate option with a large origination fee doesn't win on a technicality.
API reference
Base URL: https://tevarindo-api.smarttechinvest.com. Anonymous requests from the webapp origin get 50 comparisons per day; sign up for an API key to raise that limit and unlock paid-tier response fields. Send the key as an X-API-Key header.
/v1/compareNone (anonymous, rate-limited) or X-API-KeyCore comparison endpoint. Computes weighted average APR, current total interest at minimum payments, and prices personal loan / HELOC / balance transfer options.
Request body
{
"debts": [
{ "balance": 8200, "apr": 0.2199, "min_payment": 164 },
{ "balance": 5400, "apr": 0.1949, "min_payment": 108 }
],
"monthly_budget": 650
}Response (free tier)
{
"data": {
"current_wair": 18.52,
"total_debt": 13600,
"best_option": "personal_loan",
"total_interest_saved": 4820
},
"tier": "free",
"upgrade": "Full comparison with effective APRs, monthly payments, and NPV analysis requires a paid plan."
}/v1/signupNoneCreates an account and issues an API key (prefix tvr_live_...). The key is returned once — store it client-side immediately.
Request body
{
"name": "Jane Lender",
"email": "jane@example.com",
"password": "at-least-8-characters"
}/v1/checkoutNoneCreates a Stripe Checkout session for a plan (single_report, report_pack, api_starter, api_pro) and returns the redirect URL.
Request body
{
"plan": "single_report",
"email": "jane@example.com"
}/v1/accountX-API-KeyDELETE only — a CCPA data-deletion request. Removes the account, its report-download history, and its request log.
/data/interest-ratesNone (anonymous, rate-limited) or X-API-KeyRaw benchmark rows behind the comparison math: interest-rates, lender-benchmarks, usury-laws, credit-impact. Each returns up to 100 rows.
/healthNoneLiveness probe. Returns 200 with db status "ok" when the D1 binding answers, 503 with "unreachable" otherwise.
Error shape
Every failed request returns a 4xx/5xx status with a structured body:
{
"error": {
"code": "INVALID_INPUT",
"message": "Total debt balance must be positive"
}
}Need programmatic access?
Developer API plans start at $29/mo for 100 analyses and include bulk endpoints and webhook delivery on the Pro tier.
View API pricing