{"info":{"description":"Public endpoints currently exposed by the Flask-based PROTAC Builder application. The spec is generated from the existing route surface and intentionally avoids undocumented claims.","title":"PROTAC Builder Public API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/api/admet/download/{filename}":{"get":{"parameters":[{"in":"path","name":"filename","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Artifact download"},"404":{"description":"File not found"}},"summary":"Download an ADMET artifact"}},"/api/admet/run":{"post":{"responses":{"200":{"description":"ADMET response"},"400":{"description":"Bad input"},"500":{"description":"Server error"}},"summary":"Run ADMET report generation"}},"/api/deeppk/download/{job_id}/{filename}":{"get":{"parameters":[{"in":"path","name":"job_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"filename","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Artifact download"},"404":{"description":"File not found"}},"summary":"Download a DeepPK artifact"}},"/api/deeppk/run":{"post":{"responses":{"200":{"description":"Pipeline response"},"500":{"description":"Pipeline error"}},"summary":"Run the DeepPK-related pipeline"}},"/api/e3ligase/pdb/{ligase}/{filename}":{"get":{"parameters":[{"in":"path","name":"ligase","required":true,"schema":{"type":"string"}},{"in":"path","name":"filename","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"PDB file response"}},"summary":"Download a ligase PDB file"}},"/api/e3ligase/sdf/{ligase}/{filename}":{"get":{"parameters":[{"in":"path","name":"ligase","required":true,"schema":{"type":"string"}},{"in":"path","name":"filename","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"SDF file response"}},"summary":"Download a ligase SDF file"}},"/api/ligand/data":{"get":{"responses":{"200":{"description":"Ligand data response"}},"summary":"Fetch ligand data"}},"/api/ligand/modify":{"post":{"responses":{"200":{"description":"Ligand modification response"}},"summary":"Modify ligand data"}},"/api/ligand/smiles":{"get":{"responses":{"200":{"description":"Ligand SMILES response"}},"summary":"Fetch ligand SMILES data"}},"/api/ligand/store":{"post":{"responses":{"200":{"description":"Ligand storage response"}},"summary":"Store ligand data"}},"/api/ligase/raw/{name}":{"get":{"parameters":[{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Ligase raw response"},"404":{"description":"Ligase not found"}},"summary":"Load raw ligase data by name"}},"/api/ligase/render":{"get":{"responses":{"200":{"description":"Ligase render response"}},"summary":"Render a ligase structure representation"}},"/api/ligases":{"get":{"responses":{"200":{"description":"Ligase list payload"}},"summary":"List ligases exposed by the app"}},"/api/linkers/curated":{"get":{"responses":{"200":{"description":"Curated linker payload"}},"summary":"List curated linker templates"}},"/api/molecule/mol-to-smiles":{"post":{"responses":{"200":{"description":"Converted SMILES payload"}},"summary":"Convert MOL to SMILES"}},"/api/molecule/render-smiles":{"post":{"responses":{"200":{"description":"Rendered structure response"}},"summary":"Render structure from SMILES"}},"/api/molecule/smiles-to-mol":{"post":{"responses":{"200":{"description":"Converted MOL payload"}},"summary":"Convert SMILES to MOL"}},"/api/protac/batch-linkers":{"post":{"responses":{"200":{"description":"Batch generation response"}},"summary":"Generate PROTACs across linker batches"}},"/api/protac/builder/batch":{"post":{"responses":{"200":{"description":"Builder batch response"}},"summary":"Run builder batch workflow"}},"/api/protac/builder/cli":{"post":{"responses":{"200":{"description":"Builder CLI response"}},"summary":"Run builder CLI-style workflow"}},"/api/protac/builder/template/download-count":{"get":{"responses":{"200":{"description":"Download count"}},"summary":"Retrieve template download count"}},"/api/protac/builder/template/linkers":{"get":{"responses":{"200":{"description":"CSV download"}},"summary":"Download linker template CSV"}},"/api/protac/builder/usage":{"get":{"responses":{"200":{"description":"Usage summary"}},"summary":"Retrieve builder usage summary"}},"/api/protac/download-smiles":{"post":{"responses":{"200":{"description":"Download response"}},"summary":"Download generated PROTAC SMILES"}},"/api/protac/generate":{"post":{"responses":{"200":{"description":"Generated PROTAC response"}},"summary":"Generate a PROTAC from components"}},"/api/protac/linkers/inspect":{"post":{"responses":{"200":{"description":"Linker inspection response"}},"summary":"Inspect linker CSV input"}},"/api/protac/log":{"post":{"responses":{"200":{"description":"Log acknowledgement"}},"summary":"Log frontend PROTAC activity"}},"/api/protac/structure/convert":{"post":{"responses":{"200":{"description":"Structure conversion response"}},"summary":"Convert PROTAC structure representations"}},"/api/protac/structure/mapped-smiles":{"post":{"responses":{"200":{"description":"Mapped SMILES response"}},"summary":"Generate mapped SMILES for a structure"}},"/api/recruiter/converted/{session_id}":{"get":{"parameters":[{"in":"path","name":"session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Converted recruiter response"},"400":{"description":"Missing session ID"}},"summary":"Load converted recruiter data for a handoff session"}},"/api/recruiter/{name}":{"get":{"parameters":[{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Recruiter response"},"404":{"description":"Recruiter not found"}},"summary":"Load recruiter data by name"}},"/api/warhead/sdf/{pdb_id}/{ligand_code}":{"get":{"parameters":[{"in":"path","name":"pdb_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"ligand_code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Warhead SDF response"}},"summary":"Download a warhead SDF file"}},"/api/warheadhunter/job/{job_id}":{"get":{"parameters":[{"in":"path","name":"job_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Warhead Hunter job metadata"}},"summary":"Retrieve proxied Warhead Hunter job index"}},"/api/warheadhunter/job/{job_id}/file/{filename}":{"get":{"parameters":[{"in":"path","name":"job_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"filename","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Warhead Hunter file response"}},"summary":"Retrieve a proxied Warhead Hunter job file"}}},"servers":[{"url":"https://protacbuilder.com"}]}
