{"openapi":"3.1.0","info":{"title":"Toast API","version":"0.1.0","description":"A fully local life-event speech template and structure guide: outlines, length guidance, opening-line ideas, etiquette norms, a eulogy-writing guide, a roast-tone calibrator, transition phrases, common mistakes, and a ceremonial-speech glossary.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://toast.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/toast/docs"},"termsOfService":"https://connectorbay.com/toast/terms"},"servers":[{"url":"https://toast.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/toast/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/speech_outline":{"post":{"operationId":"speech_outline","summary":"A structured outline for a life-event speech occasion — an opening-hook approach, body sections with","description":"A structured outline for a life-event speech occasion — an opening-hook approach, body sections with\n    original placeholder prompts, and a closing move. Original scaffolding to fill in with your own details, not\n    a fill-in-the-blank script to recite verbatim. Use for \"what's the structure for a best man speech\", \"outline\n    a eulogy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"occasion":{"description":"A life-event speech occasion.","examples":["best_man_toast","maid_of_honor_toast","father_of_the_bride_speech","wedding_toast_general","eulogy","retirement_speech","farewell_speech","birthday_toast","anniversary_toast","graduation_speech","roast"],"title":"Occasion","type":"string"}},"required":["occasion"],"title":"speech_outlineArguments","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/speech_length_guide":{"post":{"operationId":"speech_length_guide","summary":"Commonly recommended length/duration for a life-event speech occasion (e.g. a best man toast commonly runs","description":"Commonly recommended length/duration for a life-event speech occasion (e.g. a best man toast commonly runs\n    3-5 minutes, a eulogy commonly 3-7 minutes), phrased as general guidance rather than a fixed rule. Use for\n    \"how long should a wedding toast be\", \"how long is a typical eulogy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"occasion":{"description":"A life-event speech occasion.","examples":["best_man_toast","maid_of_honor_toast","father_of_the_bride_speech","wedding_toast_general","eulogy","retirement_speech","farewell_speech","birthday_toast","anniversary_toast","graduation_speech","roast"],"title":"Occasion","type":"string"}},"required":["occasion"],"title":"speech_length_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/opening_line_ideas":{"post":{"operationId":"opening_line_ideas","summary":"A handful of original example opening-line styles and approaches (techniques, not full scripted lines) for","description":"A handful of original example opening-line styles and approaches (techniques, not full scripted lines) for\n    a life-event speech occasion — e.g. \"start with how you met the couple\", \"open with a one-line description of\n    what made them special\". Use for \"give me an opening line idea for a best man speech\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"occasion":{"description":"A life-event speech occasion.","examples":["best_man_toast","maid_of_honor_toast","father_of_the_bride_speech","wedding_toast_general","eulogy","retirement_speech","farewell_speech","birthday_toast","anniversary_toast","graduation_speech","roast"],"title":"Occasion","type":"string"}},"required":["occasion"],"title":"opening_line_ideasArguments","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/toast_etiquette_guide":{"post":{"operationId":"toast_etiquette_guide","summary":"General etiquette norms for a life-event speech occasion: when to give it in the event's order, whether to","description":"General etiquette norms for a life-event speech occasion: when to give it in the event's order, whether to\n    stand, whether to raise a glass, appropriate tone/length by relationship to the honoree, and what to avoid\n    (inside jokes, exes, indelicate topics). Use for \"wedding toast etiquette\", \"when do you give a best man\n    speech\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"occasion":{"description":"A life-event speech occasion.","examples":["best_man_toast","maid_of_honor_toast","father_of_the_bride_speech","wedding_toast_general","eulogy","retirement_speech","farewell_speech","birthday_toast","anniversary_toast","graduation_speech","roast"],"title":"Occasion","type":"string"}},"required":["occasion"],"title":"toast_etiquette_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/eulogy_writing_guide":{"post":{"operationId":"eulogy_writing_guide","summary":"Sensitive, thoughtful guidance for writing and delivering a eulogy specifically: what to include (a life","description":"Sensitive, thoughtful guidance for writing and delivering a eulogy specifically: what to include (a life\n    overview, character, relationships, a specific memory or two), tone guidance, and practical delivery tips\n    (a backup reader in case of emotion, large-font printed notes). Use for \"how do I write a eulogy\", \"eulogy\n    tips\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"eulogy_writing_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/roast_guide":{"post":{"operationId":"roast_guide","summary":"Guidance on comedic \"roast\" speeches (typically for a retirement, birthday, or occasionally a wedding","description":"Guidance on comedic \"roast\" speeches (typically for a retirement, birthday, or occasionally a wedding\n    best-man context): how to keep it affectionate rather than cruel, calibrating tone_level (mild/medium/spicy)\n    to the audience and relationship, always landing on a sincere note. Use for \"how do I roast my friend without\n    being mean\", \"roast ideas for a retirement party\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tone_level":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"mild | medium | spicy. Omit to see all three.","title":"Tone Level"}},"title":"roast_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/speech_transition_phrases":{"post":{"operationId":"speech_transition_phrases","summary":"A bank of original generic transition-phrase styles between sections of a speech — structural connective","description":"A bank of original generic transition-phrase styles between sections of a speech — structural connective\n    techniques (the callback, the direct address, the time jump, ...), not scripted content. Use for \"what's a\n    good transition between parts of my speech\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"speech_transition_phrasesArguments","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/common_mistakes_guide":{"post":{"operationId":"common_mistakes_guide","summary":"Common pitfalls for a life-event speech occasion — rambling, inside jokes, oversharing about an ex, reading","description":"Common pitfalls for a life-event speech occasion — rambling, inside jokes, oversharing about an ex, reading\n    the whole thing off a phone, forgetting to toast, going too long. Use for \"common mistakes in a best man\n    speech\", \"what not to do in a eulogy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"occasion":{"description":"A life-event speech occasion.","examples":["best_man_toast","maid_of_honor_toast","father_of_the_bride_speech","wedding_toast_general","eulogy","retirement_speech","farewell_speech","birthday_toast","anniversary_toast","graduation_speech","roast"],"title":"Occasion","type":"string"}},"required":["occasion"],"title":"common_mistakes_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/speech_glossary":{"post":{"operationId":"speech_glossary","summary":"A glossary of terms related to ceremonial/life-event speaking (toast, eulogy, roast, rehearsal dinner","description":"A glossary of terms related to ceremonial/life-event speaking (toast, eulogy, roast, rehearsal dinner\n    speech, emcee, receiving line, ...) — distinct from a general public-speaking glossary. Use for \"what's a\n    rehearsal dinner speech\", \"what does emcee mean\".","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":"speech_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}}}}