{"openapi":"3.1.0","info":{"title":"GrowGuide API","version":"0.1.0","description":"Home-gardening tools: hardiness zones, frost dates, planting calendar, plant care, companion planting, pests, soil pH, spacing, compost, seed starting — all local.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://growguide.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/growguide/docs"},"termsOfService":"https://connectorbay.com/growguide/terms"},"servers":[{"url":"https://growguide.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/growguide/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/hardiness_zone_info":{"post":{"operationId":"hardiness_zone_info","summary":"USDA hardiness zone temperature band, example cities and growing-season length, or the full zone","description":"USDA hardiness zone temperature band, example cities and growing-season length, or the full zone\n    table. Use for \"what zone is 6a\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A USDA hardiness zone, e.g. '6a'; omit to list all zones.","title":"Zone"}},"title":"hardiness_zone_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/frost_dates":{"post":{"operationId":"frost_dates","summary":"Average last-spring-frost and first-fall-frost dates for a hardiness zone. Use for \"when's my last","description":"Average last-spring-frost and first-fall-frost dates for a hardiness zone. Use for \"when's my last\n    frost in zone 6a\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone":{"description":"A USDA hardiness zone, e.g. '6a'.","title":"Zone","type":"string"}},"required":["zone"],"title":"frost_datesArguments","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/planting_calendar":{"post":{"operationId":"planting_calendar","summary":"A start-indoors/transplant/direct-sow schedule for a crop, computed from a zone's average last frost.","description":"A start-indoors/transplant/direct-sow schedule for a crop, computed from a zone's average last frost.\n    Use for \"when should I start tomato seeds in zone 6a\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone":{"description":"A USDA hardiness zone, e.g. '6a'.","title":"Zone","type":"string"},"crop":{"description":"A crop name.","examples":["tomato","lettuce","cucumber"],"title":"Crop","type":"string"},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Year to compute calendar dates for; defaults to the current year.","title":"Year"}},"required":["zone","crop"],"title":"planting_calendarArguments","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/plant_care":{"post":{"operationId":"plant_care","summary":"Light, water, soil pH and spacing needs for a plant. Use for \"how do I care for basil\".","description":"Light, water, soil pH and spacing needs for a plant. Use for \"how do I care for basil\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"plant":{"description":"A plant name.","examples":["tomato","basil","pothos","rose"],"title":"Plant","type":"string"}},"required":["plant"],"title":"plant_careArguments","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/companion_planting":{"post":{"operationId":"companion_planting","summary":"Good companion plants and ones to avoid nearby, with the reasoning. Use for \"what should I plant with","description":"Good companion plants and ones to avoid nearby, with the reasoning. Use for \"what should I plant with\n    tomatoes\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"plant":{"description":"A plant name.","examples":["tomato","cucumber","corn"],"title":"Plant","type":"string"}},"required":["plant"],"title":"companion_plantingArguments","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/pest_guide":{"post":{"operationId":"pest_guide","summary":"Identify a common garden pest or disease by name, symptom, or affected plant, with an organic","description":"Identify a common garden pest or disease by name, symptom, or affected plant, with an organic\n    treatment. Use for \"what's eating my squash leaves\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A pest name, symptom, or affected plant; omit to list all entries.","title":"Query"}},"title":"pest_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/soil_ph_guide":{"post":{"operationId":"soil_ph_guide","summary":"A plant's ideal soil pH range, or an assessment of a given pH reading (for a specific plant or in","description":"A plant's ideal soil pH range, or an assessment of a given pH reading (for a specific plant or in\n    general). Use for \"is pH 5.2 okay for blueberries\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"plant":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A plant name to get its ideal pH range.","title":"Plant"},"ph":{"anyOf":[{"maximum":14,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"A pH reading to assess.","title":"Ph"}},"title":"soil_ph_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/spacing_calculator":{"post":{"operationId":"spacing_calculator","summary":"Estimated number of plants that fit a garden bed given the plant's standard spacing. Use for \"how many","description":"Estimated number of plants that fit a garden bed given the plant's standard spacing. Use for \"how many\n    pepper plants fit a 4x8 bed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"plant":{"description":"A plant name with a standard row spacing.","title":"Plant","type":"string"},"bed_length_in":{"exclusiveMinimum":0,"title":"Bed Length In","type":"number"},"bed_width_in":{"exclusiveMinimum":0,"title":"Bed Width In","type":"number"}},"required":["plant","bed_length_in","bed_width_in"],"title":"spacing_calculatorArguments","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/compost_calculator":{"post":{"operationId":"compost_calculator","summary":"Estimated carbon:nitrogen ratio for a compost mix against the ideal 25:1-30:1 range. Use for \"is my","description":"Estimated carbon:nitrogen ratio for a compost mix against the ideal 25:1-30:1 range. Use for \"is my\n    compost mix balanced\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"materials":{"additionalProperties":{"type":"number"},"description":"Material name to volume (any consistent unit).","examples":[{"dry leaves":3,"grass clippings":1}],"title":"Materials","type":"object"}},"required":["materials"],"title":"compost_calculatorArguments","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/seed_starting_guide":{"post":{"operationId":"seed_starting_guide","summary":"Germination temperature, days to germinate, and planting depth for a crop. Use for \"how long does","description":"Germination temperature, days to germinate, and planting depth for a crop. Use for \"how long does\n    cucumber take to germinate\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"plant":{"description":"A plant name.","title":"Plant","type":"string"}},"required":["plant"],"title":"seed_starting_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}}}}