{"openapi":"3.1.0","info":{"title":"Recycle Code API","version":"0.1.0","description":"A fully local, hand-curated and web-verified reference for plastic resin codes 1-7 and other common packaging symbols (Mobius loop, Green Dot, compostable seedling logo, Tidyman, FSC, European paper and glass codes), with curbside-acceptance notes, keyword search and a glossary.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://recyclecode.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/recyclecode/docs"},"termsOfService":"https://connectorbay.com/recyclecode/terms"},"servers":[{"url":"https://recyclecode.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/recyclecode/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/resin_code_info":{"post":{"operationId":"resin_code_info","summary":"Full detail for one plastic resin identification code (1-7): the actual material name and abbreviation,","description":"Full detail for one plastic resin identification code (1-7): the actual material name and abbreviation,\n    common product examples, whether it's commonly accepted in curbside recycling, and any notable caution. Use\n    for \"what does the number 7 mean on plastic\", \"is HDPE plastic recyclable\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"code":{"description":"The number found inside the recycling triangle on a plastic item, 1-7.","examples":[5],"maximum":7,"minimum":1,"title":"Code","type":"integer"}},"required":["code"],"title":"resin_code_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/resin_code_list":{"post":{"operationId":"resin_code_list","summary":"All seven plastic resin identification codes at a glance: material, abbreviation, and whether each is","description":"All seven plastic resin identification codes at a glance: material, abbreviation, and whether each is\n    commonly recyclable curbside. Use for \"list all the plastic recycling numbers\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"resin_code_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/symbol_info":{"post":{"operationId":"symbol_info","summary":"Explains one common packaging symbol other than a plastic resin code: the Mobius loop/chasing-arrows","description":"Explains one common packaging symbol other than a plastic resin code: the Mobius loop/chasing-arrows\n    triangle, the Green Dot, the compostable seedling logo, the Tidyman anti-litter figure, the FSC forest-sourcing\n    logo, the European PAP paper code, or the European GL glass code — what it actually certifies, where it\n    commonly appears, and the most common way people misread it. Use for \"what does the green dot symbol mean\",\n    \"is a compostable logo the same as recyclable\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"symbol":{"description":"A packaging symbol's name or alias.","examples":["mobius loop","green dot","seedling logo","FSC","PAP 20","GL 70","tidyman"],"minLength":1,"title":"Symbol","type":"string"}},"required":["symbol"],"title":"symbol_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/symbol_list":{"post":{"operationId":"symbol_list","summary":"Every non-resin-code packaging symbol this reference covers, with a one-line meaning for each. Use for","description":"Every non-resin-code packaging symbol this reference covers, with a one-line meaning for each. Use for\n    \"what packaging symbols do you know about\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"symbol_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/identify_from_description":{"post":{"operationId":"identify_from_description","summary":"Suggests the closest-matching resin code(s) and/or symbol(s) for a plain-language description of a","description":"Suggests the closest-matching resin code(s) and/or symbol(s) for a plain-language description of a\n    packaging item or a symbol you're looking at. Use for \"what plastic number is a yogurt cup usually\", \"I see a\n    green circle with two arrows on my box, what is that\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"description":{"description":"Plain-language description of a packaging item or a symbol you're looking at.","examples":["a yogurt cup","a triangle with two arrows and no number","a green circle with two arrows"],"minLength":1,"title":"Description","type":"string"},"limit":{"default":4,"description":"Max results.","maximum":8,"minimum":1,"title":"Limit","type":"integer"}},"required":["description"],"title":"identify_from_descriptionArguments","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_check":{"post":{"operationId":"curbside_check","summary":"States plainly whether a plastic (by resin code number, abbreviation, or material/item keyword) is commonly","description":"States plainly whether a plastic (by resin code number, abbreviation, or material/item keyword) is commonly\n    accepted in curbside recycling programs, per this general reference — always check your own municipal\n    program's list for the final answer. Use for \"is polystyrene recyclable curbside\", \"can I put a yogurt cup in\n    my recycling bin\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"material_or_code":{"description":"A resin code number, abbreviation, or material/item keyword.","examples":["5","PP","yogurt cup","styrofoam"],"minLength":1,"title":"Material Or Code","type":"string"}},"required":["material_or_code"],"title":"curbside_checkArguments","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/compostable_vs_recyclable":{"post":{"operationId":"compostable_vs_recyclable","summary":"Explains the specific, commonly confused difference between a 'compostable' claim and a 'recyclable'","description":"Explains the specific, commonly confused difference between a 'compostable' claim and a 'recyclable'\n    claim, and between industrial and home composting — and why putting a compostable item in a plastics\n    recycling bin is a contamination problem. Use for \"is compostable the same as recyclable\", \"can I put a\n    compostable cup in my recycling\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"compostable_vs_recyclableArguments","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/mobius_vs_green_dot":{"post":{"operationId":"mobius_vs_green_dot","summary":"Directly contrasts the two most commonly confused packaging symbols: the Mobius loop (chasing arrows, a","description":"Directly contrasts the two most commonly confused packaging symbols: the Mobius loop (chasing arrows, a\n    recyclability claim) and the Green Dot (a producer-financing mark that says nothing about recyclability). Use\n    for \"what's the difference between the recycling triangle and the green dot\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"mobius_vs_green_dotArguments","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":{"post":{"operationId":"search","summary":"Free-text keyword search across every resin code and packaging symbol's name, abbreviation, examples and","description":"Free-text keyword search across every resin code and packaging symbol's name, abbreviation, examples and\n    notes. Use for \"search packaging symbols for glass\", \"anything about paper codes\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Keyword to search for across resin codes and symbols.","minLength":1,"title":"Query","type":"string"}},"required":["query"],"title":"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/glossary":{"post":{"operationId":"glossary","summary":"Defines common recycling/packaging terms — resin identification code, curbside recycling, single-stream,","description":"Defines common recycling/packaging terms — resin identification code, curbside recycling, single-stream,\n    MRF, contamination, wishcycling, downcycling, closed-loop recycling, extended producer responsibility. Use for\n    \"what does wishcycling mean\", \"what's a MRF\".","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":"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}}}}