{"openapi":"3.1.0","info":{"title":"LipidCXSMILES API","description":"Generate one lipid from shorthand or parameters, or batches of up to 100 names. Anonymous access; shared per-client token bucket: capacity 10, refill 60/minute, including cache hits and compatibility aliases. Single jobs allow 60 seconds; batches 110 seconds.","license":{"name":"AGPL-3.0-only","identifier":"AGPL-3.0-only"},"version":"1.0.0"},"servers":[{"url":"/lipidcxsmiles/"}],"paths":{"/api/v1/lipids/lipidcxsmiles":{"get":{"tags":["Lipids"],"summary":"Get Lipidcxsmiles","description":"Return LipidCXSMILES only for one shorthand name.","operationId":"get_lipidcxsmiles","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"description":"One shorthand lipid name; encode spaces, /, ; and + as query data.","examples":["PC 16:0/18:1"],"title":"Name"},"description":"One shorthand lipid name; encode spaces, /, ; and + as query data."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LipidCXSMILESResponse"},"example":{"lipidcxsmiles":"OC(=O)C |Sg:n:3:a:ht |a=15|"}}}},"422":{"description":"Invalid lipid input","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds before retrying."}}},"500":{"description":"Generation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Service unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds before retrying."}}},"504":{"description":"Generation timed out","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"security":[]}},"/api/v1/lipids/lipidcxsmiles_info":{"get":{"tags":["Lipids"],"summary":"Get Lipidcxsmiles Info","description":"Return scientific results, compartments/adducts and parsed inputs, without images.","operationId":"get_lipidcxsmiles_info","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"description":"One shorthand lipid name; encode spaces, /, ; and + as query data.","examples":["PC 16:0/18:1"],"title":"Name"},"description":"One shorthand lipid name; encode spaces, /, ; and + as query data."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LipidInfoResponse"},"example":{"name":"FA 16:0","inputs":{"category":"Fatty Acyls [FA]","lipid_class":"FA","chain1_len":16,"chain1_db":0,"chain1_link":"Acyl (A-)","chain2_len":0,"chain2_db":0,"chain2_link":"Acyl (A-)","chain3_len":0,"chain3_db":0,"chain3_link":"Acyl (A-)","hex_count":1,"shorthand_level":"Bulk level (SUM)","lcb_oh_str":";O2 (d)","mg_position":"sn1","dg_free_position":"sn3","lyso_position":"sn1"},"shorthand_name":"FA 16:0","bulk_name":"FA 16:0","discrete_name":"FA 16:0","sn_position_name":"FA 16:0","formula":"C16H32O2","mass":"256.240230","remarks":"sn1: a=15","compartments":[{"name":"Full Molecule","formula":"C16H32O2","mass":"256.240230","adducts":[{"adduct":"[M+H]+","formula":"C16H33O2+","mz":"257.2475","charge":"1"},{"adduct":"[M+NH4]+","formula":"C16H36NO2+","mz":"274.2741","charge":"1"},{"adduct":"[M-H]-","formula":"C16H31O2-","mz":"255.2330","charge":"-1"},{"adduct":"[M+HCOO]-","formula":"C17H33O4-","mz":"301.2384","charge":"-1"},{"adduct":"[M+CH3COO]-","formula":"C18H35O4-","mz":"315.2541","charge":"-1"}]}],"lipidcxsmiles":"OC(=O)C |Sg:n:3:a:ht |a=15|","connected_lipidcxsmiles":""}}}},"422":{"description":"Invalid lipid input","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds before retrying."}}},"500":{"description":"Generation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Service unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds before retrying."}}},"504":{"description":"Generation timed out","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"security":[]}},"/api/v1/lipids/lipidcxsmiles_info_img":{"get":{"tags":["Lipids"],"summary":"Get Lipidcxsmiles Info Img","description":"Return all scientific information with SVG text embedded in JSON (no PNG).","operationId":"get_lipidcxsmiles_info_img","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"description":"One shorthand lipid name; encode spaces, /, ; and + as query data.","examples":["PC 16:0/18:1"],"title":"Name"},"description":"One shorthand lipid name; encode spaces, /, ; and + as query data."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LipidImageResponse"},"example":{"name":"FA 16:0","inputs":{"category":"Fatty Acyls [FA]","lipid_class":"FA","chain1_len":16,"chain1_db":0,"chain1_link":"Acyl (A-)","chain2_len":0,"chain2_db":0,"chain2_link":"Acyl (A-)","chain3_len":0,"chain3_db":0,"chain3_link":"Acyl (A-)","hex_count":1,"shorthand_level":"Bulk level (SUM)","lcb_oh_str":";O2 (d)","mg_position":"sn1","dg_free_position":"sn3","lyso_position":"sn1"},"shorthand_name":"FA 16:0","bulk_name":"FA 16:0","discrete_name":"FA 16:0","sn_position_name":"FA 16:0","formula":"C16H32O2","mass":"256.240230","remarks":"sn1: a=15","compartments":[{"name":"Full Molecule","formula":"C16H32O2","mass":"256.240230","adducts":[{"adduct":"[M+H]+","formula":"C16H33O2+","mz":"257.2475","charge":"1"},{"adduct":"[M+NH4]+","formula":"C16H36NO2+","mz":"274.2741","charge":"1"},{"adduct":"[M-H]-","formula":"C16H31O2-","mz":"255.2330","charge":"-1"},{"adduct":"[M+HCOO]-","formula":"C17H33O4-","mz":"301.2384","charge":"-1"},{"adduct":"[M+CH3COO]-","formula":"C18H35O4-","mz":"315.2541","charge":"-1"}]}],"svg":"<?xml version='1.0' encoding='UTF-8'?>\n\n<svg version='1.2' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='600.0px' height='300.0px' viewBox='0 0 600.0 300.0'>\n  <desc>Generated by the Chemistry Development Kit (http://github.com/cdk)</desc>\n  <g stroke-linecap='round' stroke-linejoin='round' stroke='#444444' stroke-width='5.613' fill='#444444'>\n    <rect x='.0' y='.0' width='600.0' height='300.0' fill='#FFFFFF' stroke='none'/>\n    <g id='mol1' class='mol'>\n      <line id='mol1bnd1' class='bond' x1='302.057' y1='228.557' x2='302.057' y2='114.199'/>\n      <g id='mol1bnd2' class='bond'>\n        <line x1='289.762' y1='107.101' x2='396.212' y2='45.642'/>\n        <line x1='302.057' y1='128.397' x2='408.507' y2='66.938'/>\n      </g>\n      <line id='mol1bnd3' class='bond' x1='302.057' y1='114.199' x2='168.956' y2='37.353'/>\n      <g id='mol1atm1' class='atom'>\n        <path d='M327.268 267.845q-.0 8.465 -2.852 14.814q-2.853 6.348 -8.465 9.845q-5.613 3.496 -13.894 3.496q-8.465 .0 -14.077 -3.496q-5.613 -3.497 -8.373 -9.845q-2.76 -6.349 -2.76 -14.906q-.0 -8.373 2.76 -14.629q2.76 -6.349 8.373 -9.845q5.612 -3.497 14.169 -3.497q8.189 .0 13.802 3.497q5.612 3.496 8.465 9.845q2.852 6.256 2.852 14.721zM284.116 267.845q-.0 10.305 4.324 16.286q4.416 5.888 13.617 5.888q9.385 .0 13.618 -5.888q4.324 -5.981 4.324 -16.286q.0 -10.305 -4.324 -16.101q-4.233 -5.889 -13.526 -5.889q-9.293 .0 -13.709 5.889q-4.324 5.796 -4.324 16.101z' stroke='none'/>\n        <path d='M375.306 295.264h-6.901v-25.487h-27.971v25.487h-6.9v-54.653h6.9v23.094h27.971v-23.094h6.901v54.653z' stroke='none'/>\n      </g>\n      <path id='mol1atm3' class='atom' d='M460.369 37.307q-.0 8.465 -2.852 14.814q-2.853 6.348 -8.465 9.845q-5.613 3.496 -13.894 3.496q-8.464 .0 -14.077 -3.496q-5.612 -3.497 -8.373 -9.845q-2.76 -6.349 -2.76 -14.906q-.0 -8.373 2.76 -14.629q2.761 -6.349 8.373 -9.845q5.613 -3.496 14.169 -3.496q8.189 -.0 13.802 3.496q5.612 3.496 8.465 9.845q2.852 6.256 2.852 14.721zM417.217 37.307q-.0 10.305 4.324 16.286q4.417 5.888 13.617 5.888q9.385 .0 13.618 -5.888q4.324 -5.981 4.324 -16.286q.0 -10.305 -4.324 -16.101q-4.233 -5.889 -13.526 -5.889q-9.292 .0 -13.709 5.889q-4.324 5.796 -4.324 16.101z' stroke='none'/>\n      <path d='M139.631 37.675q.0 -9.293 2.668 -17.941q2.761 -8.741 8.649 -15.734h6.349q-5.429 7.177 -8.189 15.826q-2.668 8.648 -2.668 17.757q-.0 8.925 2.668 17.482q2.76 8.465 8.097 15.642h-6.257q-5.888 -6.717 -8.649 -15.182q-2.668 -8.557 -2.668 -17.85z' stroke='none'/>\n      <path d='M198.235 37.675q.0 9.293 -2.76 17.85q-2.668 8.465 -8.465 15.182h-6.256q5.244 -7.177 7.912 -15.642q2.761 -8.557 2.761 -17.482q-.0 -9.109 -2.761 -17.757q-2.668 -8.649 -8.004 -15.826h6.348q5.797 6.993 8.465 15.734q2.76 8.648 2.76 17.941z' stroke='none'/>\n      <path d='M208.209 68.228q4.472 -.0 6.625 1.987q2.153 1.932 2.153 6.238v16.783h-2.926l-.773 -3.478h-.166q-1.601 1.987 -3.422 2.981q-1.767 .939 -4.858 .939q-3.368 -.0 -5.576 -1.767q-2.208 -1.767 -2.208 -5.521q-.0 -3.698 2.87 -5.686q2.926 -1.987 8.944 -2.153l4.195 -.165v-1.436q.0 -3.091 -1.325 -4.251q-1.325 -1.214 -3.809 -1.214q-1.877 -.0 -3.643 .552q-1.767 .552 -3.258 1.325l-1.269 -3.036q1.601 -.884 3.809 -1.491q2.208 -.607 4.637 -.607zM209.368 81.367q-4.582 .165 -6.348 1.435q-1.767 1.27 -1.767 3.644q.0 2.042 1.27 3.036q1.27 .938 3.257 .938q3.092 .0 5.134 -1.711q2.098 -1.711 2.098 -5.3v-2.208l-3.644 .166z' stroke='none'/>\n    </g>\n  </g>\n<text x=\"10\" y=\"320\" font-family=\"Arial, Helvetica, sans-serif\" font-size=\"12\" fill=\"black\">Full CXSMILES:</text>\n<text x=\"10\" y=\"335\" font-family=\"Arial, Helvetica, sans-serif\" font-size=\"12\" fill=\"black\"> OC(=O)C |Sg:n:3:a:ht |a=15|</text>\n<text x=\"10\" y=\"350\" font-family=\"Arial, Helvetica, sans-serif\" font-size=\"12\" fill=\"black\">Lipid Shorthand Name: FA 16:0</text>\n<text x=\"10\" y=\"365\" font-family=\"Arial, Helvetica, sans-serif\" font-size=\"12\" fill=\"black\">Bulk Level: FA 16:0 | Discrete Level: FA 16:0</text>\n<text x=\"10\" y=\"380\" font-family=\"Arial, Helvetica, sans-serif\" font-size=\"12\" fill=\"black\">sn Information: sn1: a=15</text>\n<text x=\"10\" y=\"395\" font-family=\"Arial, Helvetica, sans-serif\" font-size=\"12\" fill=\"black\">Neutral Formula: C16H32O2 | Exact Mass: 256.240230</text>\n</svg>","lipidcxsmiles":"OC(=O)C |Sg:n:3:a:ht |a=15|","connected_lipidcxsmiles":""}}}},"422":{"description":"Invalid lipid input","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds before retrying."}}},"500":{"description":"Generation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Service unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds before retrying."}}},"504":{"description":"Generation timed out","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"security":[]}},"/api/v1/lipids/generations":{"post":{"tags":["Lipids"],"summary":"Generate one lipid from parameters","description":"60-second deadline. HTTP 422 for invalid inputs, 429 for quotas, 503 for overload,\n504 for timeout, and 500 for generation failure. Existing response fields are preserved.","operationId":"api_generate_v1_api_v1_lipids_generations_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LipidRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompactGenerationResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityError"}}}},"500":{"description":"Generation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityError"}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityError"}}}},"504":{"description":"Generation timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/api/v1/generate":{"post":{"tags":["Lipids"],"summary":"Compatibility alias for /api/v1/lipids/generations","description":"60-second deadline. HTTP 422 for invalid inputs, 429 for quotas, 503 for overload,\n504 for timeout, and 500 for generation failure. Existing response fields are preserved.","operationId":"api_generate_v1_api_v1_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LipidRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompactGenerationResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityError"}}}},"500":{"description":"Generation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityError"}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityError"}}}},"504":{"description":"Generation timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"security":[]}},"/api/v1/lipids/batches":{"post":{"tags":["Lipids"],"summary":"Generate up to 100 lipid names","description":"Preserve order, duplicates, and per-name failures. Optional SVG text; no PNG.\n\nInvalid items stay in errors/skipped_names; partial success returns 200.\n110-second total deadline, 60 seconds per lipid. HTTP 422 for invalid batches,\n429 for quotas, 503 for overload, 504 for timeout, 500 for generation failure.","operationId":"api_generate_batch_api_v1_lipids_batches_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityError"}}}},"500":{"description":"Generation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityError"}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityError"}}}},"504":{"description":"Generation timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/api/v1/batch":{"post":{"tags":["Lipids"],"summary":"Compatibility alias for /api/v1/lipids/batches","description":"Preserve order, duplicates, and per-name failures. Optional SVG text; no PNG.\n\nInvalid items stay in errors/skipped_names; partial success returns 200.\n110-second total deadline, 60 seconds per lipid. HTTP 422 for invalid batches,\n429 for quotas, 503 for overload, 504 for timeout, 500 for generation failure.","operationId":"api_generate_batch_api_v1_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityError"}}}},"500":{"description":"Generation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityError"}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityError"}}}},"504":{"description":"Generation timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"security":[]}}},"components":{"schemas":{"Adduct":{"properties":{"adduct":{"type":"string","title":"Adduct"},"formula":{"type":"string","title":"Formula"},"mz":{"type":"string","title":"Mz"},"charge":{"type":"string","title":"Charge"}},"type":"object","required":["adduct","formula","mz","charge"],"title":"Adduct"},"BatchError":{"properties":{"input_index":{"type":"integer","title":"Input Index"},"name":{"type":"string","title":"Name"},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["input_index","name","reason"],"title":"BatchError"},"BatchRequest":{"properties":{"names":{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1,"title":"Names","description":"Up to 100 lipid shorthand names; blank entries are ignored."},"include_svg":{"type":"boolean","title":"Include Svg","description":"Embed SVG text in successful results.","default":false}},"type":"object","required":["names"],"title":"BatchRequest","examples":[{"include_svg":false,"names":["FA 16:0","PC 16:0/18:1","invalid name"]}]},"BatchResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/BatchResult"},"type":"array","title":"Results"},"skipped_names":{"items":{"type":"string"},"type":"array","title":"Skipped Names"},"errors":{"items":{"$ref":"#/components/schemas/BatchError"},"type":"array","title":"Errors"}},"type":"object","required":["results","skipped_names","errors"],"title":"BatchResponse"},"BatchResult":{"properties":{"input_index":{"type":"integer","title":"Input Index"},"name":{"type":"string","title":"Name"},"shorthand_name":{"type":"string","title":"Shorthand Name"},"bulk_name":{"type":"string","title":"Bulk Name"},"discrete_name":{"type":"string","title":"Discrete Name"},"sn_position_name":{"type":"string","title":"Sn Position Name"},"formula":{"type":"string","title":"Formula"},"mass":{"type":"string","title":"Mass"},"cxsmi":{"type":"string","title":"Cxsmi"},"connected_cxsmi":{"type":"string","title":"Connected Cxsmi"},"remarks":{"type":"string","title":"Remarks"},"compartments":{"items":{"$ref":"#/components/schemas/Compartment"},"type":"array","title":"Compartments"},"svg":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Svg"}},"type":"object","required":["input_index","name","shorthand_name","bulk_name","discrete_name","sn_position_name","formula","mass","cxsmi","connected_cxsmi","remarks","compartments"],"title":"BatchResult"},"CompactGenerationResponse":{"properties":{"status":{"type":"string","title":"Status"},"cxsmi":{"type":"string","title":"Cxsmi"},"formula":{"type":"string","title":"Formula"},"mass":{"type":"string","title":"Mass"},"shorthand_name":{"type":"string","title":"Shorthand Name"},"bulk_name":{"type":"string","title":"Bulk Name"},"discrete_name":{"type":"string","title":"Discrete Name"},"sn_position_name":{"type":"string","title":"Sn Position Name"},"svg_data":{"type":"string","title":"Svg Data"},"png_base64":{"type":"string","title":"Png Base64"}},"type":"object","required":["status","cxsmi","formula","mass","shorthand_name","bulk_name","discrete_name","sn_position_name","svg_data","png_base64"],"title":"CompactGenerationResponse"},"Compartment":{"properties":{"name":{"type":"string","title":"Name"},"formula":{"type":"string","title":"Formula"},"mass":{"type":"string","title":"Mass"},"adducts":{"items":{"$ref":"#/components/schemas/Adduct"},"type":"array","title":"Adducts"}},"type":"object","required":["name","formula","mass","adducts"],"title":"Compartment"},"CompatibilityError":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"CompatibilityError"},"FieldError":{"properties":{"field":{"type":"string","title":"Field"},"message":{"type":"string","title":"Message"}},"type":"object","required":["field","message"],"title":"FieldError"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LipidCXSMILESResponse":{"properties":{"lipidcxsmiles":{"type":"string","title":"Lipidcxsmiles"}},"type":"object","required":["lipidcxsmiles"],"title":"LipidCXSMILESResponse"},"LipidImageResponse":{"properties":{"lipidcxsmiles":{"type":"string","title":"Lipidcxsmiles"},"name":{"type":"string","title":"Name"},"inputs":{"$ref":"#/components/schemas/LipidInputs"},"shorthand_name":{"type":"string","title":"Shorthand Name"},"bulk_name":{"type":"string","title":"Bulk Name"},"discrete_name":{"type":"string","title":"Discrete Name"},"sn_position_name":{"type":"string","title":"Sn Position Name"},"formula":{"type":"string","title":"Formula"},"mass":{"type":"string","title":"Mass"},"connected_lipidcxsmiles":{"type":"string","title":"Connected Lipidcxsmiles"},"remarks":{"type":"string","title":"Remarks"},"compartments":{"items":{"$ref":"#/components/schemas/Compartment"},"type":"array","title":"Compartments"},"svg":{"type":"string","title":"Svg","description":"Generated SVG text, embedded directly in JSON."}},"type":"object","required":["lipidcxsmiles","name","inputs","shorthand_name","bulk_name","discrete_name","sn_position_name","formula","mass","connected_lipidcxsmiles","remarks","compartments","svg"],"title":"LipidImageResponse"},"LipidInfoResponse":{"properties":{"lipidcxsmiles":{"type":"string","title":"Lipidcxsmiles"},"name":{"type":"string","title":"Name"},"inputs":{"$ref":"#/components/schemas/LipidInputs"},"shorthand_name":{"type":"string","title":"Shorthand Name"},"bulk_name":{"type":"string","title":"Bulk Name"},"discrete_name":{"type":"string","title":"Discrete Name"},"sn_position_name":{"type":"string","title":"Sn Position Name"},"formula":{"type":"string","title":"Formula"},"mass":{"type":"string","title":"Mass"},"connected_lipidcxsmiles":{"type":"string","title":"Connected Lipidcxsmiles"},"remarks":{"type":"string","title":"Remarks"},"compartments":{"items":{"$ref":"#/components/schemas/Compartment"},"type":"array","title":"Compartments"}},"type":"object","required":["lipidcxsmiles","name","inputs","shorthand_name","bulk_name","discrete_name","sn_position_name","formula","mass","connected_lipidcxsmiles","remarks","compartments"],"title":"LipidInfoResponse"},"LipidInputs":{"properties":{"category":{"type":"string","maxLength":64,"title":"Category"},"lipid_class":{"type":"string","maxLength":32,"title":"Lipid Class"},"chain1_len":{"type":"integer","maximum":180.0,"minimum":0.0,"title":"Chain1 Len"},"chain1_db":{"type":"integer","maximum":30.0,"minimum":0.0,"title":"Chain1 Db"},"chain1_link":{"type":"string","enum":["Acyl (A-)","Alkyl (O-)","Alkenyl (P-)"],"title":"Chain1 Link","default":"Acyl (A-)"},"chain2_len":{"type":"integer","maximum":180.0,"minimum":0.0,"title":"Chain2 Len"},"chain2_db":{"type":"integer","maximum":30.0,"minimum":0.0,"title":"Chain2 Db"},"chain2_link":{"type":"string","enum":["Acyl (A-)","Alkyl (O-)","Alkenyl (P-)"],"title":"Chain2 Link","default":"Acyl (A-)"},"chain3_len":{"type":"integer","maximum":180.0,"minimum":0.0,"title":"Chain3 Len","default":0},"chain3_db":{"type":"integer","maximum":30.0,"minimum":0.0,"title":"Chain3 Db","default":0},"chain3_link":{"type":"string","enum":["Acyl (A-)","Alkyl (O-)","Alkenyl (P-)"],"title":"Chain3 Link","default":"Acyl (A-)"},"hex_count":{"type":"integer","maximum":4.0,"minimum":1.0,"title":"Hex Count","default":1},"shorthand_level":{"type":"string","enum":["Bulk level (SUM)","Discrete level (_)","sn position level (/)"],"title":"Shorthand Level","default":"Discrete level (_)"},"lcb_oh_str":{"type":"string","enum":[";O (m)",";O2 (d)",";O3 (t)"],"title":"Lcb Oh Str","default":";O2 (d)"},"mg_position":{"type":"string","enum":["sn1","sn2","sn3"],"title":"Mg Position","default":"sn1"},"dg_free_position":{"type":"string","enum":["sn1","sn2","sn3"],"title":"Dg Free Position","default":"sn3"},"lyso_position":{"type":"string","enum":["sn1","sn2"],"title":"Lyso Position","default":"sn1"}},"type":"object","required":["category","lipid_class","chain1_len","chain1_db","chain2_len","chain2_db"],"title":"LipidInputs","description":"Scientific input fields and computational budgets, without transport dependencies."},"LipidRequest":{"properties":{"category":{"type":"string","maxLength":64,"title":"Category"},"lipid_class":{"type":"string","maxLength":32,"title":"Lipid Class"},"chain1_len":{"type":"integer","maximum":180.0,"minimum":0.0,"title":"Chain1 Len"},"chain1_db":{"type":"integer","maximum":30.0,"minimum":0.0,"title":"Chain1 Db"},"chain1_link":{"type":"string","enum":["Acyl (A-)","Alkyl (O-)","Alkenyl (P-)"],"title":"Chain1 Link","default":"Acyl (A-)"},"chain2_len":{"type":"integer","maximum":180.0,"minimum":0.0,"title":"Chain2 Len"},"chain2_db":{"type":"integer","maximum":30.0,"minimum":0.0,"title":"Chain2 Db"},"chain2_link":{"type":"string","enum":["Acyl (A-)","Alkyl (O-)","Alkenyl (P-)"],"title":"Chain2 Link","default":"Acyl (A-)"},"chain3_len":{"type":"integer","maximum":180.0,"minimum":0.0,"title":"Chain3 Len","default":0},"chain3_db":{"type":"integer","maximum":30.0,"minimum":0.0,"title":"Chain3 Db","default":0},"chain3_link":{"type":"string","enum":["Acyl (A-)","Alkyl (O-)","Alkenyl (P-)"],"title":"Chain3 Link","default":"Acyl (A-)"},"hex_count":{"type":"integer","maximum":4.0,"minimum":1.0,"title":"Hex Count","default":1},"shorthand_level":{"type":"string","enum":["Bulk level (SUM)","Discrete level (_)","sn position level (/)"],"title":"Shorthand Level","default":"Discrete level (_)"},"lcb_oh_str":{"type":"string","enum":[";O (m)",";O2 (d)",";O3 (t)"],"title":"Lcb Oh Str","default":";O2 (d)"},"mg_position":{"type":"string","enum":["sn1","sn2","sn3"],"title":"Mg Position","default":"sn1"},"dg_free_position":{"type":"string","enum":["sn1","sn2","sn3"],"title":"Dg Free Position","default":"sn3"},"lyso_position":{"type":"string","enum":["sn1","sn2"],"title":"Lyso Position","default":"sn1"}},"type":"object","required":["category","lipid_class","chain1_len","chain1_db","chain2_len","chain2_db"],"title":"LipidRequest","examples":[{"category":"Fatty Acyls [FA]","chain1_db":0,"chain1_len":16,"chain2_db":0,"chain2_len":0,"lipid_class":"FA"}]},"Problem":{"properties":{"type":{"type":"string","format":"uri","title":"Type"},"title":{"type":"string","title":"Title"},"status":{"type":"integer","title":"Status"},"detail":{"type":"string","title":"Detail"},"request_id":{"type":"string","title":"Request Id"},"errors":{"items":{"$ref":"#/components/schemas/FieldError"},"type":"array","title":"Errors"}},"type":"object","required":["type","title","status","detail","request_id"],"title":"Problem"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"tags":[{"name":"Lipids","description":"Anonymous, bounded lipid generation."}]}