{"openapi":"3.0.0","paths":{"/api/pet-types":{"get":{"operationId":"H2_list","parameters":[],"responses":{"200":{"description":""}},"summary":"List all pet types (e.g. dog, cat, horse)","tags":["pet-types"]}},"/api/pet-types/{id}":{"get":{"operationId":"H2_getOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Get one pet type by id","tags":["pet-types"]}},"/api/thing-types":{"get":{"operationId":"W2_list","parameters":[],"responses":{"200":{"description":""}},"summary":"List all thing types (e.g. plant, food, medication, product, activity)","tags":["thing-types"]}},"/api/thing-types/{id}":{"get":{"operationId":"W2_getOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Get one thing type by id","tags":["thing-types"]}},"/api/things":{"get":{"description":"Combine q/petType/thingType freely. With no params, returns every Thing (~450+ and growing).","operationId":"K2_list","parameters":[{"name":"q","required":false,"in":"query","description":"Free-text fuzzy search","schema":{"type":"string"}},{"name":"petType","required":false,"in":"query","description":"e.g. dog, cat, horse","schema":{"type":"string"}},{"name":"thingType","required":false,"in":"query","description":"e.g. plant, food, medication, product, activity","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Search or browse things dangerous to pets","tags":["things"]}},"/api/things/{id}":{"get":{"operationId":"K2_getOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Get one thing by id, including full details/source citation","tags":["things"]}},"/api/auth/github":{"get":{"operationId":"pu_githubLogin","parameters":[],"responses":{"200":{"description":""}},"tags":["pu"]}},"/api/auth/github/callback":{"get":{"operationId":"pu_githubCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["pu"]}},"/api/auth/google":{"get":{"operationId":"pu_googleLogin","parameters":[],"responses":{"200":{"description":""}},"tags":["pu"]}},"/api/auth/google/callback":{"get":{"operationId":"pu_googleCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["pu"]}},"/api/auth/email/request":{"post":{"operationId":"pu_requestEmailSignIn","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/F7"}}}},"responses":{"201":{"description":""}},"tags":["pu"]}},"/api/auth/email/confirm":{"post":{"operationId":"pu_confirmEmailSignIn","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/_$"}}}},"responses":{"201":{"description":""}},"tags":["pu"]}},"/api/auth/email/test-code":{"get":{"operationId":"pu_getEmailTestCode","parameters":[{"name":"email","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["pu"]}},"/api/auth/test/verify":{"post":{"operationId":"pu_testVerify","parameters":[],"responses":{"201":{"description":""}},"tags":["pu"]}},"/api/auth/me":{"get":{"operationId":"pu_me","parameters":[],"responses":{"200":{"description":""}},"tags":["pu"]}},"/api/auth/logout":{"get":{"operationId":"pu_logout","parameters":[],"responses":{"200":{"description":""}},"tags":["pu"]}},"/api/verification/quiz":{"get":{"operationId":"A$_getQuiz","parameters":[],"responses":{"200":{"description":""}},"tags":["A$"]},"post":{"operationId":"A$_submitQuiz","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Function"}}}},"responses":{"201":{"description":""}},"tags":["A$"]}},"/api/contributions":{"post":{"operationId":"OT_propose","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Function"}}}},"responses":{"201":{"description":""}},"tags":["OT"]}},"/api/contributions/pending":{"get":{"operationId":"OT_listPending","parameters":[],"responses":{"200":{"description":""}},"tags":["OT"]}},"/api/contributions/{thingId}/{sk}/approve":{"post":{"operationId":"OT_approve","parameters":[{"name":"thingId","required":true,"in":"path","schema":{"type":"string"}},{"name":"sk","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["OT"]}},"/sitemap.xml":{"get":{"operationId":"B7_sitemap","parameters":[],"responses":{"200":{"description":""}},"tags":["B7"]}},"/robots.txt":{"get":{"operationId":"G7_robots","parameters":[],"responses":{"200":{"description":""}},"tags":["G7"]}},"/api/mcp":{"get":{"operationId":"P$_streamingNotSupported","parameters":[],"responses":{"200":{"description":""}},"tags":["P$"]},"post":{"operationId":"P$_handle","parameters":[],"responses":{"201":{"description":""}},"tags":["P$"]}},"/api/verification/professional/request":{"post":{"operationId":"Vb_request","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/H7"}}}},"responses":{"201":{"description":""}},"tags":["Vb"]}},"/api/verification/professional/confirm":{"post":{"operationId":"Vb_confirm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V7"}}}},"responses":{"201":{"description":""}},"tags":["Vb"]}},"/api/verification/professional/pending":{"get":{"operationId":"Vb_pending","parameters":[],"responses":{"200":{"description":""}},"tags":["Vb"]}},"/api/verification/professional/{userId}/review":{"post":{"operationId":"Vb_review","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/w$"}}}},"responses":{"201":{"description":""}},"tags":["Vb"]}}},"info":{"title":"badthingsforpets.com API","description":"Public read API for pet-danger data. GET endpoints are unauthenticated and CORS-open.","version":"1.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"F7":{"type":"object","properties":{}},"_$":{"type":"object","properties":{}},"Function":{"type":"object","properties":{}},"H7":{"type":"object","properties":{}},"V7":{"type":"object","properties":{}},"w$":{"type":"object","properties":{}}}}}