{"openapi":"3.1.0","info":{"title":"Longtermcheckin API","version":"0.1.0","description":"An original relationship check-in conversation-prompt generator across appreciation, goals, logistics, communication, connection, fun and individual growth, plus five named conversation frameworks and general discussion tips.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://longtermcheckin.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/longtermcheckin/docs"},"termsOfService":"https://connectorbay.com/longtermcheckin/terms"},"servers":[{"url":"https://longtermcheckin.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/longtermcheckin/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/generate_checkin":{"post":{"operationId":"generate_checkin","summary":"Generates an original set of relationship check-in prompts from one or more categories, optionally capped","description":"Generates an original set of relationship check-in prompts from one or more categories, optionally capped\n    per category. Use for \"give us 3 check-in questions about logistics and connection\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"categories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Category names to include; omit for all.","examples":[["Appreciation","Goals & Future"]],"title":"Categories"},"count_per_category":{"anyOf":[{"maximum":10,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Cap the number of prompts per category (essentials kept first).","title":"Count Per Category"},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Optional seed for reproducible variety when capping per category.","title":"Seed"}},"title":"generate_checkinArguments","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/categories_list":{"post":{"operationId":"categories_list","summary":"Every check-in prompt category with how many prompts are in it. Use for \"what topics can a relationship","description":"Every check-in prompt category with how many prompts are in it. Use for \"what topics can a relationship\n    check-in cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"categories_listArguments","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/prompts_by_category":{"post":{"operationId":"prompts_by_category","summary":"Every prompt in one category. Use categories_list for valid names. Use for \"check-in questions about","description":"Every prompt in one category. Use categories_list for valid names. Use for \"check-in questions about\n    goals\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"category":{"description":"A category name.","examples":["Appreciation","Communication & Conflict"],"title":"Category","type":"string"}},"required":["category"],"title":"prompts_by_categoryArguments","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/prompt_search":{"post":{"operationId":"prompt_search","summary":"Keyword search across every prompt's text and rationale. Use for \"any prompts about quality time\".","description":"Keyword search across every prompt's text and rationale. Use for \"any prompts about quality time\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Keyword to search for.","minLength":1,"title":"Query","type":"string"}},"required":["query"],"title":"prompt_searchArguments","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/prompt_info":{"post":{"operationId":"prompt_info","summary":"Full detail for one prompt: its text and why it matters. Use for \"why ask about how close we feel\".","description":"Full detail for one prompt: its text and why it matters. Use for \"why ask about how close we feel\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"prompt":{"description":"A prompt id or a phrase from its text.","examples":["connection_time","chore split"],"minLength":1,"title":"Prompt","type":"string"}},"required":["prompt"],"title":"prompt_infoArguments","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/framework_list":{"post":{"operationId":"framework_list","summary":"The five named conversation frameworks for structuring a check-in — Rose/Bud/Thorn, State of the Union,","description":"The five named conversation frameworks for structuring a check-in — Rose/Bud/Thorn, State of the Union,\n    High-Low, Plus/Delta, Gratitude Round — each with a one-line summary. Use for \"what formats can we use for a\n    relationship check-in\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"framework_listArguments","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/framework_info":{"post":{"operationId":"framework_info","summary":"Full detail for one conversation framework: a summary, step-by-step how-to-run guide, and what it's best","description":"Full detail for one conversation framework: a summary, step-by-step how-to-run guide, and what it's best\n    for. Use for \"how do I run a rose bud thorn conversation\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"framework":{"description":"A framework name.","examples":["Rose, Bud, Thorn","State of the Union"],"minLength":1,"title":"Framework","type":"string"}},"required":["framework"],"title":"framework_infoArguments","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/discussion_tips":{"post":{"operationId":"discussion_tips","summary":"General tips for having a good check-in conversation — timing, phones away, taking turns, ending","description":"General tips for having a good check-in conversation — timing, phones away, taking turns, ending\n    positively. Use for \"tips for a good relationship check-in conversation\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"discussion_tipsArguments","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/full_session":{"post":{"operationId":"full_session","summary":"Combines a conversation framework (optional) with a generated set of check-in prompts and general","description":"Combines a conversation framework (optional) with a generated set of check-in prompts and general\n    discussion tips into one ready-to-use session. Use for \"put together a full relationship check-in session for\n    us tonight\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"framework":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A framework name to use; omit for prompts alone.","examples":["High-Low"],"title":"Framework"},"count_per_category":{"anyOf":[{"maximum":10,"minimum":1,"type":"integer"},{"type":"null"}],"default":2,"description":"Prompts per category to include.","title":"Count Per Category"},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Optional seed for reproducible variety.","title":"Seed"}},"title":"full_sessionArguments","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}}}}