{"openapi":"3.1.0","info":{"title":"Partyplan API","version":"0.1.0","description":"A party-planning toolkit: theme checklists (decor, activities, food, supplies), a universal essentials checklist, and genuine local calculators for food quantity, drink quantity, budget allocation and a date-driven planning timeline.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://partyplan.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/partyplan/docs"},"termsOfService":"https://connectorbay.com/partyplan/terms"},"servers":[{"url":"https://partyplan.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/partyplan/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/checklist_by_theme":{"post":{"operationId":"checklist_by_theme","summary":"Decor, activity, food, and supply ideas for one party theme. Use theme_list for valid names. Use for \"ideas","description":"Decor, activity, food, and supply ideas for one party theme. Use theme_list for valid names. Use for \"ideas\n    for a kids' birthday party\", \"what do I need for a backyard BBQ\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"theme":{"description":"A party theme.","examples":["Kids' Birthday","Backyard BBQ","Potluck"],"minLength":1,"title":"Theme","type":"string"}},"required":["theme"],"title":"checklist_by_themeArguments","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/theme_list":{"post":{"operationId":"theme_list","summary":"Every party theme this connector covers, with a one-line description. Use for \"what party themes do you","description":"Every party theme this connector covers, with a one-line description. Use for \"what party themes do you\n    have ideas for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"theme_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/search_ideas":{"post":{"operationId":"search_ideas","summary":"Keyword search across every theme's decor, activity, food and supply ideas. Use for \"any decoration ideas","description":"Keyword search across every theme's decor, activity, food and supply ideas. Use for \"any decoration ideas\n    with balloons\", \"themes with lawn games\".","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":"search_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/essential_checklist":{"post":{"operationId":"essential_checklist","summary":"A universal shortlist of party-planning essentials that apply regardless of theme. Use for \"what should I","description":"A universal shortlist of party-planning essentials that apply regardless of theme. Use for \"what should I\n    never forget when planning a party\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"essential_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/food_quantity":{"post":{"operationId":"food_quantity","summary":"A genuine food-quantity calculator: estimates total food to plan for from guest count, meal type, and party","description":"A genuine food-quantity calculator: estimates total food to plan for from guest count, meal type, and party\n    length, using standard catering rules of thumb. Use meal_type_list for valid types. Use for \"how much food for\n    20 people at a cocktail party\", \"how much BBQ for 15 guests\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"guest_count":{"description":"Number of guests.","maximum":2000,"minimum":1,"title":"Guest Count","type":"integer"},"meal_type":{"description":"One of: appetizers_only, heavy_appetizers, full_meal_buffet, bbq, dessert_only, breakfast_brunch.","examples":["full_meal_buffet"],"title":"Meal Type","type":"string"},"hours":{"default":2.0,"description":"Roughly how many hours food will be out.","maximum":12,"minimum":0.5,"title":"Hours","type":"number"}},"required":["guest_count","meal_type"],"title":"food_quantityArguments","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/meal_type_list":{"post":{"operationId":"meal_type_list","summary":"The meal types food_quantity accepts, with their units and notes. Use for \"what meal types can you","description":"The meal types food_quantity accepts, with their units and notes. Use for \"what meal types can you\n    estimate food for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"meal_type_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/drink_quantity":{"post":{"operationId":"drink_quantity","summary":"A genuine drink-quantity calculator: non-alcoholic servings, ice, and (optionally) a ballpark alcohol","description":"A genuine drink-quantity calculator: non-alcoholic servings, ice, and (optionally) a ballpark alcohol\n    estimate split across wine/beer/spirits, from guest count and party length. Use for \"how many drinks for 30\n    people for 3 hours\", \"how much ice do I need\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"guest_count":{"description":"Number of guests.","maximum":2000,"minimum":1,"title":"Guest Count","type":"integer"},"hours":{"default":2.0,"description":"Roughly how many hours drinks will be out.","maximum":12,"minimum":0.5,"title":"Hours","type":"number"},"includes_alcohol":{"default":false,"description":"Whether to also estimate alcoholic drinks.","title":"Includes Alcohol","type":"boolean"}},"required":["guest_count"],"title":"drink_quantityArguments","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/budget_allocator":{"post":{"operationId":"budget_allocator","summary":"A genuine budget calculator: splits a total budget across venue, food & drink, decor, entertainment,","description":"A genuine budget calculator: splits a total budget across venue, food & drink, decor, entertainment,\n    rentals, favors and a buffer, using a general-purpose or event-tailored percentage guideline. Use for \"how\n    should I budget $1500 for a graduation party\", \"split a $500 budget for a backyard BBQ\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"total_budget":{"description":"Total party budget.","examples":[1500],"exclusiveMinimum":0,"title":"Total Budget","type":"number"},"event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"An event type to use a tailored split; omit for a general-purpose split.","examples":["kids birthday","backyard bbq","milestone formal"],"title":"Event Type"}},"required":["total_budget"],"title":"budget_allocatorArguments","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/planning_timeline":{"post":{"operationId":"planning_timeline","summary":"A genuine planning timeline: real calendar due-dates for each planning milestone (budget & guest list,","description":"A genuine planning timeline: real calendar due-dates for each planning milestone (budget & guest list,\n    invitations, menu, headcount, shopping, setup) counting back from your event date, compressed automatically if\n    the event is soon. Use for \"planning timeline for a party on December 20th\", \"what should I do 2 weeks\n    before my party\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"event_date":{"description":"The event date, YYYY-MM-DD.","examples":["2026-12-20"],"title":"Event Date","type":"string"}},"required":["event_date"],"title":"planning_timelineArguments","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}}}}