{"openapi":"3.1.0","info":{"title":"Movingon API","version":"0.1.0","description":"A fully local, hand-curated reference for ordinary breakup adjustment: self-care basics, practical logistics, communication and boundaries, support systems, digital-life housekeeping, and a no-fixed-timeline perspective on moving forward. General and wellbeing-safe; not therapy or a diagnosis.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://movingon.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/movingon/docs"},"termsOfService":"https://connectorbay.com/movingon/terms"},"servers":[{"url":"https://movingon.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/movingon/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/tip_info":{"post":{"operationId":"tip_info","summary":"Full detail for one breakup-adjustment tip: category, practical guidance, and when it applies. General,","description":"Full detail for one breakup-adjustment tip: category, practical guidance, and when it applies. General,\n    practical information — not therapy or a diagnosis. Use for \"tips for sleeping better after a breakup\", \"how do\n    I handle shared finances\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A topic or tip name.","examples":["sleep routine","shared finances","no contact"],"minLength":1,"title":"Topic","type":"string"}},"required":["topic"],"title":"tip_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/tip_search":{"post":{"operationId":"tip_search","summary":"Keyword search across every tip's name, category, summary, guidance and tagged situations. Use for \"breakup","description":"Keyword search across every tip's name, category, summary, guidance and tagged situations. Use for \"breakup\n    tips about sleep\", \"anything about dividing belongings\".","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":"tip_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/tips_by_category":{"post":{"operationId":"tips_by_category","summary":"Every tip in one category. Use category_list to see valid category names. Use for \"list all practical","description":"Every tip in one category. Use category_list to see valid category names. Use for \"list all practical\n    logistics tips\", \"what self-care tips do you have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"category":{"description":"A category name.","examples":["Self-Care Basics","Practical Logistics","Moving Forward"],"title":"Category","type":"string"}},"required":["category"],"title":"tips_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/category_list":{"post":{"operationId":"category_list","summary":"Every tip category with how many tips are in it. Use for \"what categories do you cover\".","description":"Every tip category with how many tips are in it. Use for \"what categories do you cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"category_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/find_tip_for_situation":{"post":{"operationId":"find_tip_for_situation","summary":"Suggests 1-4 relevant tips for a stated situation, keyword-matched against each tip's tagged situations. Use","description":"Suggests 1-4 relevant tips for a stated situation, keyword-matched against each tip's tagged situations. Use\n    for \"we still live together, what should we do\", \"should I unfollow my ex\", \"how do we split the dog\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"situation":{"description":"A situation, in plain language.","examples":["we still live together","keep checking their instagram","shared dog","can't sleep"],"minLength":1,"title":"Situation","type":"string"}},"required":["situation"],"title":"find_tip_for_situationArguments","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/self_care_essentials":{"post":{"operationId":"self_care_essentials","summary":"A ranked shortlist of the most foundational self-care basics for the first stretch after a breakup — sleep,","description":"A ranked shortlist of the most foundational self-care basics for the first stretch after a breakup — sleep,\n    eating regularly, movement, routine, reducing rumination triggers, small wins. Use for \"what should I focus on\n    right after a breakup\", \"self-care basics for a breakup\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"count":{"default":5,"description":"How many essentials to return.","maximum":10,"minimum":1,"title":"Count","type":"integer"}},"title":"self_care_essentialsArguments","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/logistics_checklist":{"post":{"operationId":"logistics_checklist","summary":"Practical steps for untangling one area of shared life after a breakup: finances, belongings, housing/lease,","description":"Practical steps for untangling one area of shared life after a breakup: finances, belongings, housing/lease,\n    pets, mutual friends, or shared plans/bookings. Use for \"how do we split our joint account\", \"who keeps the\n    dog\", \"we have a shared lease\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"area":{"description":"An area of shared life to untangle.","examples":["finances","belongings","housing","pets","friends","plans"],"minLength":1,"title":"Area","type":"string"}},"required":["area"],"title":"logistics_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/when_to_consider_support":{"post":{"operationId":"when_to_consider_support","summary":"General, non-diagnostic guidance on when it might help to talk to a counselor, therapist, or doctor after a","description":"General, non-diagnostic guidance on when it might help to talk to a counselor, therapist, or doctor after a\n    breakup — framed as an ordinary, common step, never alarmist, and never a diagnosis of any individual. Use for\n    \"should I see a therapist after my breakup\", \"is it normal to still feel this way\", \"when should I get help\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"when_to_consider_supportArguments","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/moving_forward_perspective":{"post":{"operationId":"moving_forward_perspective","summary":"A normalizing, non-clinical note that there is no fixed timeline for feeling better after a breakup, that","description":"A normalizing, non-clinical note that there is no fixed timeline for feeling better after a breakup, that\n    good and bad days often come out of order, and that reminders bringing feelings back up is normal, not a\n    setback. Use for \"why am I not over it yet\", \"is it normal to still feel sad after months\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"moving_forward_perspectiveArguments","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}}}}