{"openapi":"3.1.0","info":{"title":"Warrantykeep API","version":"0.1.0","description":"A fully local warranty-tracking methodology: a structured logging template, an expiration calculator, a reminder-date suggester, a claim checklist, a warranty-types glossary, receipt-retention guidance, a general extended-warranty decision framework, and a term-comparison helper.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://warrantykeep.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/warrantykeep/docs"},"termsOfService":"https://connectorbay.com/warrantykeep/terms"},"servers":[{"url":"https://warrantykeep.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/warrantykeep/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/calculate_warranty_expiration":{"post":{"operationId":"calculate_warranty_expiration","summary":"Computes a warranty's exact expiration date and whether it's active, expiring soon (within 30 days), or","description":"Computes a warranty's exact expiration date and whether it's active, expiring soon (within 30 days), or\n    expired. Use for \"when does my 2-year warranty from March 2026 expire\", \"is my warranty still active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"purchase_date":{"description":"Purchase date, YYYY-MM-DD (other common formats are also accepted).","examples":["2026-03-15"],"title":"Purchase Date","type":"string"},"warranty_length_value":{"description":"The warranty's length, a number.","exclusiveMinimum":0,"title":"Warranty Length Value","type":"number"},"warranty_length_unit":{"description":"Unit for warranty_length_value.","examples":["days","months","years"],"title":"Warranty Length Unit","type":"string"},"as_of_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Evaluate status as of this date instead of today; YYYY-MM-DD.","title":"As Of Date"}},"required":["purchase_date","warranty_length_value","warranty_length_unit"],"title":"calculate_warranty_expirationArguments","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/bulk_check_warranty_expirations":{"post":{"operationId":"bulk_check_warranty_expirations","summary":"Runs calculate_warranty_expiration over a whole list of tracked items at once, sorted by soonest","description":"Runs calculate_warranty_expiration over a whole list of tracked items at once, sorted by soonest\n    expiration first, with counts of what's expiring soon or already expired. Use for \"check the status of all\n    my tracked warranties\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"items":{"description":"Each item: {name, purchase_date, warranty_length_value, warranty_length_unit}.","items":{"additionalProperties":true,"type":"object"},"maxItems":50,"minItems":1,"title":"Items","type":"array"}},"required":["items"],"title":"bulk_check_warranty_expirationsArguments","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/warranty_log_template":{"post":{"operationId":"warranty_log_template","summary":"The field schema and a filled-in example row for a warranty-tracking log you keep yourself (spreadsheet,","description":"The field schema and a filled-in example row for a warranty-tracking log you keep yourself (spreadsheet,\n    notes app, plain text). This server stores nothing between calls, so the log lives wherever you keep it. Use\n    for \"give me a template for tracking my warranties\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"warranty_log_templateArguments","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/reminder_schedule":{"post":{"operationId":"reminder_schedule","summary":"Suggests three calendar-worthy check-in dates for a warranty (midpoint, 30 days before expiration, final","description":"Suggests three calendar-worthy check-in dates for a warranty (midpoint, 30 days before expiration, final\n    week) to add to your own reminders app — this tool can't set a reminder for you directly. Use for \"when\n    should I set a reminder to check on this warranty\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"purchase_date":{"description":"Purchase date, YYYY-MM-DD.","title":"Purchase Date","type":"string"},"warranty_length_value":{"description":"The warranty's length, a number.","exclusiveMinimum":0,"title":"Warranty Length Value","type":"number"},"warranty_length_unit":{"description":"Unit for warranty_length_value.","examples":["months","years"],"title":"Warranty Length Unit","type":"string"}},"required":["purchase_date","warranty_length_value","warranty_length_unit"],"title":"reminder_scheduleArguments","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/warranty_claim_checklist":{"post":{"operationId":"warranty_claim_checklist","summary":"A general, step-by-step checklist for filing a warranty claim: finding proof of purchase, documenting the","description":"A general, step-by-step checklist for filing a warranty claim: finding proof of purchase, documenting the\n    defect, contacting the right party, and escalating if denied. Use for \"how do I file a warranty claim\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"warranty_claim_checklistArguments","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/warranty_types_glossary":{"post":{"operationId":"warranty_types_glossary","summary":"Defines common warranty terms: manufacturer's warranty, store warranty, extended warranty/service","description":"Defines common warranty terms: manufacturer's warranty, store warranty, extended warranty/service\n    contract, implied warranty, as-is sale, prorated warranty, full vs. limited warranty, and lemon law. Use for\n    \"what's the difference between an implied warranty and an extended warranty\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"warranty_types_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}},"/v1/tools/receipt_retention_guide":{"post":{"operationId":"receipt_retention_guide","summary":"General guidance on how long to keep receipts and warranty documents, and how to back them up so a faded","description":"General guidance on how long to keep receipts and warranty documents, and how to back them up so a faded\n    thermal receipt doesn't cost you a valid claim. Use for \"how long should I keep this receipt\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"receipt_retention_guideArguments","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/extended_warranty_decision":{"post":{"operationId":"extended_warranty_decision","summary":"Runs a general, widely published consumer-finance decision framework (cost as a percent of price,","description":"Runs a general, widely published consumer-finance decision framework (cost as a percent of price,\n    added coverage beyond the manufacturer's warranty, replacement affordability, product reliability, and\n    existing free card coverage) to help think through an extended-warranty decision. General information, not\n    personalized financial advice. Use for \"should I buy the extended warranty on this?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"purchase_price":{"description":"The item's purchase price.","exclusiveMinimum":0,"title":"Purchase Price","type":"number"},"extended_warranty_cost":{"description":"The cost of the extended warranty / service contract being considered.","minimum":0,"title":"Extended Warranty Cost","type":"number"},"manufacturer_warranty_months":{"description":"Length of the included manufacturer's warranty, in months.","minimum":0,"title":"Manufacturer Warranty Months","type":"number"},"extended_warranty_total_months":{"description":"Total coverage length the extended warranty would provide, in months, counted from the original purchase date.","minimum":0,"title":"Extended Warranty Total Months","type":"number"},"can_afford_replacement":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Could you afford to repair/replace this out of pocket if it broke right after the manufacturer's warranty ended?","title":"Can Afford Replacement"},"product_known_for_reliability_issues":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Is this specific product/category known for reliability problems?","title":"Product Known For Reliability Issues"},"card_offers_free_extension":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Does your payment card already extend the manufacturer's warranty for free?","title":"Card Offers Free Extension"}},"required":["purchase_price","extended_warranty_cost","manufacturer_warranty_months","extended_warranty_total_months"],"title":"extended_warranty_decisionArguments","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_warranty_terms":{"post":{"operationId":"compare_warranty_terms","summary":"Lines up two warranty offers' terms side by side and flags which fields differ. Use for \"compare these","description":"Lines up two warranty offers' terms side by side and flags which fields differ. Use for \"compare these\n    two extended warranty offers\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term_a":{"additionalProperties":true,"description":"First warranty offer's terms as key:value pairs, e.g. {\"length\": \"2 years\", \"deductible\": \"$0\", \"covers\": \"parts and labor\"}.","title":"Term A","type":"object"},"term_b":{"additionalProperties":true,"description":"Second warranty offer's terms in the same shape as term_a.","title":"Term B","type":"object"}},"required":["term_a","term_b"],"title":"compare_warranty_termsArguments","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}}}}