{"components":{"schemas":{"Error":{"properties":{"error":{"type":"string"},"error_code":{"type":"string"}},"required":["error"],"type":"object"}}},"info":{"contact":{"email":"zhangyang@fudan.edu.cn"},"description":"API for frozen LLM-extracted candidate relationship rows, source-reported annotations, and exploratory literature-derived candidate-P-versus-unlabeled sequence ranking. Candidate records are not an adjudicated gold standard.","title":"GlycoDisease Candidate Relationship Resource API","version":"2026-07-29"},"openapi":"3.1.0","paths":{"/api/about":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successful response"}},"summary":"Get release scope, limitations, hashes, and citation"}},"/api/categories":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successful response"}},"summary":"Get deterministic operational-category counts"}},"/api/diseases":{"get":{"parameters":[{"in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"in":"query","name":"per_page","schema":{"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successful response"}},"summary":"List raw disease strings"}},"/api/download/proteins":{"get":{"responses":{"200":{"description":"JSON attachment; data license remains pending author confirmation"}},"summary":"Download candidate protein-name records"}},"/api/download/relationships":{"get":{"responses":{"200":{"description":"JSON attachment; data license remains pending author confirmation"}},"summary":"Download candidate relationship rows"}},"/api/download/summary":{"get":{"responses":{"200":{"description":"JSON attachment"}},"summary":"Download release metadata and summary"}},"/api/glycan/{glytoucan_id}":{"get":{"parameters":[{"in":"path","name":"glytoucan_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successful response"},"404":{"description":"Record not found"}},"summary":"Get one GlyTouCan-linked structure record"}},"/api/glycans":{"get":{"parameters":[{"in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"in":"query","name":"per_page","schema":{"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successful response"}},"summary":"List stored GlyTouCan-linked structure records"}},"/api/network":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successful response"}},"summary":"Get a candidate protein-disease network payload"}},"/api/predict":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"sequence":{"description":"Canonical amino-acid sequence within the validated ESM-2 representation boundary.","maxLength":1022,"minLength":10,"type":"string"}},"required":["sequence"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input is outside the validated representation boundary"}},"summary":"Rank one sequence against candidate-P and unlabeled category cohorts"}},"/api/predict/batch":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"sequences":{"items":{"oneOf":[{"type":"string"},{"type":"object"}]},"maxItems":100,"type":"array"}},"required":["sequences"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input is outside the validated representation boundary"}},"summary":"Rank up to 100 sequences from JSON"}},"/api/predict/download":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"format":{"enum":["csv","tsv"],"type":"string"},"results":{"items":{"type":"object"},"type":"array"}},"required":["results"],"type":"object"}}},"required":true},"responses":{"200":{"description":"CSV or TSV attachment"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"}},"summary":"Export ranking results as CSV or TSV"}},"/api/predict/upload":{"post":{"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"format":"binary","type":"string"}},"required":["file"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input is outside the validated representation boundary"}},"summary":"Rank sequences from a UTF-8 FASTA or CSV file"}},"/api/protein/{protein_id}":{"get":{"parameters":[{"in":"path","name":"protein_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successful response"},"404":{"description":"Record not found"}},"summary":"Get one candidate protein-name record"}},"/api/protein/{protein_id}/sequence":{"get":{"parameters":[{"in":"path","name":"protein_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successful response"},"404":{"description":"Record not found"}},"summary":"Get sequence and source-preserving site annotations"}},"/api/proteins":{"get":{"parameters":[{"in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"in":"query","name":"per_page","schema":{"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successful response"}},"summary":"List candidate protein-name records"}},"/api/relationships":{"get":{"parameters":[{"in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"in":"query","name":"per_page","schema":{"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successful response"}},"summary":"List LLM-extracted candidate relationship rows"}},"/api/search":{"get":{"parameters":[{"in":"query","name":"q","required":true,"schema":{"minLength":2,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successful response"}},"summary":"Search candidate records"}},"/api/statistics":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successful response"}},"summary":"Get frozen snapshot statistics"}}},"servers":[{"url":"/"}],"x-data-license":"Pending author confirmation","x-data-version":"2025-12-18","x-knowledge-base-sha256":"698ee8358d50c619932f50142dc8a60440e16f3e47dd7f8415ede0fd265c96f7","x-model-sha256":"806bd0db16fd67f6d28677a8168e36371c3918d946706075126192b9a13ceb26"}
