{"openapi":"3.1.0","info":{"title":"ivive.app API","description":"Calculations for early drug discovery: IVIVE hepatic clearance with its observed-CL band,\nstructure-based predictions, species scaling.\n\n**No key needed** for single-compound endpoints, up to 120/minute per address.\nBatches need a login; a free account takes up to 25 compounds. For a key or more volume, write to\nhello@ivive.app.\n\nResults are research estimates, not for clinical, regulatory or dosing decisions. Structures and\ninputs are processed in memory and not stored. The same calculations are available to LLMs as an\nMCP server at `/mcp/`.\n\nReference drugs and published animal PK come from public datasets, ChEMBL among them, under\nCC BY-SA 3.0 and other open licences: https://ivive.app/sources.","version":"1.0.0"},"servers":[{"url":"https://api.ivive.app","description":"Production"},{"url":"/","description":"This server"}],"paths":{"/api/molecule/parse":{"post":{"tags":["molecule"],"summary":"Parse SMILES and compute descriptors","description":"Accepts a SMILES string, validates it, and returns physicochemical descriptors, drug-likeness filters, and a 2D SVG structure.","operationId":"parse_molecule_api_molecule_parse_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoleculeParseRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoleculeParseResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/register":{"post":{"tags":["auth"],"summary":"Register a new user","description":"Creates a new user account. Returns user info (no JWT — call /auth/login separately).","operationId":"register_api_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/login":{"post":{"tags":["auth"],"summary":"Login and get JWT token","description":"Returns a Bearer JWT token. Token lifetime: 24 hours. Include in subsequent requests as: Authorization: Bearer <token>","operationId":"login_api_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/me":{"get":{"tags":["auth"],"summary":"Get current authenticated user","description":"Protected endpoint — requires valid Bearer JWT in Authorization header. Returns current user info.","operationId":"me_api_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}}},"security":[{"OAuth2PasswordBearer":[]}]},"delete":{"tags":["auth"],"summary":"Delete your account","description":"Erases the signed-in user's account and everything saved under it. Needs the password again.","operationId":"delete_me_api_auth_me_delete","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAccountRequest"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/ivive/clhep":{"post":{"tags":["ivive"],"summary":"Calculate hepatic clearance (CLhep)","description":"Converts in-vitro CLint (µL/min/mg protein or µL/min/10⁶ cells) to in-vivo hepatic clearance (mL/min/kg) using the Well-stirred or Parallel-tube IVIVE model. Supports assay_type: 'microsomes' (MPPGL × 1e-3, default) or 'hepatocytes' (HPGL × 1e-3). CLint is divided by fu_mic; fu_b = fu_p / rb (default rb=1.0). Output is blood clearance (Obach 1999 eq.3/6). Also returns the scaling intermediates, and for human compounds in domain the range holding observed plasma CL for 50% of calibration drugs (the prediction itself is not corrected). With correction_id, also the lab-corrected plasma CL and a band from the lab's own compounds. With clint_censored, clint is read as the assay's limit of quantification and every clearance output is an upper bound (no band).","operationId":"calculate_clhep_api_ivive_clhep_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CLhepRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CLhepResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/ivive/batch":{"post":{"tags":["ivive"],"summary":"Calculate CLhep for many compounds at once","description":"Up to 500 compounds through the same path as /ivive/clhep, sharing one species, assay, model and lab correction. A compound whose numbers cannot be used is reported in its own row and does not fail the request, so a spreadsheet with a few bad cells still returns everything else.","operationId":"calculate_batch_api_ivive_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"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/ivive/target-clint":{"post":{"tags":["ivive"],"summary":"CLint needed to reach a target clearance","description":"Inverts the IVIVE model: given the clearance a compound must come in under, returns the in-vitro CLint that would produce it at these binding values. Hepatic clearance cannot exceed liver blood flow, so a target at or above Qh × Rb is rejected with that ceiling.","operationId":"target_clint_api_ivive_target_clint_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TargetClintRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TargetClintResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/ivive/sensitivity":{"post":{"tags":["ivive"],"summary":"How much each input moves the answer","description":"Varies one input at a time between a low and a high value, holding the others at the entered values, and returns the plasma CL at each end. Ranges default to the scatter these inputs carry in practice; pass a predicted value's own range to see what it costs. This is input uncertainty, separate from the observed-CL band, which is method error.","operationId":"sensitivity_api_ivive_sensitivity_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SensitivityRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SensitivityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/ivivc/datasets":{"post":{"tags":["ivivc"],"summary":"Upload IVIVC dataset","description":"Upload a CSV file with paired in vitro/in vivo data. Parses, validates, and stores the dataset.","operationId":"upload_dataset_api_ivivc_datasets_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_dataset_api_ivivc_datasets_post"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetUploadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/ivivc/datasets/{dataset_id}":{"patch":{"tags":["ivivc"],"summary":"Rename dataset","description":"Rename an existing dataset by ID.","operationId":"rename_dataset_api_ivivc_datasets__dataset_id__patch","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetRenameRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetRenameResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ivivc/models":{"get":{"tags":["ivivc"],"summary":"List IVIVC models","description":"List all models for the current user, ordered by created_at DESC.","operationId":"list_models_api_ivivc_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ModelListItem"},"type":"array","title":"Response List Models Api Ivivc Models Get"}}}}},"security":[{"OAuth2PasswordBearer":[]}]},"post":{"tags":["ivivc"],"summary":"Fit IVIVC model","description":"Fit a linear regression model to a dataset and store the result.","operationId":"fit_model_api_ivivc_models_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FitRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/ivivc/models/{model_name}":{"get":{"tags":["ivivc"],"summary":"Get IVIVC model details","description":"Get full details for a specific model by name.","operationId":"get_model_api_ivivc_models__model_name__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"model_name","in":"path","required":true,"schema":{"type":"string","title":"Model Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ivivc/models/{model_name}/predict":{"post":{"tags":["ivivc"],"summary":"Predict in vivo value","description":"Predict in vivo value from in vitro using a stored model.","operationId":"predict_api_ivivc_models__model_name__predict_post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"model_name","in":"path","required":true,"schema":{"type":"string","title":"Model Name"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ivivc/models/{model_name}/plot":{"get":{"tags":["ivivc"],"summary":"Get plot data","description":"Get training points and fitted curve for visualization.","operationId":"get_plot_api_ivivc_models__model_name__plot_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"model_name","in":"path","required":true,"schema":{"type":"string","title":"Model Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlotResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/api-keys":{"get":{"tags":["auth"],"summary":"List API keys","description":"List all active (non-revoked) API keys for the current user. Plaintext keys are never returned.","operationId":"list_api_keys_api_auth_api_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/APIKeyListItem"},"type":"array","title":"Response List Api Keys Api Auth Api Keys Get"}}}}},"security":[{"OAuth2PasswordBearer":[]}]},"post":{"tags":["auth"],"summary":"Generate API key","description":"Generate a new API key. The plaintext is shown only once — save it now.","operationId":"create_api_key_api_auth_api_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyCreateRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/auth/api-keys/{key_id}":{"delete":{"tags":["auth"],"summary":"Revoke API key","description":"Revoke an API key. The key is immediately invalidated.","operationId":"revoke_api_key_api_auth_api_keys__key_id__delete","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyRevokeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reference-compounds":{"get":{"tags":["reference-compounds"],"summary":"Get Reference Compounds","description":"Get all reference compounds with validated literature values.\n\nReturns 4 reference compounds (Midazolam, Warfarin, Verapamil, Diltiazem)\nwith experimentally measured clint, fu_mic, and fu_p values from Obach 1999.\n\nThis is a public endpoint - no authentication required.","operationId":"get_reference_compounds_api_reference_compounds_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ReferenceCompoundResponse"},"type":"array","title":"Response Get Reference Compounds Api Reference Compounds Get"}}}}}}},"/api/correction-equations":{"get":{"tags":["correction-equations"],"summary":"List correction equations","description":"List all correction equations for the authenticated user, ordered by name.","operationId":"list_correction_equations_api_correction_equations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectionEquationListResponse"}}}}},"security":[{"OAuth2PasswordBearer":[]}]},"post":{"tags":["correction-equations"],"summary":"Save a lab correction","description":"Fit as in /correction-equations/fit and save the result with its compounds.","operationId":"save_correction_equation_api_correction_equations_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectionSaveRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectionEquationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/correction-equations/{equation_id}":{"get":{"tags":["correction-equations"],"summary":"Get correction equation","description":"Get a single correction equation by ID.","operationId":"get_correction_equation_api_correction_equations__equation_id__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"equation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Equation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectionEquationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["correction-equations"],"summary":"Delete correction equation","description":"Delete a correction equation by ID. Returns 204 on success.","operationId":"delete_correction_equation_api_correction_equations__equation_id__delete","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"equation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Equation Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/correction-equations/fit":{"post":{"tags":["correction-equations"],"summary":"Preview a lab correction","description":"Runs IVIVE on each compound and fits log10(observed / predicted plasma CL) = offset + slope × log10(fu_p) for both IVIVE models. Does NOT save.","operationId":"preview_correction_fit_api_correction_equations_fit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectionFitRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectionFitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/pk/parameters":{"post":{"tags":["pk"],"summary":"Calculate PK parameters","description":"Calculate volume of distribution (Vd), elimination half-life (t½), oral bioavailability (F), and steady-state concentration (Css) from hepatic clearance (CLhep) and plasma unbound fraction (fu,p). Vd is Schmitt 2008 Vss from fu,p, logP and pKa. t½ and Css use plasma CL = CLhep × rb. F accounts for hepatic first-pass only.","operationId":"calculate_pk_api_pk_parameters_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PKRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PKResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/prediction/values":{"post":{"tags":["prediction"],"summary":"Estimate fu,p, fu,inc and logP from structure","description":"fu,p from a random forest on RDKit descriptors, with the range that held the measured value for half of held-out drugs; fu,inc from Kilford 2008 at the given incubation concentration. Also returns human plasma CL and Vss predicted from structure alone, as second opinions on the IVIVE and Schmitt results. Predicted values: confirm experimentally. Measured inputs always take precedence.","operationId":"predict_values_api_prediction_values_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/prediction/similarity":{"post":{"tags":["prediction"],"summary":"Nearest known drugs, with how IVIVE fared on each","description":"Most similar reference drugs (Tanimoto, Morgan r2) with observed and IVIVE-predicted plasma CL.","operationId":"similar_drugs_api_prediction_similarity_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimilarityRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimilarityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/prediction/structures":{"post":{"tags":["prediction"],"summary":"Predict IVIVE inputs and clearance for many structures","description":"Up to 500 structures through the same models as a single prediction: descriptors, fu,p with its range, fu,inc, and the structure-only CL and Vss. A structure that cannot be parsed is reported in its own row and does not fail the request. No measured input is involved, so these are predictions throughout.","operationId":"predict_structures_api_prediction_structures_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StructureBatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StructureBatchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/prediction/sdf":{"post":{"tags":["prediction"],"summary":"Read an SDF file into structures","description":"Parses an uploaded SDF into name, SMILES and the file's own data fields, so a caller can review what was read before predicting. Unreadable molecules are listed by position.","operationId":"parse_sdf_api_prediction_sdf_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_parse_sdf_api_prediction_sdf_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SdfParseResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/scaling/allometric":{"post":{"tags":["scaling"],"summary":"Predict human clearance from animal clearance","description":"Scales observed animal in-vivo plasma clearance to human by every method the supplied data supports, each carrying the accuracy it showed on 369 drugs with observed human CL. Everything is plasma CL in mL/min/kg.\n\nMeasured on that set, scaling from a single species beat simple allometry across two species, because extrapolating a two-point fit from 0.25 kg and 10 kg out to 70 kg amplifies the error in either point. Methods are returned most accurate first.","operationId":"allometric_scaling_api_scaling_allometric_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScalingRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScalingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/health":{"get":{"tags":["health"],"summary":"Health Check","operationId":"health_check_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Health Check Api Health Get"}}}}}}}},"components":{"schemas":{"APIKeyCreateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","title":"APIKeyCreateRequest"},"APIKeyCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"api_key":{"type":"string","title":"Api Key"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","api_key","created_at"],"title":"APIKeyCreateResponse","description":"Plaintext key shown only once at creation."},"APIKeyListItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","last_used_at","created_at"],"title":"APIKeyListItem"},"APIKeyRevokeResponse":{"properties":{"id":{"type":"string","title":"Id"},"revoked":{"type":"boolean","title":"Revoked"}},"type":"object","required":["id","revoked"],"title":"APIKeyRevokeResponse"},"AccuracySchema":{"properties":{"aafe":{"type":"number","title":"Aafe","description":"Geometric mean fold error; 1.0 would be perfect"},"within_2x":{"type":"number","title":"Within 2X","description":"Percent of drugs predicted within 2-fold"},"n":{"type":"integer","title":"N"},"basis":{"type":"string","title":"Basis"}},"type":"object","required":["aafe","within_2x","n","basis"],"title":"AccuracySchema","description":"What this method scored on the calibration drugs, so a user can weigh its answer."},"AlertFilter":{"properties":{"pass":{"type":"boolean","title":"Pass"},"alerts":{"items":{"type":"string"},"type":"array","title":"Alerts"}},"type":"object","required":["pass","alerts"],"title":"AlertFilter"},"Applicability":{"properties":{"max_similarity":{"type":"number","title":"Max Similarity","description":"Tanimoto (Morgan r2) to the nearest fu,p training structure."},"status":{"type":"string","enum":["in_domain","borderline","out_of_domain"],"title":"Status"}},"type":"object","required":["max_similarity","status"],"title":"Applicability"},"BatchCompound":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"clint":{"type":"number","title":"Clint"},"fu_mic":{"type":"number","title":"Fu Mic"},"fu_p":{"type":"number","title":"Fu P"},"rb":{"type":"number","title":"Rb","default":1.0},"clint_censored":{"type":"boolean","title":"Clint Censored","default":false}},"type":"object","required":["name","clint","fu_mic","fu_p"],"title":"BatchCompound"},"BatchRequest":{"properties":{"compounds":{"items":{"$ref":"#/components/schemas/BatchCompound"},"type":"array","maxItems":500,"minItems":1,"title":"Compounds"},"species":{"type":"string","enum":["human","rat","dog"],"title":"Species"},"model":{"type":"string","enum":["well-stirred","parallel-tube"],"title":"Model","default":"well-stirred"},"assay_type":{"type":"string","enum":["microsomes","hepatocytes"],"title":"Assay Type","default":"microsomes"},"correction_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Correction Id"}},"type":"object","required":["compounds","species"],"title":"BatchRequest"},"BatchResponse":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/BatchRow"},"type":"array","title":"Rows","description":"One per input compound, in the order given."},"n_calculated":{"type":"integer","title":"N Calculated"},"n_skipped":{"type":"integer","title":"N Skipped"}},"type":"object","required":["rows","n_calculated","n_skipped"],"title":"BatchResponse"},"BatchRow":{"properties":{"name":{"type":"string","title":"Name"},"result":{"anyOf":[{"$ref":"#/components/schemas/CLhepResponse"},{"type":"null"}],"description":"Null when the row could not be calculated."},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Why this row was skipped; null when it succeeded."}},"type":"object","required":["name"],"title":"BatchRow"},"Body_parse_sdf_api_prediction_sdf_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_parse_sdf_api_prediction_sdf_post"},"Body_upload_dataset_api_ivivc_datasets_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"name":{"type":"string","maxLength":255,"title":"Name"},"in_vitro_col":{"type":"string","title":"In Vitro Col"},"in_vivo_col":{"type":"string","title":"In Vivo Col"},"in_vitro_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"In Vitro Unit"},"in_vivo_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"In Vivo Unit"},"unit_override":{"type":"boolean","title":"Unit Override","default":false},"species":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Species"},"compound_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Compound Name"},"formulation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Formulation"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["file","name","in_vitro_col","in_vivo_col"],"title":"Body_upload_dataset_api_ivivc_datasets_post"},"CLhepRequest":{"properties":{"clint":{"type":"number","minimum":0.0,"title":"Clint","description":"Intrinsic clearance (µL/min/mg microsomal protein). Use ge=0: zero clearance is physiologically valid."},"fu_mic":{"type":"number","maximum":1.0,"exclusiveMinimum":0.0,"title":"Fu Mic","description":"Unbound fraction in microsomes (0–1). Corrects for non-specific microsomal binding."},"fu_p":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Fu P","description":"Unbound fraction in plasma (0–1). Plasma protein binding correction."},"rb":{"type":"number","maximum":50.0,"exclusiveMinimum":0.0,"title":"Rb","description":"Blood-to-plasma concentration ratio. fu_b = fu_p / Rb. Output is blood clearance.","default":1.0},"species":{"type":"string","enum":["human","rat","dog"],"title":"Species","description":"Species for physiological parameters (Qh, MPPGL, liver weight)."},"model":{"type":"string","enum":["well-stirred","parallel-tube"],"title":"Model","description":"IVIVE model. well-stirred (venous equilibrium) or parallel-tube (sinusoidal perfusion).","default":"well-stirred"},"assay_type":{"type":"string","enum":["microsomes","hepatocytes"],"title":"Assay Type","description":"Assay type for CLint scaling. microsomes: uses MPPGL (mg/g) × 1e-3; hepatocytes: uses HPGL (×10⁶ cells/g) × 1e-3.","default":"microsomes"},"correction_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Correction Id","description":"Saved lab correction (/api/correction-equations) to apply. Must match species and assay_type. Corrects predicted plasma CL and replaces the reference band with one from the lab's compounds."},"clint_censored":{"type":"boolean","title":"Clint Censored","description":"Set when the assay reported CLint below its limit of quantification and `clint` is that limit rather than a measurement. CLint then lies in [0, clint), so every clearance output is an upper bound: `upper_bound` is true, no observed-CL band is returned, and the clint_below_loq flag fires.","default":false}},"type":"object","required":["clint","fu_mic","fu_p","species"],"title":"CLhepRequest"},"CLhepResponse":{"properties":{"clhep":{"type":"number","title":"Clhep","description":"Predicted hepatic clearance (mL/min/kg)."},"eh":{"type":"number","title":"Eh","description":"Hepatic extraction ratio (0–1). EH = CLhep / Qh."},"classification":{"type":"string","title":"Classification","description":"Clearance class: 'high' (EH>0.7), 'medium' (0.3≤EH≤0.7), 'low' (EH<0.3)."},"model_used":{"type":"string","title":"Model Used","description":"Model actually applied (reflects default when omitted in request)."},"species":{"type":"string","title":"Species","description":"Species used for physiological parameters."},"clint_scaled":{"type":"number","title":"Clint Scaled","description":"CLint scaled to the whole liver (mL/min/kg), before fu_mic."},"clint_u":{"type":"number","title":"Clint U","description":"Unbound scaled CLint = clint_scaled / fu_mic (mL/min/kg)."},"fu_b":{"type":"number","title":"Fu B","description":"Unbound fraction in blood = fu_p / Rb."},"qh":{"type":"number","title":"Qh","description":"Hepatic blood flow (mL/min/kg)."},"clp":{"type":"number","title":"Clp","description":"Predicted plasma clearance = CLhep × Rb (mL/min/kg). Uncorrected."},"clp_corrected":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Clp Corrected","description":"Plasma CL after the lab correction (mL/min/kg). Null without correction_id."},"band":{"anyOf":[{"$ref":"#/components/schemas/ObservedBand"},{"type":"null"}],"description":"Range holding observed plasma CL for 50% of calibration compounds at this prediction. Null outside the calibration domain (see flags)."},"upper_bound":{"type":"boolean","title":"Upper Bound","description":"True when clint_censored was set: clhep, eh, clp and clp_corrected are upper bounds, not estimates.","default":false},"flags":{"items":{"$ref":"#/components/schemas/DomainFlag"},"type":"array","title":"Flags","description":"Applicability-domain warnings."}},"type":"object","required":["clhep","eh","classification","model_used","species","clint_scaled","clint_u","fu_b","qh","clp"],"title":"CLhepResponse"},"CorrectionEquationListResponse":{"properties":{"equations":{"items":{"$ref":"#/components/schemas/CorrectionEquationResponse"},"type":"array","title":"Equations"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["equations","count"],"title":"CorrectionEquationListResponse"},"CorrectionEquationResponse":{"properties":{"n_compounds":{"type":"integer","title":"N Compounds"},"fu_p_min":{"type":"number","title":"Fu P Min"},"fu_p_max":{"type":"number","title":"Fu P Max"},"fits":{"additionalProperties":{"$ref":"#/components/schemas/ModelFit"},"type":"object","title":"Fits","description":"Keyed by IVIVE model."},"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"assay_type":{"type":"string","title":"Assay Type"},"species":{"type":"string","title":"Species"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["n_compounds","fu_p_min","fu_p_max","fits","id","name","assay_type","species","source","created_at"],"title":"CorrectionEquationResponse"},"CorrectionFitRequest":{"properties":{"assay_type":{"type":"string","enum":["microsomes","hepatocytes"],"title":"Assay Type"},"species":{"type":"string","enum":["human","rat","dog"],"title":"Species","default":"human"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source","description":"Lab or dataset the compounds come from."},"compounds":{"items":{"$ref":"#/components/schemas/LabCompound"},"type":"array","maxItems":1000,"minItems":6,"title":"Compounds"}},"type":"object","required":["assay_type","compounds"],"title":"CorrectionFitRequest"},"CorrectionFitResponse":{"properties":{"n_compounds":{"type":"integer","title":"N Compounds"},"fu_p_min":{"type":"number","title":"Fu P Min"},"fu_p_max":{"type":"number","title":"Fu P Max"},"fits":{"additionalProperties":{"$ref":"#/components/schemas/ModelFit"},"type":"object","title":"Fits","description":"Keyed by IVIVE model."}},"type":"object","required":["n_compounds","fu_p_min","fu_p_max","fits"],"title":"CorrectionFitResponse"},"CorrectionSaveRequest":{"properties":{"assay_type":{"type":"string","enum":["microsomes","hepatocytes"],"title":"Assay Type"},"species":{"type":"string","enum":["human","rat","dog"],"title":"Species","default":"human"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source","description":"Lab or dataset the compounds come from."},"compounds":{"items":{"$ref":"#/components/schemas/LabCompound"},"type":"array","maxItems":1000,"minItems":6,"title":"Compounds"},"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"}},"type":"object","required":["assay_type","compounds","name"],"title":"CorrectionSaveRequest"},"CurvePoint":{"properties":{"x":{"type":"number","title":"X"},"y":{"type":"number","title":"Y"}},"type":"object","required":["x","y"],"title":"CurvePoint"},"DatasetMetadataSchema":{"properties":{"in_vitro_unit":{"type":"string","title":"In Vitro Unit"},"in_vivo_unit":{"type":"string","title":"In Vivo Unit"},"unit_source":{"type":"string","title":"Unit Source"},"species":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Species"},"compound_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Compound Name"},"formulation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Formulation"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["in_vitro_unit","in_vivo_unit","unit_source"],"title":"DatasetMetadataSchema"},"DatasetRenameRequest":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"}},"type":"object","required":["name"],"title":"DatasetRenameRequest"},"DatasetRenameResponse":{"properties":{"dataset_id":{"type":"string","title":"Dataset Id"},"name":{"type":"string","title":"Name"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["dataset_id","name","created_at"],"title":"DatasetRenameResponse"},"DatasetUploadResponse":{"properties":{"dataset_id":{"type":"string","title":"Dataset Id"},"name":{"type":"string","title":"Name"},"row_count":{"type":"integer","title":"Row Count"},"valid_count":{"type":"integer","title":"Valid Count"},"missing_value_count":{"type":"integer","title":"Missing Value Count"},"column_names":{"items":{"type":"string"},"type":"array","title":"Column Names"},"sample_rows":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Sample Rows"},"smiles_col_detected":{"type":"boolean","title":"Smiles Col Detected"},"compound_name_col_detected":{"type":"boolean","title":"Compound Name Col Detected"},"metadata":{"$ref":"#/components/schemas/DatasetMetadataSchema"}},"type":"object","required":["dataset_id","name","row_count","valid_count","missing_value_count","column_names","sample_rows","smiles_col_detected","compound_name_col_detected","metadata"],"title":"DatasetUploadResponse"},"DeleteAccountRequest":{"properties":{"password":{"type":"string","title":"Password"}},"type":"object","required":["password"],"title":"DeleteAccountRequest","description":"The password again: a stolen session alone must not be able to erase an account."},"DescriptorsInfo":{"properties":{"mw":{"type":"number","title":"Mw"},"logp":{"type":"number","title":"Logp"},"tpsa":{"type":"number","title":"Tpsa"},"hbd":{"type":"integer","title":"Hbd"},"hba":{"type":"integer","title":"Hba"},"rot_bonds":{"type":"integer","title":"Rot Bonds"},"heavy_atom_count":{"type":"integer","title":"Heavy Atom Count"},"mol_refractivity":{"type":"number","title":"Mol Refractivity"},"svg":{"type":"string","title":"Svg"}},"type":"object","required":["mw","logp","tpsa","hbd","hba","rot_bonds","heavy_atom_count","mol_refractivity","svg"],"title":"DescriptorsInfo"},"DomainFlag":{"properties":{"code":{"type":"string","title":"Code","description":"fu_p_below_0.01 | renal_possible | species_not_calibrated | outside_correction_range | clint_below_loq"},"message":{"type":"string","title":"Message"}},"type":"object","required":["code","message"],"title":"DomainFlag"},"FiltersInfo":{"properties":{"lipinski":{"$ref":"#/components/schemas/RuleFilter"},"veber":{"$ref":"#/components/schemas/RuleFilter"},"egan":{"$ref":"#/components/schemas/RuleFilter"},"ghose":{"$ref":"#/components/schemas/RuleFilter"},"pains":{"$ref":"#/components/schemas/AlertFilter"},"brenk":{"$ref":"#/components/schemas/AlertFilter"},"qed":{"type":"number","title":"Qed"}},"type":"object","required":["lipinski","veber","egan","ghose","pains","brenk","qed"],"title":"FiltersInfo"},"FitRequest":{"properties":{"dataset_id":{"type":"string","title":"Dataset Id"},"model_name":{"type":"string","maxLength":255,"title":"Model Name"},"species":{"type":"string","title":"Species"},"assay_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assay Type"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"units":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Units"},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method"},"remove_outliers":{"items":{"type":"integer"},"type":"array","title":"Remove Outliers"}},"type":"object","required":["dataset_id","model_name","species"],"title":"FitRequest"},"FitResponse":{"properties":{"model_id":{"type":"string","title":"Model Id"},"model_name":{"type":"string","title":"Model Name"},"dataset_id":{"type":"string","title":"Dataset Id"},"assay_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assay Type"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"slope":{"type":"number","title":"Slope"},"intercept":{"type":"number","title":"Intercept"},"r_squared":{"type":"number","title":"R Squared"},"rmse":{"type":"number","title":"Rmse"},"p_value":{"type":"number","title":"P Value"},"slope_ci_lower":{"type":"number","title":"Slope Ci Lower"},"slope_ci_upper":{"type":"number","title":"Slope Ci Upper"},"intercept_ci_lower":{"type":"number","title":"Intercept Ci Lower"},"intercept_ci_upper":{"type":"number","title":"Intercept Ci Upper"},"n_points":{"type":"integer","title":"N Points"},"outlier_indices":{"items":{"type":"integer"},"type":"array","title":"Outlier Indices"},"regulatory_warning":{"type":"boolean","title":"Regulatory Warning"},"species":{"type":"string","title":"Species"},"units":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Units"},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"outlier_candidates":{"items":{"$ref":"#/components/schemas/OutlierCandidate"},"type":"array","title":"Outlier Candidates"}},"type":"object","required":["model_id","model_name","dataset_id","slope","intercept","r_squared","rmse","p_value","slope_ci_lower","slope_ci_upper","intercept_ci_lower","intercept_ci_upper","n_points","outlier_indices","regulatory_warning","species","created_at","outlier_candidates"],"title":"FitResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InputRange":{"properties":{"low":{"type":"number","exclusiveMinimum":0.0,"title":"Low"},"high":{"type":"number","exclusiveMinimum":0.0,"title":"High"}},"type":"object","required":["low","high"],"title":"InputRange"},"KnownAnimalPK":{"properties":{"name":{"type":"string","title":"Name"},"cl_rat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cl Rat"},"cl_dog":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cl Dog"},"cl_monkey":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cl Monkey"},"fu_p_rat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fu P Rat"},"cl_human":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cl Human","description":"Published human plasma CL, mL/min/kg, where the compilation has one"},"source":{"type":"string","title":"Source"}},"type":"object","required":["name","source"],"title":"KnownAnimalPK","description":"Published animal clearance for a drug already in the literature.\n\nA lookup, not a prediction, and it only ever matches a known drug. `cl_human` is carried\nbecause that is the catch: if this matched, the human answer is already published."},"LabCompound":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"clint":{"type":"number","exclusiveMinimum":0.0,"title":"Clint","description":"In-vitro CLint (µL/min/mg protein or µL/min/10⁶ cells)."},"fu_mic":{"type":"number","maximum":1.0,"exclusiveMinimum":0.0,"title":"Fu Mic","description":"Unbound fraction in the incubation."},"fu_p":{"type":"number","maximum":1.0,"exclusiveMinimum":0.0,"title":"Fu P","description":"Unbound fraction in plasma."},"rb":{"type":"number","maximum":50.0,"exclusiveMinimum":0.0,"title":"Rb","description":"Blood-to-plasma ratio.","default":1.0},"cl_obs":{"type":"number","exclusiveMinimum":0.0,"title":"Cl Obs","description":"Observed total plasma clearance, IV (mL/min/kg)."}},"type":"object","required":["name","clint","fu_mic","fu_p","cl_obs"],"title":"LabCompound"},"LoginRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginRequest"},"MethodResult":{"properties":{"method":{"type":"string","title":"Method"},"cl_human":{"type":"number","title":"Cl Human","description":"Predicted human plasma CL, mL/min/kg"},"species_used":{"items":{"type":"string"},"type":"array","title":"Species Used"},"exponent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Exponent"},"accuracy":{"anyOf":[{"$ref":"#/components/schemas/AccuracySchema"},{"type":"null"}]},"source":{"type":"string","title":"Source"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"type":"object","required":["method","cl_human","species_used","source"],"title":"MethodResult"},"ModelDetail":{"properties":{"model_id":{"type":"string","title":"Model Id"},"model_name":{"type":"string","title":"Model Name"},"dataset_id":{"type":"string","title":"Dataset Id"},"assay_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assay Type"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"slope":{"type":"number","title":"Slope"},"intercept":{"type":"number","title":"Intercept"},"r_squared":{"type":"number","title":"R Squared"},"rmse":{"type":"number","title":"Rmse"},"p_value":{"type":"number","title":"P Value"},"slope_ci_lower":{"type":"number","title":"Slope Ci Lower"},"slope_ci_upper":{"type":"number","title":"Slope Ci Upper"},"intercept_ci_lower":{"type":"number","title":"Intercept Ci Lower"},"intercept_ci_upper":{"type":"number","title":"Intercept Ci Upper"},"n_points":{"type":"integer","title":"N Points"},"outlier_indices":{"items":{"type":"integer"},"type":"array","title":"Outlier Indices"},"regulatory_warning":{"type":"boolean","title":"Regulatory Warning"},"species":{"type":"string","title":"Species"},"units":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Units"},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"outlier_candidates":{"items":{"$ref":"#/components/schemas/OutlierCandidate"},"type":"array","title":"Outlier Candidates"}},"type":"object","required":["model_id","model_name","dataset_id","slope","intercept","r_squared","rmse","p_value","slope_ci_lower","slope_ci_upper","intercept_ci_lower","intercept_ci_upper","n_points","outlier_indices","regulatory_warning","species","created_at","outlier_candidates"],"title":"ModelDetail"},"ModelFit":{"properties":{"offset":{"type":"number","title":"Offset","description":"log10 correction at fu_p = 1."},"fu_p_slope":{"type":"number","title":"Fu P Slope","description":"log10 correction per log10 fu_p (0 when not fitted)."},"band_low_log10":{"type":"number","title":"Band Low Log10","description":"25th percentile of leave-one-out log10(obs/corrected)."},"band_high_log10":{"type":"number","title":"Band High Log10","description":"75th percentile of leave-one-out log10(obs/corrected)."},"aafe_uncorrected":{"type":"number","title":"Aafe Uncorrected","description":"Average absolute fold error before correction."},"aafe_corrected":{"type":"number","title":"Aafe Corrected","description":"Average absolute fold error after correction, leave-one-out."}},"type":"object","required":["offset","fu_p_slope","band_low_log10","band_high_log10","aafe_uncorrected","aafe_corrected"],"title":"ModelFit"},"ModelListItem":{"properties":{"model_id":{"type":"string","title":"Model Id"},"model_name":{"type":"string","title":"Model Name"},"dataset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dataset Id"},"assay_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assay Type"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"species":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Species"},"slope":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Slope"},"intercept":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Intercept"},"r_squared":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"R Squared"},"n_points":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"N Points"},"regulatory_warning":{"type":"boolean","title":"Regulatory Warning"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["model_id","model_name","regulatory_warning","created_at"],"title":"ModelListItem"},"MoleculeParseRequest":{"properties":{"smiles":{"type":"string","maxLength":2000,"title":"Smiles"}},"type":"object","required":["smiles"],"title":"MoleculeParseRequest"},"MoleculeParseResponse":{"properties":{"smiles":{"$ref":"#/components/schemas/SmilesInfo"},"descriptors":{"$ref":"#/components/schemas/DescriptorsInfo"},"filters":{"$ref":"#/components/schemas/FiltersInfo"}},"type":"object","required":["smiles","descriptors","filters"],"title":"MoleculeParseResponse"},"NamedStructure":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name","default":""},"smiles":{"type":"string","maxLength":2000,"title":"Smiles"}},"type":"object","required":["smiles"],"title":"NamedStructure"},"Neighbour":{"properties":{"name":{"type":"string","title":"Name"},"smiles":{"type":"string","title":"Smiles"},"similarity":{"type":"number","title":"Similarity"},"cl_obs":{"type":"number","title":"Cl Obs","description":"Observed plasma CL, mL/min/kg."},"cl_pred_ws":{"type":"number","title":"Cl Pred Ws","description":"IVIVE plasma CL from the drug's measured inputs, well-stirred."},"cl_pred_pt":{"type":"number","title":"Cl Pred Pt","description":"Same, parallel-tube."},"source":{"type":"string","title":"Source"}},"type":"object","required":["name","smiles","similarity","cl_obs","cl_pred_ws","cl_pred_pt","source"],"title":"Neighbour"},"ObservedBand":{"properties":{"low":{"type":"number","title":"Low","description":"Lower bound of observed plasma CL (mL/min/kg)."},"high":{"type":"number","title":"High","description":"Upper bound of observed plasma CL (mL/min/kg)."},"coverage":{"type":"number","title":"Coverage","description":"Fraction of calibration compounds whose observed CL fell inside (0.5)."},"basis":{"type":"string","enum":["reference","lab"],"title":"Basis","description":"reference: 301 human drugs, around the uncorrected prediction; lab: the correction's compounds, around the corrected prediction."},"n":{"type":"integer","title":"N","description":"Number of calibration compounds."}},"type":"object","required":["low","high","coverage","basis","n"],"title":"ObservedBand"},"OutlierCandidate":{"properties":{"index":{"type":"integer","title":"Index"},"cook_distance":{"type":"number","title":"Cook Distance"},"compound_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Compound Name"},"smiles":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Smiles"}},"type":"object","required":["index","cook_distance"],"title":"OutlierCandidate"},"PKRequest":{"properties":{"clhep":{"type":"number","minimum":0.0,"title":"Clhep","description":"Hepatic blood clearance CLb (mL/min/kg). From IVIVE calculation or manual input."},"fu_p":{"type":"number","maximum":1.0,"exclusiveMinimum":0.0,"title":"Fu P","description":"Unbound fraction in plasma (0–1). Plasma protein binding correction."},"logp":{"type":"number","maximum":10.0,"minimum":-5.0,"title":"Logp","description":"Octanol:water logP. Drives tissue lipid partitioning in Vss."},"pka_acid":{"anyOf":[{"type":"number","maximum":14.0,"minimum":0.0},{"type":"null"}],"title":"Pka Acid","description":"Most acidic pKa (proton donor). Omit if the compound has no acidic group."},"pka_base":{"anyOf":[{"type":"number","maximum":14.0,"minimum":0.0},{"type":"null"}],"title":"Pka Base","description":"Most basic pKa (conjugate acid of the base). Omit if no basic group."},"rb":{"type":"number","maximum":50.0,"exclusiveMinimum":0.0,"title":"Rb","description":"Blood-to-plasma ratio. CLhep is blood clearance; plasma CL = CLhep × Rb is used for t½ and Css.","default":1.0},"dose":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Dose","description":"Dose (mg/kg). Optional — required for Css calculation."},"tau":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Tau","description":"Dosing interval (hours). Optional — required for Css calculation."},"species":{"type":"string","enum":["human","rat","dog"],"title":"Species","description":"Species for physiological parameters (Qh used to derive EH).","default":"human"}},"type":"object","required":["clhep","fu_p","logp"],"title":"PKRequest"},"PKResponse":{"properties":{"vd":{"type":"number","title":"Vd","description":"Volume of distribution at steady state (L/kg, plasma-referenced). Schmitt 2008 tissue partitioning with Pearce 2017 calibration."},"half_life":{"type":"number","title":"Half Life","description":"Elimination half-life (hours). t½ = ln2×Vd×1000/(CLp×60), CLp = CLhep×Rb"},"f_oral":{"type":"number","title":"F Oral","description":"Oral bioavailability (fraction). F = 1−EH, hepatic first-pass only"},"css":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Css","description":"Steady-state plasma concentration (µg/L, plasma-referenced), Css = F×Dose/(CLp×τ). Only present when dose and dosing_interval provided"},"eh":{"type":"number","title":"Eh","description":"Hepatic extraction ratio. EH = CLb / Qh"},"species":{"type":"string","title":"Species","description":"Species used for calculation"}},"type":"object","required":["vd","half_life","f_oral","eh","species"],"title":"PKResponse"},"PlotPoint":{"properties":{"x":{"type":"number","title":"X"},"y":{"type":"number","title":"Y"},"index":{"type":"integer","title":"Index"},"is_outlier":{"type":"boolean","title":"Is Outlier"},"compound_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Compound Name"},"smiles":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Smiles"}},"type":"object","required":["x","y","index","is_outlier"],"title":"PlotPoint"},"PlotResponse":{"properties":{"model_name":{"type":"string","title":"Model Name"},"training_points":{"items":{"$ref":"#/components/schemas/PlotPoint"},"type":"array","title":"Training Points"},"fitted_curve":{"items":{"$ref":"#/components/schemas/CurvePoint"},"type":"array","title":"Fitted Curve"},"x_range":{"$ref":"#/components/schemas/XRange"},"regulatory_warning":{"type":"boolean","title":"Regulatory Warning"}},"type":"object","required":["model_name","training_points","fitted_curve","x_range","regulatory_warning"],"title":"PlotResponse"},"PredictRequest":{"properties":{"in_vitro_value":{"type":"number","title":"In Vitro Value"}},"type":"object","required":["in_vitro_value"],"title":"PredictRequest"},"PredictResponse":{"properties":{"model_name":{"type":"string","title":"Model Name"},"in_vitro_value":{"type":"number","title":"In Vitro Value"},"predicted_in_vivo":{"type":"number","title":"Predicted In Vivo"},"prediction_interval_lower":{"type":"number","title":"Prediction Interval Lower"},"prediction_interval_upper":{"type":"number","title":"Prediction Interval Upper"},"regulatory_warning":{"type":"boolean","title":"Regulatory Warning"}},"type":"object","required":["model_name","in_vitro_value","predicted_in_vivo","prediction_interval_lower","prediction_interval_upper","regulatory_warning"],"title":"PredictResponse"},"PredictionRequest":{"properties":{"smiles":{"type":"string","maxLength":2000,"title":"Smiles"},"assay_type":{"type":"string","enum":["microsomes","hepatocytes"],"title":"Assay Type","default":"microsomes"},"concentration":{"type":"number","maximum":10.0,"exclusiveMinimum":0.0,"title":"Concentration","description":"Incubation concentration: mg microsomal protein/mL, or 10⁶ hepatocytes/mL.","default":1.0}},"type":"object","required":["smiles"],"title":"PredictionRequest"},"PredictionResponse":{"properties":{"fu_p":{"$ref":"#/components/schemas/RangedValue","description":"Random forest on RDKit descriptors, ~3,600 structures."},"fu_inc":{"type":"number","title":"Fu Inc","description":"Kilford 2008 / Hallifax & Houston 2006 from RDKit logP."},"logp":{"type":"number","title":"Logp","description":"RDKit Crippen logP."},"applicability":{"$ref":"#/components/schemas/Applicability"},"ionizable":{"items":{"type":"string","enum":["acid","base"]},"type":"array","title":"Ionizable","description":"Groups mostly charged at pH 7.4, from substructure patterns (carboxylic acid, tetrazole, aliphatic amine, amidine). The pKa is not predicted: this only says that treating the compound as neutral in Vss is probably wrong."},"known_animal_pk":{"anyOf":[{"$ref":"#/components/schemas/KnownAnimalPK"},{"type":"null"}],"description":"Published rat/dog/monkey in-vivo plasma CL, if this structure is a drug in the PKSmart animal compilation. A literature lookup, not a prediction: a novel compound never matches, and anything that does has a published human CL too."},"structure_cl":{"$ref":"#/components/schemas/StructureCL","description":"Human plasma CL from an extra-trees model on the same descriptors, trained on ~1,200 drugs with observed IV clearance. Independent of every IVIVE input, so it is a check on the mechanistic result rather than a part of it. Human only."},"structure_vdss":{"$ref":"#/components/schemas/StructureVdss","description":"Human Vss from gradient boosting on the same descriptors, trained on ~1,200 drugs with observed IV Vss. A second opinion on the Schmitt 2008 path, which it beats on unseen structures while covering human only."}},"type":"object","required":["fu_p","fu_inc","logp","applicability","structure_cl","structure_vdss"],"title":"PredictionResponse"},"RangedValue":{"properties":{"value":{"type":"number","title":"Value"},"low":{"type":"number","title":"Low","description":"Lower end of the range holding the measured value for half of held-out drugs."},"high":{"type":"number","title":"High"},"coverage":{"type":"number","title":"Coverage"}},"type":"object","required":["value","low","high","coverage"],"title":"RangedValue"},"ReferenceCompoundResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"smiles":{"type":"string","title":"Smiles"},"clint":{"type":"number","title":"Clint"},"fu_mic":{"type":"number","title":"Fu Mic"},"fu_p":{"type":"number","title":"Fu P"},"rb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rb"},"species":{"type":"string","title":"Species"},"source":{"type":"string","title":"Source"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"cl_rat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cl Rat"},"cl_dog":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cl Dog"},"cl_monkey":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cl Monkey"},"fu_p_rat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fu P Rat"},"cl_human_obs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cl Human Obs"},"animal_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Animal Source"}},"type":"object","required":["id","name","smiles","clint","fu_mic","fu_p","rb","species","source","description"],"title":"ReferenceCompoundResponse","description":"Response schema for reference compound data."},"RegisterRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"RegisterRequest"},"RuleFilter":{"properties":{"pass":{"type":"boolean","title":"Pass"},"violations":{"items":{"type":"string"},"type":"array","title":"Violations"}},"type":"object","required":["pass","violations"],"title":"RuleFilter"},"ScalingRequest":{"properties":{"animals":{"items":{"$ref":"#/components/schemas/SpeciesPoint"},"type":"array","minItems":1,"title":"Animals"},"fu_p_human":{"anyOf":[{"type":"number","maximum":1.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Fu P Human","description":"Human unbound fraction, needed by the fu-corrected methods"}},"type":"object","required":["animals"],"title":"ScalingRequest"},"ScalingResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/MethodResult"},"type":"array","title":"Results","description":"Methods that could be applied, most accurate first"},"unavailable":{"additionalProperties":{"type":"string"},"type":"object","title":"Unavailable","description":"Methods that need data not supplied, and what each is missing"}},"type":"object","required":["results"],"title":"ScalingResponse"},"SdfMolecule":{"properties":{"index":{"type":"integer","title":"Index"},"name":{"type":"string","title":"Name"},"smiles":{"type":"string","title":"Smiles"},"properties":{"additionalProperties":{"type":"string"},"type":"object","title":"Properties","description":"The file's own data fields, returned unread: a measured value in the file beats a prediction."}},"type":"object","required":["index","name","smiles"],"title":"SdfMolecule"},"SdfParseResponse":{"properties":{"molecules":{"items":{"$ref":"#/components/schemas/SdfMolecule"},"type":"array","title":"Molecules"},"errors":{"items":{"type":"string"},"type":"array","title":"Errors","description":"One per unreadable position in the file."},"total":{"type":"integer","title":"Total","description":"Molecules read, excluding the unreadable."}},"type":"object","required":["molecules","total"],"title":"SdfParseResponse"},"SensitivityRequest":{"properties":{"clint":{"type":"number","minimum":0.0,"title":"Clint","description":"Intrinsic clearance (µL/min/mg microsomal protein). Use ge=0: zero clearance is physiologically valid."},"fu_mic":{"type":"number","maximum":1.0,"exclusiveMinimum":0.0,"title":"Fu Mic","description":"Unbound fraction in microsomes (0–1). Corrects for non-specific microsomal binding."},"fu_p":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Fu P","description":"Unbound fraction in plasma (0–1). Plasma protein binding correction."},"rb":{"type":"number","maximum":50.0,"exclusiveMinimum":0.0,"title":"Rb","description":"Blood-to-plasma concentration ratio. fu_b = fu_p / Rb. Output is blood clearance.","default":1.0},"species":{"type":"string","enum":["human","rat","dog"],"title":"Species","description":"Species for physiological parameters (Qh, MPPGL, liver weight)."},"model":{"type":"string","enum":["well-stirred","parallel-tube"],"title":"Model","description":"IVIVE model. well-stirred (venous equilibrium) or parallel-tube (sinusoidal perfusion).","default":"well-stirred"},"assay_type":{"type":"string","enum":["microsomes","hepatocytes"],"title":"Assay Type","description":"Assay type for CLint scaling. microsomes: uses MPPGL (mg/g) × 1e-3; hepatocytes: uses HPGL (×10⁶ cells/g) × 1e-3.","default":"microsomes"},"correction_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Correction Id","description":"Saved lab correction (/api/correction-equations) to apply. Must match species and assay_type. Corrects predicted plasma CL and replaces the reference band with one from the lab's compounds."},"clint_censored":{"type":"boolean","title":"Clint Censored","description":"Set when the assay reported CLint below its limit of quantification and `clint` is that limit rather than a measurement. CLint then lies in [0, clint), so every clearance output is an upper bound: `upper_bound` is true, no observed-CL band is returned, and the clint_below_loq flag fires.","default":false},"clint_range":{"anyOf":[{"$ref":"#/components/schemas/InputRange"},{"type":"null"}]},"fu_mic_range":{"anyOf":[{"$ref":"#/components/schemas/InputRange"},{"type":"null"}]},"fu_p_range":{"anyOf":[{"$ref":"#/components/schemas/InputRange"},{"type":"null"}],"description":"A predicted fu,p carries its 50% range; pass it to see what it costs."}},"type":"object","required":["clint","fu_mic","fu_p","species"],"title":"SensitivityRequest","description":"The same inputs as a calculation, plus the range to vary each over."},"SensitivityResponse":{"properties":{"inputs":{"items":{"$ref":"#/components/schemas/VariedInput"},"type":"array","title":"Inputs","description":"Widest effect first."},"clp":{"type":"number","title":"Clp","description":"Plasma CL at the entered values, for reference."}},"type":"object","required":["inputs","clp"],"title":"SensitivityResponse"},"SimilarityRequest":{"properties":{"smiles":{"type":"string","maxLength":2000,"title":"Smiles"},"n":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"N","default":3}},"type":"object","required":["smiles"],"title":"SimilarityRequest"},"SimilarityResponse":{"properties":{"neighbours":{"items":{"$ref":"#/components/schemas/Neighbour"},"type":"array","title":"Neighbours"}},"type":"object","required":["neighbours"],"title":"SimilarityResponse","description":"Values passed on from public datasets; sources and licences: https://ivive.app/sources."},"SmilesInfo":{"properties":{"input":{"type":"string","title":"Input"},"canonical":{"type":"string","title":"Canonical"}},"type":"object","required":["input","canonical"],"title":"SmilesInfo"},"SpeciesPoint":{"properties":{"species":{"type":"string","title":"Species","description":"One of ['dog', 'monkey', 'rat']"},"cl":{"type":"number","maximum":1000.0,"exclusiveMinimum":0.0,"title":"Cl","description":"Observed plasma CL, mL/min/kg"},"fu_p":{"anyOf":[{"type":"number","maximum":1.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Fu P","description":"Unbound fraction in plasma for this species"}},"type":"object","required":["species","cl"],"title":"SpeciesPoint","description":"One animal's measured in-vivo plasma clearance, and optionally its binding."},"StructureBatchRequest":{"properties":{"molecules":{"items":{"$ref":"#/components/schemas/NamedStructure"},"type":"array","maxItems":500,"minItems":1,"title":"Molecules"},"assay_type":{"type":"string","enum":["microsomes","hepatocytes"],"title":"Assay Type","default":"microsomes"},"concentration":{"type":"number","maximum":10.0,"exclusiveMinimum":0.0,"title":"Concentration","default":1.0}},"type":"object","required":["molecules"],"title":"StructureBatchRequest","description":"Structures to predict for. Validation is per row, so one bad SMILES keeps the rest."},"StructureBatchResponse":{"properties":{"molecules":{"items":{"$ref":"#/components/schemas/StructurePrediction"},"type":"array","title":"Molecules"},"n_predicted":{"type":"integer","title":"N Predicted"},"n_skipped":{"type":"integer","title":"N Skipped"}},"type":"object","required":["molecules","n_predicted","n_skipped"],"title":"StructureBatchResponse"},"StructureCL":{"properties":{"value":{"type":"number","title":"Value","description":"Plasma clearance, mL/min/kg."},"low":{"type":"number","title":"Low"},"high":{"type":"number","title":"High"},"coverage":{"type":"number","title":"Coverage"},"applicability":{"$ref":"#/components/schemas/Applicability"}},"type":"object","required":["value","low","high","coverage","applicability"],"title":"StructureCL","description":"Human plasma CL predicted from structure alone: a second opinion, not an IVIVE input."},"StructurePrediction":{"properties":{"name":{"type":"string","title":"Name"},"smiles":{"type":"string","title":"Smiles"},"mw":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mw"},"logp":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Logp"},"tpsa":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tpsa"},"fu_p":{"anyOf":[{"$ref":"#/components/schemas/RangedValue"},{"type":"null"}]},"fu_inc":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fu Inc"},"cl":{"anyOf":[{"$ref":"#/components/schemas/StructureCL"},{"type":"null"}]},"vdss":{"anyOf":[{"$ref":"#/components/schemas/StructureVdss"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Why this structure was skipped."}},"type":"object","required":["name","smiles"],"title":"StructurePrediction"},"StructureVdss":{"properties":{"value":{"type":"number","title":"Value","description":"Volume of distribution at steady state, L/kg."},"low":{"type":"number","title":"Low"},"high":{"type":"number","title":"High"},"coverage":{"type":"number","title":"Coverage"},"applicability":{"$ref":"#/components/schemas/Applicability"}},"type":"object","required":["value","low","high","coverage","applicability"],"title":"StructureVdss","description":"Human Vss predicted from structure alone: a second opinion on the Schmitt 2008 result."},"TargetClintRequest":{"properties":{"target_clp":{"type":"number","exclusiveMinimum":0.0,"title":"Target Clp","description":"Plasma clearance to aim for (mL/min/kg). Must be below hepatic blood flow × Rb."},"fu_mic":{"type":"number","maximum":1.0,"exclusiveMinimum":0.0,"title":"Fu Mic"},"fu_p":{"type":"number","maximum":1.0,"exclusiveMinimum":0.0,"title":"Fu P"},"rb":{"type":"number","maximum":50.0,"exclusiveMinimum":0.0,"title":"Rb","default":1.0},"species":{"type":"string","enum":["human","rat","dog"],"title":"Species"},"model":{"type":"string","enum":["well-stirred","parallel-tube"],"title":"Model","default":"well-stirred"},"assay_type":{"type":"string","enum":["microsomes","hepatocytes"],"title":"Assay Type","default":"microsomes"}},"type":"object","required":["target_clp","fu_mic","fu_p","species"],"title":"TargetClintRequest"},"TargetClintResponse":{"properties":{"clint":{"type":"number","title":"Clint","description":"In-vitro CLint that reaches the target, in the assay's units."},"unit":{"type":"string","title":"Unit","description":"µL/min/mg protein, or µL/min/10⁶ cells."},"target_clp":{"type":"number","title":"Target Clp"},"qh":{"type":"number","title":"Qh","description":"Hepatic blood flow (mL/min/kg): the ceiling on hepatic CL."},"max_clp":{"type":"number","title":"Max Clp","description":"Highest plasma CL hepatic metabolism can reach here (Qh × Rb)."}},"type":"object","required":["clint","unit","target_clp","qh","max_clp"],"title":"TargetClintResponse"},"TokenResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type"}},"type":"object","required":["access_token","token_type"],"title":"TokenResponse","description":"Login response — standard OAuth2 shape (D-07)."},"UserResponse":{"properties":{"id":{"type":"string","title":"Id"},"email":{"type":"string","title":"Email"},"plan":{"type":"string","title":"Plan"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","email","plan","created_at"],"title":"UserResponse","description":"Registration and /me response. Never includes password fields."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VariedInput":{"properties":{"input":{"type":"string","enum":["clint","fu_mic","fu_p"],"title":"Input"},"low":{"type":"number","title":"Low"},"high":{"type":"number","title":"High"},"clp_low":{"type":"number","title":"Clp Low","description":"Plasma CL with this input at its low end (mL/min/kg)."},"clp_high":{"type":"number","title":"Clp High"},"fold":{"type":"number","title":"Fold","description":"clp_high / clp_low: how far this input alone moves the answer."}},"type":"object","required":["input","low","high","clp_low","clp_high","fold"],"title":"VariedInput"},"XRange":{"properties":{"min":{"type":"number","title":"Min"},"max":{"type":"number","title":"Max"}},"type":"object","required":["min","max"],"title":"XRange"}},"securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"/api/auth/login"}}}}}}