{"openapi":"3.1.0","info":{"title":"Curbside Kit API","version":"0.1.0","description":"A hand-curated, platform-agnostic reference of tips for efficient curbside pickup and grocery delivery: slot timing, substitution preferences, communication, order accuracy, tipping norms, a pre-pickup checklist, and a glossary.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://curbsidekit.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/curbsidekit/docs"},"termsOfService":"https://connectorbay.com/curbsidekit/terms"},"servers":[{"url":"https://curbsidekit.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/curbsidekit/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/category_list":{"post":{"operationId":"category_list","summary":"The five categories of curbside-pickup/delivery tips this reference covers. Use for \"what topics do you","description":"The five categories of curbside-pickup/delivery tips this reference covers. Use for \"what topics do you\n    cover for curbside pickup\".","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/tips_by_category":{"post":{"operationId":"tips_by_category","summary":"The specific tips in one category. Use for \"give me tips on substitution preferences\".","description":"The specific tips in one category. Use for \"give me tips on substitution preferences\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"category":{"description":"A category id or name.","examples":["slot_timing","substitutions"],"minLength":1,"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/slot_timing_tips":{"post":{"operationId":"slot_timing_tips","summary":"Tips for choosing and timing a pickup/delivery slot — when to book, how much buffer to leave, and how","description":"Tips for choosing and timing a pickup/delivery slot — when to book, how much buffer to leave, and how\n    slot timing affects substitution quality. Use for \"when's the best time to book a pickup slot\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"slot_timing_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/substitution_preference_guide":{"post":{"operationId":"substitution_preference_guide","summary":"How to set substitution preferences so your order moves quickly and still gets what you actually need. Use","description":"How to set substitution preferences so your order moves quickly and still gets what you actually need. Use\n    for \"what should I put for substitution preferences\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"substitution_preference_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/communication_tips":{"post":{"operationId":"communication_tips","summary":"How to communicate effectively with a shopper or delivery driver during the order window. Use for \"how do","description":"How to communicate effectively with a shopper or delivery driver during the order window. Use for \"how do\n    I communicate with my grocery shopper\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"communication_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/order_accuracy_checklist":{"post":{"operationId":"order_accuracy_checklist","summary":"What to check when your curbside or delivery order arrives, and how to report a problem correctly. Use for","description":"What to check when your curbside or delivery order arrives, and how to report a problem correctly. Use for\n    \"what should I check when my delivery arrives\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"order_accuracy_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/tipping_norms_overview":{"post":{"operationId":"tipping_norms_overview","summary":"General tipping-norm patterns for shoppers and delivery drivers, and what factors typically push a tip","description":"General tipping-norm patterns for shoppers and delivery drivers, and what factors typically push a tip\n    higher — with the honest caveat that there's no single universal rule and it varies by service and region.\n    Use for \"how much should I tip my grocery shopper\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"tipping_norms_overviewArguments","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/pre_pickup_checklist":{"post":{"operationId":"pre_pickup_checklist","summary":"A step-by-step routine to run through right before heading out for a curbside pickup. Use for \"what should","description":"A step-by-step routine to run through right before heading out for a curbside pickup. Use for \"what should\n    I check before I go pick up my order\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"pre_pickup_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/curbside_glossary":{"post":{"operationId":"curbside_glossary","summary":"Defines curbside pickup/delivery terms — slot, substitution, shopper, contactless delivery, order window.","description":"Defines curbside pickup/delivery terms — slot, substitution, shopper, contactless delivery, order window.\n    Use for \"what does contactless delivery 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":"curbside_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}}}}