{"openapi":"3.1.0","info":{"title":"Gift Occasion API","version":"0.1.0","description":"A fully local, original gift-giving idea guide by occasion and relationship type.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://giftoccasion.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/giftoccasion/docs"},"termsOfService":"https://connectorbay.com/giftoccasion/terms"},"servers":[{"url":"https://giftoccasion.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/giftoccasion/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/occasion_list":{"post":{"operationId":"occasion_list","summary":"All twelve occasions this guide covers, with idea counts. Use for \"what occasions do you have gift ideas","description":"All twelve occasions this guide covers, with idea counts. Use for \"what occasions do you have gift ideas\n    for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"occasion_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/relationship_list":{"post":{"operationId":"relationship_list","summary":"All ten relationship types this guide covers. Use for \"what relationship types do you give gift tips","description":"All ten relationship types this guide covers. Use for \"what relationship types do you give gift tips\n    for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"relationship_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/gift_ideas_by_occasion":{"post":{"operationId":"gift_ideas_by_occasion","summary":"Gift ideas for one occasion, optionally filtered by budget tier. Use for \"gift ideas for a housewarming\".","description":"Gift ideas for one occasion, optionally filtered by budget tier. Use for \"gift ideas for a housewarming\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"occasion":{"description":"birthday, wedding, anniversary, housewarming, baby_shower, graduation, holiday_season, new_job, get_well, sympathy, retirement, or thank_you.","minLength":1,"title":"Occasion","type":"string"},"budget":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optionally filter to low, medium, or high.","title":"Budget"},"count":{"default":5,"maximum":10,"minimum":1,"title":"Count","type":"integer"}},"required":["occasion"],"title":"gift_ideas_by_occasionArguments","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/gift_ideas_by_relationship":{"post":{"operationId":"gift_ideas_by_relationship","summary":"General gift-giving tips for one relationship type. Use for \"gift tips for giving to my boss\".","description":"General gift-giving tips for one relationship type. Use for \"gift tips for giving to my boss\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"relationship":{"description":"partner, parent, sibling, close_friend, coworker, boss, new_acquaintance, in_law, teacher, or neighbor.","minLength":1,"title":"Relationship","type":"string"},"count":{"default":3,"maximum":4,"minimum":1,"title":"Count","type":"integer"}},"required":["relationship"],"title":"gift_ideas_by_relationshipArguments","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/gift_search":{"post":{"operationId":"gift_search","summary":"Keyword search across every gift idea. Use for \"gift ideas involving a plant\".","description":"Keyword search across every gift idea. Use for \"gift ideas involving a plant\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Keyword to search for.","minLength":1,"title":"Query","type":"string"},"count":{"default":10,"maximum":20,"minimum":1,"title":"Count","type":"integer"}},"required":["query"],"title":"gift_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/avoid_list":{"post":{"operationId":"avoid_list","summary":"Specific things to avoid gifting, or how, in a given relationship or occasion context. Use for \"what should","description":"Specific things to avoid gifting, or how, in a given relationship or occasion context. Use for \"what should\n    I avoid gifting a coworker\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"context":{"description":"A relationship type or occasion, e.g. 'coworker' or 'sympathy'.","minLength":1,"title":"Context","type":"string"}},"required":["context"],"title":"avoid_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/gift_glossary":{"post":{"operationId":"gift_glossary","summary":"Definitions of gift-giving terms (registry gift, white elephant, gift etiquette, re-gifting). Use for","description":"Definitions of gift-giving terms (registry gift, white elephant, gift etiquette, re-gifting). Use for\n    \"what's re-gifting\".","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":"gift_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}}}}