{"openapi":"3.1.0","info":{"title":"Dowser API","version":"0.1.0","summary":"Finds the money hiding in your life.","description":"REST mirror of the Dowser MCP tools. Every endpoint is read-only and returns JSON. MCP endpoint: https://dowser-sooty.vercel.app/mcp. Dowser is an independent information service, not a law firm, settlement administrator, card issuer or retailer. Figures come from public sources and change often. Confirm details on the official page linked in each result before acting. Nothing here is legal, tax or financial advice.","contact":{"email":"ryderharris@icloud.com","url":"https://dowser-sooty.vercel.app/support"},"termsOfService":"https://dowser-sooty.vercel.app/terms"},"servers":[{"url":"https://dowser-sooty.vercel.app"}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Only required when the operator has enabled API keys."}}},"paths":{"/api/v1/settlements":{"get":{"operationId":"search_settlements","summary":"Search open class action settlements","description":"Find open U.S. class action settlements the person may be able to claim, matched against brands, companies and products they have used. Returns eligibility summary, payout, claim deadline, days left, whether proof or a notice ID is needed, and the official claim link. Use it when someone asks about class actions, settlements, or \"money I might be owed\", and feed it the brands found in their receipts, subscriptions and bank transactions. Read-only.","parameters":[{"name":"brands","in":"query","required":false,"description":"Companies, brands, products or services the person has used or bought, e.g. [\"Apple\", \"Ticketmaster\", \"AT&T\", \"Peloton\"]. Each is matched separately and results say which ones matched. Pull these from purchase emails, bank transactions and subscriptions. Comma-separated.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80}}},{"name":"query","in":"query","required":false,"description":"Free-text search, e.g. \"data breach\", \"overdraft fees\", \"Siri privacy\".","schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"category","in":"query","required":false,"description":"Keyword filter on category or title, e.g. \"Privacy\", \"Data Breach\", \"Consumer\", \"Securities\", \"Employment\", \"Auto\".","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"state","in":"query","required":false,"description":"Two-letter U.S. state. Keeps nationwide settlements plus ones limited to that state.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"no_proof_only","in":"query","required":false,"description":"Only settlements whose claim form needs no receipt, records or notice ID.","schema":{"type":"boolean"}},{"name":"include_automatic","in":"query","required":false,"description":"Include automatic-payment settlements that have no claim form (default true). These pay class members without any action.","schema":{"type":"boolean"}},{"name":"deadline_within_days","in":"query","required":false,"description":"Only settlements whose claim deadline falls within this many days.","schema":{"type":"integer","minimum":1,"maximum":3650}},{"name":"sort","in":"query","required":false,"description":"Default: relevance when brands or query given, otherwise soonest deadline first.","schema":{"type":"string","enum":["relevance","deadline","added"]}},{"name":"limit","in":"query","required":false,"description":"Max results (default 20).","schema":{"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"JSON result. Same shape as the MCP tool of the same name.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited"}}}},"/api/v1/recalls":{"get":{"operationId":"match_recalls","summary":"Match products to CPSC recalls","description":"Check products the person owns against U.S. Consumer Product Safety Commission recalls from the last three years, with the remedy (refund, replacement or repair), where it was sold, and how to contact the company. Use it when someone lists things they bought, especially baby gear, appliances, furniture, fitness equipment and toys. Read-only; queries the live CPSC API for anything newer than the bundled snapshot.","parameters":[{"name":"products","in":"query","required":true,"description":"Products the person owns, as brand plus product, e.g. [\"Peloton Tread+\", \"Fisher-Price Rock n Play\", \"Cosori air fryer\", \"Ninja Foodi pressure cooker\"]. Pull these from order emails and receipts. Comma-separated.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","minLength":2,"maxLength":120}}},{"name":"since","in":"query","required":false,"description":"Only recalls announced on or after this date (YYYY-MM-DD). Default: the whole three-year window.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"live","in":"query","required":false,"description":"Also query the CPSC API for recalls newer than the bundled snapshot (default true).","schema":{"type":"boolean"}},{"name":"limit","in":"query","required":false,"description":"Max results (default 20).","schema":{"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"JSON result. Same shape as the MCP tool of the same name.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited"}}}},"/api/v1/cards":{"get":{"operationId":"card_benefits","summary":"Card credits and use-it-or-lose-it perks","description":"List the recurring statement credits, memberships and activation-required perks on the person's credit cards, with when each current period ends and how to use it. Pair it with their transactions to spot credits they have not used this month, quarter or year. Use it for \"am I leaving card benefits on the table\", \"what credits reset soon\", or before an annual fee posts. Read-only, hand-maintained catalogue of popular U.S. cards.","parameters":[{"name":"cards","in":"query","required":true,"description":"Card names as the person would say them, e.g. [\"Amex Platinum\", \"Chase Sapphire Reserve\", \"Venture X\"]. Pull from statements or Plaid account names. Comma-separated.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","minLength":2,"maxLength":80}}},{"name":"as_of","in":"query","required":false,"description":"Date to compute reset countdowns from (YYYY-MM-DD). Default: today.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"expiring_within_days","in":"query","required":false,"description":"Flag perks whose current period ends within this many days (default 14).","schema":{"type":"integer","minimum":1,"maximum":365}}],"responses":{"200":{"description":"JSON result. Same shape as the MCP tool of the same name.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited"}}}},"/api/v1/points":{"get":{"operationId":"points_expiry","summary":"Points and miles expiry rules","description":"Explain when miles and points expire for airline, hotel, bank and retail loyalty programs, and, given the date of last activity, compute the expiry date and days left plus the cheapest ways to keep them alive. Use it when someone mentions a frequent flyer or hotel program, or asks whether their points are about to expire. Read-only.","parameters":[{"name":"programs","in":"query","required":true,"description":"Loyalty programs the person belongs to, e.g. [\"American AAdvantage\", \"Marriott Bonvoy\", \"Hilton\", \"Starbucks\"]. Comma-separated.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","minLength":2,"maxLength":80}}},{"name":"last_activity","in":"query","required":false,"description":"Optional map of program name → date of last earn or redeem (YYYY-MM-DD). When given, the tool computes the expiry date and days left. Pass as a JSON object string.","schema":{"type":"string"}},{"name":"as_of","in":"query","required":false,"description":"Date to compute countdowns from. Default: today.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"responses":{"200":{"description":"JSON result. Same shape as the MCP tool of the same name.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited"}}}},"/api/v1/freebies":{"get":{"operationId":"birthday_freebies","summary":"Birthday freebies near me","description":"List U.S. chains that give loyalty members something free or discounted for their birthday, with the reward, the program to join, how it is delivered, whether a purchase is needed and the latest date to sign up. Filter by state and category. Use it for \"free stuff on my birthday\" and to set sign-up reminders a few weeks ahead. Read-only.","parameters":[{"name":"state","in":"query","required":false,"description":"Two-letter U.S. state. Filters out regional chains that have no locations there. National chains are always included.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"birthday","in":"query","required":false,"description":"Birthday as MM-DD or YYYY-MM-DD. When given, the tool computes days until the birthday and the latest date to join each program.","schema":{"type":"string","pattern":"^(?:\\d{4}-)?\\d{2}-\\d{2}$"}},{"name":"categories","in":"query","required":false,"description":"Limit to these categories. Comma-separated.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["coffee","dessert","fast food","casual dining","entertainment","beauty","retail","kids"]}}},{"name":"as_of","in":"query","required":false,"description":"Date to compute countdowns from. Default: today.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Max results (default 100).","schema":{"type":"integer","minimum":1,"maximum":200}}],"responses":{"200":{"description":"JSON result. Same shape as the MCP tool of the same name.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited"}}}},"/api/v1/updates":{"get":{"operationId":"check_for_new","summary":"What is new since last check","description":"One call for a recurring sweep: new settlements matching the person's brands, new recalls matching their products, and card credits whose period ends soon. Pass the date of the last check as \"since\". Ideal for a weekly or monthly background task that reports only when something actionable appears. Read-only.","parameters":[{"name":"since","in":"query","required":true,"description":"Return things added or announced on or after this date (YYYY-MM-DD). Use the date of the last check.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"brands","in":"query","required":false,"description":"Brands and companies the person uses. When given, new settlements are filtered to these; otherwise all new settlements are listed. Comma-separated.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80}}},{"name":"products","in":"query","required":false,"description":"Products the person owns. When given, new recalls are matched to these; otherwise only a count and the newest recalls are returned. Comma-separated.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","minLength":2,"maxLength":120}}},{"name":"cards","in":"query","required":false,"description":"Credit cards held. Perks whose current period ends soon are listed as reminders. Comma-separated.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","minLength":2,"maxLength":80}}},{"name":"state","in":"query","required":false,"description":"Two-letter U.S. state for settlement filtering.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"horizon_days","in":"query","required":false,"description":"How many days ahead to flag card credits that are about to reset (default 14).","schema":{"type":"integer","minimum":1,"maximum":60}},{"name":"limit","in":"query","required":false,"description":"Max items per section (default 15).","schema":{"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"JSON result. Same shape as the MCP tool of the same name.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited"}}}},"/health":{"get":{"operationId":"health","summary":"Service and data freshness","responses":{"200":{"description":"OK"}}}}}}