{
"error": {
"code": "INSUFFICIENT_SCOPE",
"message": "The key may not do this."
}
}
{
"error": {
"code": "NOT_FOUND",
"message": "Not found, or not visible to you."
}
}
{
"error": {
"code": "INVALID_PARAMETERS",
"message": "The parameters or input files don't fit the engine."
}
}
{
"error": {
"code": "INTERNAL_ERROR",
"message": "Something went wrong on our side."
}
}
{
"error": {
"code": "ENGINE_SUBMIT_FAILED",
"message": "The engine service rejected or failed the request."
}
}
Engine runs
Start a RevOptimization run
Generates molecules while steering the generator, stage by stage, towards goals you set: a property range (weight, solubility, polarity, rings…), similarity to reference molecules, a wanted or unwanted substructure, or strong docking into a protein. Each stage optimises one goal and starts from the generator the previous stage left. Can start from a model you trained with RevTrain.
Starts a run and returns it with status queued; poll GET /v1/runs/ until it finishes. Runs spend credits.
Set when the run was created but a follow-up step, such as adding it to a project, failed.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Revilico","colors":{"primary":"#1371e4","light":"#1371e4","dark":"#1371e4"},"logo":{"light":"https://mintcdn.com/revilicoinc/cWUeZVkzU4GxUaNk/logo/revilico-dark.avif?fit=max\u0026auto=format\u0026n=cWUeZVkzU4GxUaNk\u0026q=85\u0026s=d4e1bd31a297855ce0ceab937fc59f32","dark":"https://mintcdn.com/revilicoinc/cWUeZVkzU4GxUaNk/logo/revilico-light.webp?fit=max\u0026auto=format\u0026n=cWUeZVkzU4GxUaNk\u0026q=85\u0026s=293f90a9713455aac48b52ee7b196fb4"},"favicon":"https://mintcdn.com/revilicoinc/cWUeZVkzU4GxUaNk/favicon_dark.png?fit=max\u0026auto=format\u0026n=cWUeZVkzU4GxUaNk\u0026q=85\u0026s=475f780a1363335a4f8228bbdef2c234","navbar":{"links":[{"href":"https://calendly.com/christopher-korban/support-meeting","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.revilico.bio"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/revilicoinc"}},"integrations":{"posthog":{"apiKey":"phc_8LIOEWt3bsIwQSI7zbVnUn2oys0WPaZGuITi5fJGJho","apiHost":"https://us.i.posthog.com","sessionRecording":true}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"revilicoinc","hasAudioNarration":false,"actualSubdomain":"revilicoinc","customDomains":["docs.revilico.bio"],"gitSource":{"type":"github","owner":"nexabio-venture-solutions","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae34d29b905b386f71687bf","collectionId":"97d163a0-d61f-4f44-812b-5821fe763c9c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae34d29b905b386f71687bf"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae34dc19ee4546ca4eaf9e6","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Developers","count":119},{"language":"default","tag":"Endpoints","count":106},{"language":"default","tag":"Engines","count":61},{"language":"default","tag":"Documentation","count":57},{"language":"default","tag":"Engine runs","count":45},{"language":"default","tag":"Solutions","count":28},{"language":"default","tag":"RevQuant","count":22},{"language":"default","tag":"RevBind","count":14},{"language":"default","tag":"Notes","count":14},{"language":"default","tag":"Benchmarks","count":13}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"inquiries@revilico.bio","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"benchmarks.css","content":"@media (min-width:1280px){.fep-wide{width:calc(100vw - 440px);max-width:1380px}}.fep-wide table{display:table;width:100%}"}],"page":{"pagePath":"api-reference/engine-runs/start-a-revoptimization-run","slug":"/api-reference/engine-runs/start-a-revoptimization-run","pageMetadata":{"title":"Start a RevOptimization run","description":"Generates molecules while steering the generator, stage by stage, towards goals you set: a property range (weight, solubility, polarity, rings…), similarity to reference molecules, a wanted or unwanted substructure, or strong docking into a protein. Each stage optimises one goal and starts from the generator the previous stage left. Can start from a model you trained with RevTrain.\n\nStarts a run and returns it with status `queued`; poll GET /v1/runs/{runId} until it finishes. Runs spend credits.\n\n**Limits:** `maxStages`: 5, `maxStepsPerStage`: 1000, `maxMoleculesSampled`: 250000, `maxBatchSize`: 1024, `maxInputMolecules`: 1000.\n\nHow the engine works and how to read its results: [RevOptimization documentation](/docs/revoptimization).\n\n**Scope:** `runs:write`.","deprecated":null,"version":null,"sidebarTitle":"RevOptimization","openapi":"/api-reference/openapi.json post /v1/engines/revoptimization/runs","href":"/api-reference/engine-runs/start-a-revoptimization-run","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Generates molecules while steering the generator, stage by stage, towards goals you set: a property range (weight, solubility, polarity, rings…), similarity to reference molecules, a wanted or unwanted substructure, or strong docking into a protein. Each stage optimises one goal and starts from the generator the previous stage left. Can start from a model you trained with RevTrain.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Starts a run and returns it with status \", _jsx(_components.code, {\n children: \"queued\"\n }), \"; poll GET /v1/runs/\", \" until it finishes. Runs spend credits.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Limits:\"\n }), \" \", _jsx(_components.code, {\n children: \"maxStages\"\n }), \": 5, \", _jsx(_components.code, {\n children: \"maxStepsPerStage\"\n }), \": 1000, \", _jsx(_components.code, {\n children: \"maxMoleculesSampled\"\n }), \": 250000, \", _jsx(_components.code, {\n children: \"maxBatchSize\"\n }), \": 1024, \", _jsx(_components.code, {\n children: \"maxInputMolecules\"\n }), \": 1000.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"How the engine works and how to read its results: \", _jsx(_components.a, {\n href: \"/docs/revoptimization\",\n children: \"RevOptimization documentation\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Scope:\"\n }), \" \", _jsx(_components.code, {\n children: \"runs:write\"\n }), \".\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Start a RevOptimization run","description":"Generates molecules while steering the generator, stage by stage, towards goals you set: a property range (weight, solubility, polarity, rings…), similarity to reference molecules, a wanted or unwanted substructure, or strong docking into a protein. Each stage optimises one goal and starts from the generator the previous stage left. Can start from a model you trained with RevTrain.\n\nStarts a run and returns it with status `queued`; poll GET /v1/runs/{runId} until it finishes. Runs spend credits.\n\n**Limits:** `maxStages`: 5, `maxStepsPerStage`: 1000, `maxMoleculesSampled`: 250000, `maxBatchSize`: 1024, `maxInputMolecules`: 1000.\n\nHow the engine works and how to read its results: [RevOptimization documentation](/docs/revoptimization).\n\n**Scope:** `runs:write`.","deprecated":null,"version":null,"sidebarTitle":"RevOptimization","openapi":"/api-reference/openapi.json post /v1/engines/revoptimization/runs","href":"/api-reference/engine-runs/start-a-revoptimization-run","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"engineRuns.revoptimization","summary":"Start a RevOptimization run","description":"Generates molecules while steering the generator, stage by stage, towards goals you set: a property range (weight, solubility, polarity, rings…), similarity to reference molecules, a wanted or unwanted substructure, or strong docking into a protein. Each stage optimises one goal and starts from the generator the previous stage left. Can start from a model you trained with RevTrain.\n\nStarts a run and returns it with status `queued`; poll GET /v1/runs/{runId} until it finishes. Runs spend credits.\n\n**Limits:** `maxStages`: 5, `maxStepsPerStage`: 1000, `maxMoleculesSampled`: 250000, `maxBatchSize`: 1024, `maxInputMolecules`: 1000.\n\nHow the engine works and how to read its results: [RevOptimization documentation](/docs/revoptimization).\n\n**Scope:** `runs:write`.","tags":["Engine runs"],"x-mint":{"metadata":{"sidebarTitle":"RevOptimization"}},"requestBody":"09c1af2f-afd2-4ef4-b910-c40f0666cbf1","responses":{"202":"34f29b3e-dbb7-443c-99e9-3e28339cadfe","400":"ce656b89-bdc3-458d-a3ef-6427aad73fe0","401":"ef423443-0ad1-46a3-b781-3d0912371280","402":"8fd8e738-f34c-4576-8beb-31881a9f37fb","403":"4e737430-7f50-42e9-a9c1-f1e058f99222","404":"640c2627-0678-46b9-9445-1f3ada161dbf","422":"55c19ec4-4388-4e4e-8385-fba6dc95acc5","500":"1bd2294a-7bf8-4081-8a24-4da5410cc441","502":"bd45f156-91b8-4abd-9f39-1b0e8b963ddc"},"method":"post","type":"path","servers":["76ce0e69-bccf-48e7-93f8-9d02ccdfb096"],"security":["d717e6d1-fba0-4f7f-96d5-129436291fe4"],"path":"/v1/engines/revoptimization/runs","baseUrlOptions":["https://public-api.revilico.bio"],"title":"Start a RevOptimization run","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"parameters":{"type":"object","properties":{"stages":{"minItems":1,"maxItems":5,"type":"array","items":{"type":"object","properties":{"objective":{"oneOf":[{"type":"object","description":"What this stage optimises: one property or score per stage. To optimise several things, give each its own stage (they run in order, each starting from the generator the previous one left).","required":["type"],"properties":{"type":{"type":"string","enum":["molecular_weight","slogp","tpsa","hbond_donors","hbond_acceptors","rotatable_bonds","stereocenters","heavy_atoms","hetero_atoms","rings","aromatic_rings","aliphatic_rings","largest_ring_size","graph_length","fraction_sp3","sp_atoms","sp2_atoms","sp3_atoms","molecular_volume","linker_molecular_weight","linker_graph_length","linker_effective_length","linker_length_ratio","linker_hbond_acceptors","linker_hbond_donors","linker_rotatable_bonds","linker_sp_atoms","linker_sp2_atoms","linker_sp3_atoms","linker_rings","linker_aromatic_rings","linker_aliphatic_rings"],"description":"A computed property of the molecule. A molecule scores 1 when the value lies between low and high and less the further outside it is, except rotatable_bonds, stereocenters and linker_rotatable_bonds, where it scores 1 at or below low and 0 at or above high. Defaults for low and high: molecular_weight 150 to 600, slogp -1 to 7, tpsa 0 to 200, hbond_donors 0 to 7, hbond_acceptors 0 to 12, rotatable_bonds 0 to 15, stereocenters 0 to 6, heavy_atoms 15 to 80, hetero_atoms 1 to 20, rings 0 to 8, aromatic_rings 0 to 5, aliphatic_rings 0 to 5, largest_ring_size 3 to 12, graph_length 3 to 60, fraction_sp3 0 to 1, sp_atoms 0 to 10, sp2_atoms 0 to 25, sp3_atoms 0 to 25, molecular_volume 100 to 700, linker_molecular_weight 50 to 350, linker_graph_length 3 to 40, linker_effective_length 2 to 25, linker_length_ratio 0.1 to 1, linker_hbond_acceptors 0 to 6, linker_hbond_donors 0 to 4, linker_rotatable_bonds 0 to 10, linker_sp_atoms 0 to 10, linker_sp2_atoms 0 to 20, linker_sp3_atoms 0 to 20, linker_rings 0 to 4, linker_aromatic_rings 0 to 3, linker_aliphatic_rings 0 to 3, pmi 0 to 1, group_count 0 to 10, tanimoto_similarity 0 to 1, docking -14 to -3. slogp: how fat-soluble the molecule is; tpsa: polar surface area in Ų; graph_length: the longest chain of bonds; fraction_sp3: share of carbons with only single bonds. linker_* types score only the new linker and need generator linkinvent.","isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.0.type","typeLabel":"enum\u003cstring>"},"low":{"description":"Lower end of the range that is scored (see type for what it means and the default).","type":"number","uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.0.low","typeLabel":"number"},"high":{"description":"Upper end of the range that is scored (see type for what it means and the default).","type":"number","uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.0.high","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.0","typeLabel":"object"},{"type":"object","description":"What this stage optimises: one property or score per stage. To optimise several things, give each its own stage (they run in order, each starting from the generator the previous one left).","required":["type"],"properties":{"type":{"type":"string","const":"pmi","description":"Molecule shape from its principal moments of inertia: about 0 for rod-like or flat, about 1 for ball-like. Scores 1 between low and high (default 0 to 1).","isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.1.type","typeLabel":"string"},"low":{"description":"Lower end of the range that is scored (see type for what it means and the default).","type":"number","uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.1.low","typeLabel":"number"},"high":{"description":"Upper end of the range that is scored (see type for what it means and the default).","type":"number","uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.1.high","typeLabel":"number"},"property":{"default":"npr1","description":"Which shape ratio to use: npr1 or npr2.","type":"string","enum":["npr1","npr2"],"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.1.property","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.1","typeLabel":"object"},{"type":"object","description":"What this stage optimises: one property or score per stage. To optimise several things, give each its own stage (they run in order, each starting from the generator the previous one left).","required":["type","smarts"],"properties":{"type":{"type":"string","const":"group_count","description":"How many times a SMARTS pattern occurs in the molecule. Scores 1 when the count is between low and high (default 0 to 10).","isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.2.type","typeLabel":"string"},"smarts":{"type":"string","pattern":"^[!#%*+,\\-./0-9:\u003c=>?@A-Z[\\]^_a-z~]{1,500}$","description":"The SMARTS pattern to count. For now it can't contain parentheses or any of ; | \u0026 $ { } ` ' \" \\, so only molecules without branches (and patterns without groups) can be used.","isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.2.smarts","typeLabel":"string"},"low":{"description":"Lower end of the range that is scored (see type for what it means and the default).","type":"number","uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.2.low","typeLabel":"number"},"high":{"description":"Upper end of the range that is scored (see type for what it means and the default).","type":"number","uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.2.high","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.2","typeLabel":"object"},{"type":"object","description":"What this stage optimises: one property or score per stage. To optimise several things, give each its own stage (they run in order, each starting from the generator the previous one left).","required":["type","reference_smiles"],"properties":{"type":{"type":"string","const":"tanimoto_similarity","description":"Fingerprint similarity (0 to 1) to the most similar reference molecule. Scores 0 at or below low and 1 at or above high (default 0 to 1).","isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.3.type","typeLabel":"string"},"reference_smiles":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","pattern":"^[!#%*+,\\-./0-9:\u003c=>?@A-Z[\\]^_a-z~]{1,500}$","uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.3.reference_smiles.items.[INDEX]","typeLabel":"string"},"description":"Reference molecules, one SMILES per item. For now it can't contain parentheses or any of ; | \u0026 $ { } ` ' \" \\, so only molecules without branches (and patterns without groups) can be used.","isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.3.reference_smiles","typeLabel":"string[]"},"low":{"description":"Lower end of the range that is scored (see type for what it means and the default).","type":"number","uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.3.low","typeLabel":"number"},"high":{"description":"Upper end of the range that is scored (see type for what it means and the default).","type":"number","uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.3.high","typeLabel":"number"},"fingerprint_radius":{"default":1,"description":"How far around each atom the fingerprint looks, in bonds. Higher compares larger pieces and makes the similarity stricter.","type":"integer","minimum":1,"maximum":3,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.3.fingerprint_radius","typeLabel":"integer"},"use_counts":{"default":true,"description":"Count how often each piece occurs rather than only whether it occurs.","type":"boolean","uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.3.use_counts","typeLabel":"boolean"},"use_pharmacophore_features":{"default":true,"description":"Compare atoms by their role (hydrogen-bond donor, acceptor, aromatic…) rather than by element, so different atoms playing the same role count as similar.","type":"boolean","uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.3.use_pharmacophore_features","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.3","typeLabel":"object"},{"type":"object","description":"What this stage optimises: one property or score per stage. To optimise several things, give each its own stage (they run in order, each starting from the generator the previous one left).","required":["type","box_center"],"properties":{"type":{"type":"string","const":"docking","description":"Docks each molecule into a protein (AutoDock Vina on GPU) and scores the binding energy in kcal/mol, where more negative is better: 1 at or below low, 0 at or above high (default -14 to -3). Needs the protein as an input file (stage_N_protein for this stage, or protein for every docking stage). Much slower than the other objectives.","isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.4.type","typeLabel":"string"},"box_center":{"type":"object","_tupleOriginal":true,"properties":{"[0]":{"type":"number","minimum":-999,"maximum":9999,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.4.box_center.[0]","typeLabel":"number"},"[1]":{"type":"number","minimum":-999,"maximum":9999,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.4.box_center.[1]","typeLabel":"number"},"[2]":{"type":"number","minimum":-999,"maximum":9999,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.4.box_center.[2]","typeLabel":"number"}},"description":"Centre of the search box in Å (x, y, z), in the coordinates of the protein file: usually the centre of the binding pocket.","isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.4.box_center","typeLabel":"tuple"},"low":{"description":"Lower end of the range that is scored (see type for what it means and the default).","type":"number","uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.4.low","typeLabel":"number"},"high":{"description":"Upper end of the range that is scored (see type for what it means and the default).","type":"number","uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.4.high","typeLabel":"number"},"box_size":{"type":"object","_tupleOriginal":true,"properties":{"[0]":{"type":"number","minimum":1,"maximum":100,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.4.box_size.[0]","typeLabel":"number"},"[1]":{"type":"number","minimum":1,"maximum":100,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.4.box_size.[1]","typeLabel":"number"},"[2]":{"type":"number","minimum":1,"maximum":100,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.4.box_size.[2]","typeLabel":"number"}},"description":"Edge lengths of the search box in Å (x, y, z), 1 to 100. It must enclose the pocket; larger boxes search more space and dock more slowly.","uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.4.box_size","typeLabel":"tuple"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.4","typeLabel":"object"},{"type":"object","description":"What this stage optimises: one property or score per stage. To optimise several things, give each its own stage (they run in order, each starting from the generator the previous one left).","required":["type","smarts"],"properties":{"type":{"type":"string","const":"matching_substructure","description":"Favours molecules that contain a SMARTS pattern: a molecule without it scores 0.5, one with it 1.","isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.5.type","typeLabel":"string"},"smarts":{"type":"string","pattern":"^[!#%*+,\\-./0-9:\u003c=>?@A-Z[\\]^_a-z~]{1,500}$","description":"The SMARTS pattern. For now it can't contain parentheses or any of ; | \u0026 $ { } ` ' \" \\, so only molecules without branches (and patterns without groups) can be used.","isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.5.smarts","typeLabel":"string"},"use_chirality":{"default":false,"description":"Also require the 3D handedness (chirality) in the pattern to match.","type":"boolean","uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.5.use_chirality","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.5","typeLabel":"object"},{"type":"object","description":"What this stage optimises: one property or score per stage. To optimise several things, give each its own stage (they run in order, each starting from the generator the previous one left).","required":["type","smarts"],"properties":{"type":{"type":"string","const":"custom_alerts","description":"Rejects molecules that contain any of the SMARTS patterns: they score 0, the rest 1.","isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.6.type","typeLabel":"string"},"smarts":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","pattern":"^[!#%*+,\\-./0-9:\u003c=>?@A-Z[\\]^_a-z~]{1,500}$","uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.6.smarts.items.[INDEX]","typeLabel":"string"},"description":"Unwanted SMARTS patterns, one per item. For now it can't contain parentheses or any of ; | \u0026 $ { } ` ' \" \\, so only molecules without branches (and patterns without groups) can be used.","isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.6.smarts","typeLabel":"string[]"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"parameters.stages.items.[INDEX].objective","typeLabel":"object"},"min_steps":{"default":10,"description":"Learning steps to run at least, even if target_score is reached sooner.","type":"integer","minimum":1,"maximum":1000,"uniqueKey":"parameters.stages.items.[INDEX].min_steps","typeLabel":"integer"},"max_steps":{"default":100,"description":"Learning steps to run at most. Each step generates batch_size molecules, scores them and nudges the generator towards the better ones. More steps give better-scoring molecules and take longer.","type":"integer","minimum":1,"maximum":1000,"uniqueKey":"parameters.stages.items.[INDEX].max_steps","typeLabel":"integer"},"target_score":{"default":0.6,"description":"The stage ends early once a step's average score reaches this (after min_steps). Higher keeps optimising longer.","type":"number","minimum":0,"maximum":1,"uniqueKey":"parameters.stages.items.[INDEX].target_score","typeLabel":"number"},"diversity_filter":{"default":"none","description":"A diversity filter for this stage only. Keeps the generator exploring instead of repeating its best idea, by lowering the score of molecules too like ones already found. identical_murcko_scaffold: same ring framework; identical_topological_scaffold: same framework ignoring atom types; scaffold_similarity: frameworks that are merely similar; penalize_same_smiles: the exact same molecule. none: no filter.","type":"string","enum":["none","identical_murcko_scaffold","identical_topological_scaffold","scaffold_similarity","penalize_same_smiles"],"uniqueKey":"parameters.stages.items.[INDEX].diversity_filter","typeLabel":"enum\u003cstring>"}},"required":["objective"],"additionalProperties":false,"uniqueKey":"parameters.stages.items.[INDEX]","typeLabel":"object"},"description":"The optimisation goals, run in order (1 to 5), e.g. first steer towards a molecular weight range, then towards strong docking. Each stage optimises one objective.","isRequired":true,"uniqueKey":"parameters.stages","typeLabel":"object[]"},"generator":{"default":"reinvent","description":"How molecules are made. reinvent: from scratch, no input molecules. libinvent: adds side groups to the given scaffolds. linkinvent: joins two given fragments with a new linker. mol2mol: makes variants of the given molecules. pepinvent: fills the masked positions of the given peptides.","type":"string","enum":["reinvent","libinvent","linkinvent","mol2mol","pepinvent"],"uniqueKey":"parameters.generator","typeLabel":"enum\u003cstring>"},"input_smiles":{"default":[],"description":"Input molecules, one per item; needed for every generator except reinvent, which takes none. libinvent: a scaffold with numbered attachment points, e.g. [*:0]Cc1ccc(C[*:1])cc1. linkinvent: two fragments separated by |, each with one * where the linker attaches, e.g. Oc1cncc(*)c1|*c1ccoc1. mol2mol: the SMILES of a starting molecule. pepinvent: a peptide in CHUCKLES notation, amino acids separated by | and ? at each position to fill.","maxItems":1000,"type":"array","items":{"type":"string","pattern":"^[!-~]{1,1000}$","uniqueKey":"parameters.input_smiles.items.[INDEX]","typeLabel":"string"},"uniqueKey":"parameters.input_smiles","typeLabel":"string[]"},"model":{"description":"Built-in model to start from; defaults to the generator's own (for mol2mol, mol2mol_similarity). mol2mol has six: mol2mol_similarity (loosest resemblance), mol2mol_medium_similarity, mol2mol_high_similarity (closest analogs), mol2mol_mmp (the small swaps medicinal chemists typically make), mol2mol_scaffold (new core, same side groups) and mol2mol_scaffold_generic (broader core changes).","type":"string","enum":["reinvent","libinvent","linkinvent","mol2mol_similarity","mol2mol_medium_similarity","mol2mol_high_similarity","mol2mol_mmp","mol2mol_scaffold","mol2mol_scaffold_generic","pepinvent"],"uniqueKey":"parameters.model","typeLabel":"enum\u003cstring>"},"trained_model_run":{"description":"Instead of a built-in model: the run_… id of one of your succeeded RevTrain runs, so optimisation starts from molecules like your training set. Only for generator reinvent or mol2mol, the same generator the model was trained for.","type":"string","pattern":"^run_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","uniqueKey":"parameters.trained_model_run","typeLabel":"string"},"batch_size":{"default":64,"description":"Molecules generated and scored per learning step. Larger batches learn more steadily and make each step slower (docking especially).","type":"integer","minimum":1,"maximum":1024,"uniqueKey":"parameters.batch_size","typeLabel":"integer"},"diversity_filter":{"default":"none","description":"A diversity filter for the whole run (a stage's own filter replaces it for that stage). Keeps the generator exploring instead of repeating its best idea, by lowering the score of molecules too like ones already found. identical_murcko_scaffold: same ring framework; identical_topological_scaffold: same framework ignoring atom types; scaffold_similarity: frameworks that are merely similar; penalize_same_smiles: the exact same molecule. none: no filter.","type":"string","enum":["none","identical_murcko_scaffold","identical_topological_scaffold","scaffold_similarity","penalize_same_smiles"],"uniqueKey":"parameters.diversity_filter","typeLabel":"enum\u003cstring>"},"inception_smiles":{"default":[],"description":"reinvent only: known good molecules, one SMILES per item, mixed into the first learning steps as examples so the generator finds good regions faster. Leave empty to start without examples.","maxItems":1000,"type":"array","items":{"type":"string","pattern":"^[!-~]{1,1000}$","uniqueKey":"parameters.inception_smiles.items.[INDEX]","typeLabel":"string"},"uniqueKey":"parameters.inception_smiles","typeLabel":"string[]"},"inception_memory_size":{"default":100,"description":"With inception_smiles: how many of the best molecules (examples and generated) are kept as examples.","type":"integer","minimum":1,"maximum":1000,"uniqueKey":"parameters.inception_memory_size","typeLabel":"integer"},"inception_sample_size":{"default":10,"description":"With inception_smiles: how many examples are mixed into each step. More steers harder towards the examples and explores less.","type":"integer","minimum":1,"maximum":100,"uniqueKey":"parameters.inception_sample_size","typeLabel":"integer"},"sampling_strategy":{"default":"multinomial","description":"mol2mol only. multinomial samples with some randomness; beamsearch takes the most likely molecules, less varied.","type":"string","enum":["multinomial","beamsearch"],"uniqueKey":"parameters.sampling_strategy","typeLabel":"enum\u003cstring>"},"distance_threshold":{"default":100,"description":"mol2mol with multinomial sampling only. Molecules the starting model finds less likely than this (negative log-likelihood above it) get their score cut, which keeps results closer to the inputs. Lower keeps them closer.","type":"integer","minimum":1,"maximum":1000,"uniqueKey":"parameters.distance_threshold","typeLabel":"integer"}},"required":["stages"],"additionalProperties":false,"isRequired":true,"uniqueKey":"parameters","typeLabel":"object"},"name":{"description":"A name for the run, shown in the web app.","type":"string","maxLength":200,"uniqueKey":"name","typeLabel":"string"},"inputs":{"type":"object","properties":{"protein":{"type":"string","description":"Protein to dock into (PDB), used by every docking stage that has no stage_N_protein of its own. Water, ligands and other molecules should be removed; hydrogens are added for you. A file id: an upload (`file_…`) or a Drive file (`dfile_…`, `sdfile_…`). Formats: pdb; up to 20 MB.","uniqueKey":"inputs.protein","typeLabel":"string"},"stage_1_protein":{"type":"string","description":"Protein to dock into (PDB) in stage 1 only, when it differs from protein. A file id: an upload (`file_…`) or a Drive file (`dfile_…`, `sdfile_…`). Formats: pdb; up to 20 MB.","uniqueKey":"inputs.stage_1_protein","typeLabel":"string"},"stage_2_protein":{"type":"string","description":"Protein to dock into (PDB) in stage 2 only, when it differs from protein. A file id: an upload (`file_…`) or a Drive file (`dfile_…`, `sdfile_…`). Formats: pdb; up to 20 MB.","uniqueKey":"inputs.stage_2_protein","typeLabel":"string"},"stage_3_protein":{"type":"string","description":"Protein to dock into (PDB) in stage 3 only, when it differs from protein. A file id: an upload (`file_…`) or a Drive file (`dfile_…`, `sdfile_…`). Formats: pdb; up to 20 MB.","uniqueKey":"inputs.stage_3_protein","typeLabel":"string"},"stage_4_protein":{"type":"string","description":"Protein to dock into (PDB) in stage 4 only, when it differs from protein. A file id: an upload (`file_…`) or a Drive file (`dfile_…`, `sdfile_…`). Formats: pdb; up to 20 MB.","uniqueKey":"inputs.stage_4_protein","typeLabel":"string"},"stage_5_protein":{"type":"string","description":"Protein to dock into (PDB) in stage 5 only, when it differs from protein. A file id: an upload (`file_…`) or a Drive file (`dfile_…`, `sdfile_…`). Formats: pdb; up to 20 MB.","uniqueKey":"inputs.stage_5_protein","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"inputs","typeLabel":"object"},"budget":{"description":"Most credits the run may spend; it is stopped beyond that.","type":"number","exclusiveMinimum":0,"uniqueKey":"budget","typeLabel":"number"},"projectId":{"description":"Add the run to this project (`proj_…`); needs editor or owner on it.","type":"string","uniqueKey":"projectId","typeLabel":"string"}},"required":["parameters"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"properties":{"title":"properties","value":{"name":"Oral-like library","parameters":{"stages":[{"objective":{"type":"molecular_weight","low":300,"high":450}},{"objective":{"type":"slogp","low":1,"high":3},"max_steps":200}]},"inputs":{}}},"docking":{"title":"docking","value":{"name":"Pocket binders","parameters":{"batch_size":32,"diversity_filter":"identical_murcko_scaffold","stages":[{"objective":{"type":"molecular_weight","low":250,"high":500},"max_steps":50},{"objective":{"type":"docking","box_center":[12.5,-4.2,30.1],"box_size":[22,22,22]},"min_steps":20,"max_steps":150,"target_score":0.7}]},"inputs":{"protein":"file_…"}}},"analogs-without-alerts":{"title":"analogs-without-alerts","value":{"parameters":{"generator":"mol2mol","model":"mol2mol_medium_similarity","input_smiles":["Cc1ccc(-c2cc(C(F)(F)F)nn2-c2ccc(S(N)(=O)=O)cc2)cc1"],"stages":[{"objective":{"type":"tpsa","low":60,"high":90}},{"objective":{"type":"custom_alerts","smarts":["N=N","[SX2H]"]},"max_steps":50}]},"inputs":{}}},"trained-model":{"title":"trained-model","value":{"name":"Series A, rigidified","parameters":{"trained_model_run":"run_00000000-0000-0000-0000-000000000000","stages":[{"objective":{"type":"rotatable_bonds","low":2,"high":8},"max_steps":300,"target_score":0.8}]},"inputs":{}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"34f29b3e-dbb7-443c-99e9-3e28339cadfe":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Run id, `run_…`.","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"engine":{"type":"string","description":"Engine slug, e.g. `revredox`.","isRequired":true,"uniqueKey":"engine","typeLabel":"string"},"name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"name","typeLabel":"string | null"},"access":{"type":"string","enum":["owner","shared","project"],"description":"Why you can see the run: you started it, it was shared with you, or it is in a project you belong to. Only the owner can cancel it or read its inputs.","isRequired":true,"uniqueKey":"access","typeLabel":"enum\u003cstring>"},"owner":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"owner.name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"owner.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.name","typeLabel":"string | null"},"email":{"type":"string","isRequired":true,"uniqueKey":"owner.email","typeLabel":"string"}},"required":["name","email"],"description":"Who started the run.","isRequired":true,"uniqueKey":"owner","typeLabel":"object"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled"],"description":"queued until the engine picks the run up; succeeded, failed and cancelled are final.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"statusReason":{"oneOf":[{"description":"Why a cancelled run stopped: `user`, `insufficient_credits` or `budget_exceeded`. Null otherwise.","type":"string","isRequired":true,"uniqueKey":"statusReason.oneOf.0","typeLabel":"string"},{"description":"Why a cancelled run stopped: `user`, `insufficient_credits` or `budget_exceeded`. Null otherwise.","type":"null","isRequired":true,"uniqueKey":"statusReason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"statusReason","typeLabel":"string | null"},"progress":{"type":"number","description":"Progress the engine reports; 0 until it reports any.","isRequired":true,"uniqueKey":"progress","typeLabel":"number"},"createdAt":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string\u003cdate-time>"},"startedAt":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"startedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","isRequired":true,"uniqueKey":"startedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"startedAt","typeLabel":"string\u003cdate-time> | null"},"endedAt":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"endedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","isRequired":true,"uniqueKey":"endedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"endedAt","typeLabel":"string\u003cdate-time> | null"},"budget":{"oneOf":[{"description":"Most credits the run may spend, if one was set.","type":"number","isRequired":true,"uniqueKey":"budget.oneOf.0","typeLabel":"number"},{"description":"Most credits the run may spend, if one was set.","type":"null","isRequired":true,"uniqueKey":"budget.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"budget","typeLabel":"number | null"},"creditsUsed":{"type":"number","description":"Credits charged to the run so far.","isRequired":true,"uniqueKey":"creditsUsed","typeLabel":"number"},"error":{"oneOf":[{"type":"object","description":"Set when status is failed.","required":["message"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"error.oneOf.0.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.oneOf.0","typeLabel":"object"},{"type":"null","description":"Set when status is failed.","isRequired":true,"uniqueKey":"error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error","typeLabel":"object | null"},"links":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","uniqueKey":"links.additionalProperties","typeLabel":"string"},"description":"Related endpoints: self, inputs (owner only), results, outputs, files.","isRequired":true,"uniqueKey":"links","typeLabel":"object"},"children":{"type":"object","properties":{"total":{"type":"number","isRequired":true,"uniqueKey":"children.total","typeLabel":"number"},"queued":{"type":"number","isRequired":true,"uniqueKey":"children.queued","typeLabel":"number"},"running":{"type":"number","isRequired":true,"uniqueKey":"children.running","typeLabel":"number"},"succeeded":{"type":"number","isRequired":true,"uniqueKey":"children.succeeded","typeLabel":"number"},"failed":{"type":"number","isRequired":true,"uniqueKey":"children.failed","typeLabel":"number"},"cancelled":{"type":"number","isRequired":true,"uniqueKey":"children.cancelled","typeLabel":"number"}},"required":["total","queued","running","succeeded","failed","cancelled"],"description":"For engines that run each input as its own job: how many children are in each status. GET /v1/runs/{runId}/children lists them.","uniqueKey":"children","typeLabel":"object"},"warnings":{"description":"Set when the run was created but a follow-up step, such as adding it to a project, failed.","type":"array","items":{"type":"string","uniqueKey":"warnings.items.[INDEX]","typeLabel":"string"},"uniqueKey":"warnings","typeLabel":"string[]"}},"required":["id","engine","name","access","owner","status","statusReason","progress","createdAt","startedAt","endedAt","budget","creditsUsed","error","links"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","engine":"\u003cstring>","name":"\u003cstring>","access":"owner","owner":{"name":"\u003cstring>","email":"\u003cstring>"},"status":"queued","statusReason":"\u003cstring>","progress":123,"createdAt":"2023-11-07T05:31:56Z","startedAt":"2023-11-07T05:31:56Z","endedAt":"2023-11-07T05:31:56Z","budget":123,"creditsUsed":123,"error":{"message":"\u003cstring>"},"links":{},"children":{"total":123,"queued":123,"running":123,"succeeded":123,"failed":123,"cancelled":123},"warnings":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"ce656b89-bdc3-458d-a3ef-6427aad73fe0":{"description":"The request is malformed. `error.code` is one of `VALIDATION_FAILED`, `INVALID_ID`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["VALIDATION_FAILED","INVALID_ID","INVALID_PARAMETERS","INPUT_LIMIT_EXCEEDED","NOT_FOUND","FORBIDDEN","METHOD_NOT_ALLOWED","CONFLICT","PAYLOAD_TOO_LARGE","MISSING_CREDENTIALS","INVALID_CREDENTIALS","WRONG_ENVIRONMENT","CREDENTIALS_EXPIRED","CREDENTIALS_REVOKED","ACCOUNT_INACTIVE","API_ACCESS_NOT_ENABLED","INSUFFICIENT_SCOPE","SESSION_REQUIRED","TOO_MANY_AUTH_FAILURES","API_KEY_LIMIT_REACHED","ENGINE_NOT_ENABLED","DOCS_NOT_AVAILABLE","INSUFFICIENT_CREDITS","RUN_NOT_COMPLETE","ENGINE_SUBMIT_FAILED","RATE_LIMITED","SERVICE_UNAVAILABLE","INTERNAL_ERROR"],"description":"Stable within /v1; branch on this, not on the message.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Readable explanation, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Extra context, e.g. `issues` ({ path, message }[]) for validation errors.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"VALIDATION_FAILED","message":"The request is malformed."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_FAILED","message":"The request is malformed."}}}},"exampleType":"examples"}},"exampleType":"examples"},"ef423443-0ad1-46a3-b781-3d0912371280":{"description":"The API key is missing or not valid. `error.code` is one of `MISSING_CREDENTIALS`, `INVALID_CREDENTIALS`, `WRONG_ENVIRONMENT`, `CREDENTIALS_EXPIRED`, `CREDENTIALS_REVOKED`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["VALIDATION_FAILED","INVALID_ID","INVALID_PARAMETERS","INPUT_LIMIT_EXCEEDED","NOT_FOUND","FORBIDDEN","METHOD_NOT_ALLOWED","CONFLICT","PAYLOAD_TOO_LARGE","MISSING_CREDENTIALS","INVALID_CREDENTIALS","WRONG_ENVIRONMENT","CREDENTIALS_EXPIRED","CREDENTIALS_REVOKED","ACCOUNT_INACTIVE","API_ACCESS_NOT_ENABLED","INSUFFICIENT_SCOPE","SESSION_REQUIRED","TOO_MANY_AUTH_FAILURES","API_KEY_LIMIT_REACHED","ENGINE_NOT_ENABLED","DOCS_NOT_AVAILABLE","INSUFFICIENT_CREDITS","RUN_NOT_COMPLETE","ENGINE_SUBMIT_FAILED","RATE_LIMITED","SERVICE_UNAVAILABLE","INTERNAL_ERROR"],"description":"Stable within /v1; branch on this, not on the message.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Readable explanation, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Extra context, e.g. `issues` ({ path, message }[]) for validation errors.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"MISSING_CREDENTIALS","message":"The API key is missing or not valid."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"MISSING_CREDENTIALS","message":"The API key is missing or not valid."}}}},"exampleType":"examples"}},"exampleType":"examples"},"8fd8e738-f34c-4576-8beb-31881a9f37fb":{"description":"Your organization doesn't have enough credits. `error.code` is one of `INSUFFICIENT_CREDITS`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["VALIDATION_FAILED","INVALID_ID","INVALID_PARAMETERS","INPUT_LIMIT_EXCEEDED","NOT_FOUND","FORBIDDEN","METHOD_NOT_ALLOWED","CONFLICT","PAYLOAD_TOO_LARGE","MISSING_CREDENTIALS","INVALID_CREDENTIALS","WRONG_ENVIRONMENT","CREDENTIALS_EXPIRED","CREDENTIALS_REVOKED","ACCOUNT_INACTIVE","API_ACCESS_NOT_ENABLED","INSUFFICIENT_SCOPE","SESSION_REQUIRED","TOO_MANY_AUTH_FAILURES","API_KEY_LIMIT_REACHED","ENGINE_NOT_ENABLED","DOCS_NOT_AVAILABLE","INSUFFICIENT_CREDITS","RUN_NOT_COMPLETE","ENGINE_SUBMIT_FAILED","RATE_LIMITED","SERVICE_UNAVAILABLE","INTERNAL_ERROR"],"description":"Stable within /v1; branch on this, not on the message.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Readable explanation, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Extra context, e.g. `issues` ({ path, message }[]) for validation errors.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"INSUFFICIENT_CREDITS","message":"Your organization doesn't have enough credits."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INSUFFICIENT_CREDITS","message":"Your organization doesn't have enough credits."}}}},"exampleType":"examples"}},"exampleType":"examples"},"4e737430-7f50-42e9-a9c1-f1e058f99222":{"description":"The key may not do this. `error.code` is one of `INSUFFICIENT_SCOPE`, `API_ACCESS_NOT_ENABLED`, `ENGINE_NOT_ENABLED`, `ACCOUNT_INACTIVE`, `FORBIDDEN`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["VALIDATION_FAILED","INVALID_ID","INVALID_PARAMETERS","INPUT_LIMIT_EXCEEDED","NOT_FOUND","FORBIDDEN","METHOD_NOT_ALLOWED","CONFLICT","PAYLOAD_TOO_LARGE","MISSING_CREDENTIALS","INVALID_CREDENTIALS","WRONG_ENVIRONMENT","CREDENTIALS_EXPIRED","CREDENTIALS_REVOKED","ACCOUNT_INACTIVE","API_ACCESS_NOT_ENABLED","INSUFFICIENT_SCOPE","SESSION_REQUIRED","TOO_MANY_AUTH_FAILURES","API_KEY_LIMIT_REACHED","ENGINE_NOT_ENABLED","DOCS_NOT_AVAILABLE","INSUFFICIENT_CREDITS","RUN_NOT_COMPLETE","ENGINE_SUBMIT_FAILED","RATE_LIMITED","SERVICE_UNAVAILABLE","INTERNAL_ERROR"],"description":"Stable within /v1; branch on this, not on the message.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Readable explanation, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Extra context, e.g. `issues` ({ path, message }[]) for validation errors.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"INSUFFICIENT_SCOPE","message":"The key may not do this."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INSUFFICIENT_SCOPE","message":"The key may not do this."}}}},"exampleType":"examples"}},"exampleType":"examples"},"640c2627-0678-46b9-9445-1f3ada161dbf":{"description":"Not found, or not visible to you. `error.code` is one of `NOT_FOUND`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["VALIDATION_FAILED","INVALID_ID","INVALID_PARAMETERS","INPUT_LIMIT_EXCEEDED","NOT_FOUND","FORBIDDEN","METHOD_NOT_ALLOWED","CONFLICT","PAYLOAD_TOO_LARGE","MISSING_CREDENTIALS","INVALID_CREDENTIALS","WRONG_ENVIRONMENT","CREDENTIALS_EXPIRED","CREDENTIALS_REVOKED","ACCOUNT_INACTIVE","API_ACCESS_NOT_ENABLED","INSUFFICIENT_SCOPE","SESSION_REQUIRED","TOO_MANY_AUTH_FAILURES","API_KEY_LIMIT_REACHED","ENGINE_NOT_ENABLED","DOCS_NOT_AVAILABLE","INSUFFICIENT_CREDITS","RUN_NOT_COMPLETE","ENGINE_SUBMIT_FAILED","RATE_LIMITED","SERVICE_UNAVAILABLE","INTERNAL_ERROR"],"description":"Stable within /v1; branch on this, not on the message.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Readable explanation, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Extra context, e.g. `issues` ({ path, message }[]) for validation errors.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"NOT_FOUND","message":"Not found, or not visible to you."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"NOT_FOUND","message":"Not found, or not visible to you."}}}},"exampleType":"examples"}},"exampleType":"examples"},"55c19ec4-4388-4e4e-8385-fba6dc95acc5":{"description":"The parameters or input files don't fit the engine. `error.code` is one of `INVALID_PARAMETERS`, `INPUT_LIMIT_EXCEEDED`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["VALIDATION_FAILED","INVALID_ID","INVALID_PARAMETERS","INPUT_LIMIT_EXCEEDED","NOT_FOUND","FORBIDDEN","METHOD_NOT_ALLOWED","CONFLICT","PAYLOAD_TOO_LARGE","MISSING_CREDENTIALS","INVALID_CREDENTIALS","WRONG_ENVIRONMENT","CREDENTIALS_EXPIRED","CREDENTIALS_REVOKED","ACCOUNT_INACTIVE","API_ACCESS_NOT_ENABLED","INSUFFICIENT_SCOPE","SESSION_REQUIRED","TOO_MANY_AUTH_FAILURES","API_KEY_LIMIT_REACHED","ENGINE_NOT_ENABLED","DOCS_NOT_AVAILABLE","INSUFFICIENT_CREDITS","RUN_NOT_COMPLETE","ENGINE_SUBMIT_FAILED","RATE_LIMITED","SERVICE_UNAVAILABLE","INTERNAL_ERROR"],"description":"Stable within /v1; branch on this, not on the message.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Readable explanation, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Extra context, e.g. `issues` ({ path, message }[]) for validation errors.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"INVALID_PARAMETERS","message":"The parameters or input files don't fit the engine."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INVALID_PARAMETERS","message":"The parameters or input files don't fit the engine."}}}},"exampleType":"examples"}},"exampleType":"examples"},"1bd2294a-7bf8-4081-8a24-4da5410cc441":{"description":"Something went wrong on our side. `error.code` is one of `INTERNAL_ERROR`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["VALIDATION_FAILED","INVALID_ID","INVALID_PARAMETERS","INPUT_LIMIT_EXCEEDED","NOT_FOUND","FORBIDDEN","METHOD_NOT_ALLOWED","CONFLICT","PAYLOAD_TOO_LARGE","MISSING_CREDENTIALS","INVALID_CREDENTIALS","WRONG_ENVIRONMENT","CREDENTIALS_EXPIRED","CREDENTIALS_REVOKED","ACCOUNT_INACTIVE","API_ACCESS_NOT_ENABLED","INSUFFICIENT_SCOPE","SESSION_REQUIRED","TOO_MANY_AUTH_FAILURES","API_KEY_LIMIT_REACHED","ENGINE_NOT_ENABLED","DOCS_NOT_AVAILABLE","INSUFFICIENT_CREDITS","RUN_NOT_COMPLETE","ENGINE_SUBMIT_FAILED","RATE_LIMITED","SERVICE_UNAVAILABLE","INTERNAL_ERROR"],"description":"Stable within /v1; branch on this, not on the message.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Readable explanation, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Extra context, e.g. `issues` ({ path, message }[]) for validation errors.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"INTERNAL_ERROR","message":"Something went wrong on our side."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INTERNAL_ERROR","message":"Something went wrong on our side."}}}},"exampleType":"examples"}},"exampleType":"examples"},"bd45f156-91b8-4abd-9f39-1b0e8b963ddc":{"description":"The engine service rejected or failed the request. `error.code` is one of `ENGINE_SUBMIT_FAILED`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["VALIDATION_FAILED","INVALID_ID","INVALID_PARAMETERS","INPUT_LIMIT_EXCEEDED","NOT_FOUND","FORBIDDEN","METHOD_NOT_ALLOWED","CONFLICT","PAYLOAD_TOO_LARGE","MISSING_CREDENTIALS","INVALID_CREDENTIALS","WRONG_ENVIRONMENT","CREDENTIALS_EXPIRED","CREDENTIALS_REVOKED","ACCOUNT_INACTIVE","API_ACCESS_NOT_ENABLED","INSUFFICIENT_SCOPE","SESSION_REQUIRED","TOO_MANY_AUTH_FAILURES","API_KEY_LIMIT_REACHED","ENGINE_NOT_ENABLED","DOCS_NOT_AVAILABLE","INSUFFICIENT_CREDITS","RUN_NOT_COMPLETE","ENGINE_SUBMIT_FAILED","RATE_LIMITED","SERVICE_UNAVAILABLE","INTERNAL_ERROR"],"description":"Stable within /v1; branch on this, not on the message.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Readable explanation, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Extra context, e.g. `issues` ({ path, message }[]) for validation errors.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"ENGINE_SUBMIT_FAILED","message":"The engine service rejected or failed the request."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"ENGINE_SUBMIT_FAILED","message":"The engine service rejected or failed the request."}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"d717e6d1-fba0-4f7f-96d5-129436291fe4":{"bearerAuth":{"type":"http","scheme":"bearer","description":"An API key from the web app (**Settings → Developer**), sent as `Authorization: Bearer rvl_live_…`.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"76ce0e69-bccf-48e7-93f8-9d02ccdfb096":{"url":"https://public-api.revilico.bio"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"An API key from the web app (**Settings → Developer**), sent as `Authorization: Bearer rvl_live_…`.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An API key from the web app (**Settings → Developer**), sent as `Authorization: Bearer rvl_live_…`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"revilicoinc","siteName":"Revilico","title":"Start a RevOptimization run - Revilico","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T13:44:47.314Z","originalFileLocation":"api-reference/engine-runs/start-a-revoptimization-run.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Generates molecules while steering the generator, stage by stage, towards goals you set: a property range (weight, solubility, polarity, rings…), similarity to reference molecules, a wanted or unwanted substructure, or strong docking into a protein. Each stage optimises one goal and starts from the generator the previous stage left. Can start from a model you trained with RevTrain. Starts a run and returns it with status queued; poll GET /v1/runs/{runId} until it finishes. Runs spend credits. Limits: maxStages: 5, maxStepsPerStage: 1000, maxMoleculesSampled: 250000, maxBatchSize: 1024, maxInputMolecules: 1000. How the engine works and how to read its results: RevOptimization documentation. Scope: runs:write.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Revilico\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/revilicoinc/XuDhYK1TrVRjKN2O/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/revilicoinc/XuDhYK1TrVRjKN2O/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/revilicoinc/XuDhYK1TrVRjKN2O/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/revilicoinc/XuDhYK1TrVRjKN2O/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/revilicoinc/XuDhYK1TrVRjKN2O/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/revilicoinc/XuDhYK1TrVRjKN2O/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/revilicoinc/XuDhYK1TrVRjKN2O/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/revilicoinc/XuDhYK1TrVRjKN2O/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/revilicoinc/XuDhYK1TrVRjKN2O/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Start a RevOptimization run - Revilico\">\u003cmeta data-mint-head property=\"og:description\" content=\"Generates molecules while steering the generator, stage by stage, towards goals you set: a property range (weight, solubility, polarity, rings…), similarity to reference molecules, a wanted or unwanted substructure, or strong docking into a protein. Each stage optimises one goal and starts from the generator the previous stage left. Can start from a model you trained with RevTrain. Starts a run and returns it with status queued; poll GET /v1/runs/{runId} until it finishes. Runs spend credits. Limits: maxStages: 5, maxStepsPerStage: 1000, maxMoleculesSampled: 250000, maxBatchSize: 1024, maxInputMolecules: 1000. How the engine works and how to read its results: RevOptimization documentation. Scope: runs:write.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Revilico\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.revilico.bio/api-reference/engine-runs/start-a-revoptimization-run\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://revilicoinc.mintlify.app/_mintlify/api/og/v2?division=Engine+runs\u0026amp;title=Start+a+RevOptimization+run\u0026amp;description=Generates+molecules+while+steering+the+generator%2C+stage+by+stage%2C+towards+goals+you+set%3A+a+property+range+%28weight%2C+solubility%2C+polarity%2C+rings%E2%80%A6%29%2C+similarity+to+\u0026amp;theme=be735b651301653c27b26fa1\u0026amp;signature=a96ad18bdb3a94552865061468c1dda6432cb9daff728d911f888876c21903d7\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Start a RevOptimization run - Revilico\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Generates molecules while steering the generator, stage by stage, towards goals you set: a property range (weight, solubility, polarity, rings…), similarity to reference molecules, a wanted or unwanted substructure, or strong docking into a protein. Each stage optimises one goal and starts from the generator the previous stage left. Can start from a model you trained with RevTrain. Starts a run and returns it with status queued; poll GET /v1/runs/{runId} until it finishes. Runs spend credits. Limits: maxStages: 5, maxStepsPerStage: 1000, maxMoleculesSampled: 250000, maxBatchSize: 1024, maxInputMolecules: 1000. How the engine works and how to read its results: RevOptimization documentation. Scope: runs:write.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://revilicoinc.mintlify.app/_mintlify/api/og/v2?division=Engine+runs\u0026amp;title=Start+a+RevOptimization+run\u0026amp;description=Generates+molecules+while+steering+the+generator%2C+stage+by+stage%2C+towards+goals+you+set%3A+a+property+range+%28weight%2C+solubility%2C+polarity%2C+rings%E2%80%A6%29%2C+similarity+to+\u0026amp;theme=be735b651301653c27b26fa1\u0026amp;signature=a96ad18bdb3a94552865061468c1dda6432cb9daff728d911f888876c21903d7\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/revilicoinc/XuDhYK1TrVRjKN2O/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Revilico\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1371e4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.revilico.bio/api-reference/engine-runs/start-a-revoptimization-run\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/engine-runs/start-a-revoptimization-run.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.revilico.bio/#organization\",\"name\":\"Revilico\",\"url\":\"https://docs.revilico.bio\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/revilicoinc/cWUeZVkzU4GxUaNk/logo/revilico-dark.avif?fit=max\u0026auto=format\u0026n=cWUeZVkzU4GxUaNk\u0026q=85\u0026s=d4e1bd31a297855ce0ceab937fc59f32\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.revilico.bio#website\",\"name\":\"Revilico\",\"url\":\"https://docs.revilico.bio\",\"publisher\":{\"@id\":\"https://docs.revilico.bio/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.revilico.bio/api-reference/engine-runs/start-a-revoptimization-run#webpage\",\"url\":\"https://docs.revilico.bio/api-reference/engine-runs/start-a-revoptimization-run\",\"name\":\"Start a RevOptimization run\",\"description\":\"Generates molecules while steering the generator, stage by stage, towards goals you set: a property range (weight, solubility, polarity, rings…), similarity to reference molecules, a wanted or unwanted substructure, or strong docking into a protein. Each stage optimises one goal and starts from the generator the previous stage left. Can start from a model you trained with RevTrain. Starts a run and returns it with status queued; poll GET /v1/runs/{runId} until it finishes. Runs spend credits. Limits: maxStages: 5, maxStepsPerStage: 1000, maxMoleculesSampled: 250000, maxBatchSize: 1024, maxInputMolecules: 1000. How the engine works and how to read its results: RevOptimization documentation. Scope: runs:write.\",\"dateModified\":\"2026-10-29T13:44:47.314Z\",\"isPartOf\":{\"@id\":\"https://docs.revilico.bio#website\"},\"breadcrumb\":{\"@id\":\"https://docs.revilico.bio/api-reference/engine-runs/start-a-revoptimization-run#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.revilico.bio/api-reference/engine-runs/start-a-revoptimization-run#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.revilico.bio/api-reference/account/get-the-current-account\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Engine runs\",\"item\":\"https://docs.revilico.bio/api-reference/engine-runs/start-a-revenergy-run\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Start a RevOptimization run\",\"item\":\"https://docs.revilico.bio/api-reference/engine-runs/start-a-revoptimization-run\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.revilico.bio/api-reference/engine-runs/start-a-revoptimization-run#apireference\",\"headline\":\"Start a RevOptimization run\",\"name\":\"Start a RevOptimization run\",\"description\":\"Generates molecules while steering the generator, stage by stage, towards goals you set: a property range (weight, solubility, polarity, rings…), similarity to reference molecules, a wanted or unwanted substructure, or strong docking into a protein. Each stage optimises one goal and starts from the generator the previous stage left. Can start from a model you trained with RevTrain. Starts a run and returns it with status queued; poll GET /v1/runs/{runId} until it finishes. Runs spend credits. Limits: maxStages: 5, maxStepsPerStage: 1000, maxMoleculesSampled: 250000, maxBatchSize: 1024, maxInputMolecules: 1000. How the engine works and how to read its results: RevOptimization documentation. Scope: runs:write.\",\"url\":\"https://docs.revilico.bio/api-reference/engine-runs/start-a-revoptimization-run\",\"mainEntityOfPage\":{\"@id\":\"https://docs.revilico.bio/api-reference/engine-runs/start-a-revoptimization-run#webpage\"},\"dateModified\":\"2026-10-29T13:44:47.314Z\",\"publisher\":{\"@id\":\"https://docs.revilico.bio/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.revilico.bio#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Revilico\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Revilico","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":""}]},{"tab":"Documentation","pages":[{"title":"Documentation","href":"/docs/revsinglecell"}]},{"tab":"Developers","groups":[{"group":"Get started","pages":[{"title":"Developer platform","href":"/developers/overview"},{"title":"Quickstart","href":"/developers/quickstart"},{"title":"Authentication","href":"/developers/authentication"},{"title":"Errors and conventions","href":"/developers/errors"}]},{"group":"Guides","pages":[{"title":"Sharing runs","href":"/developers/sharing"},{"title":"RevNotes","href":"/developers/notes"},{"title":"RevDrive","href":"/developers/drive"}]},{"group":"MCP server","pages":[{"title":"Use Revilico from AI apps with the MCP server","sidebarTitle":"MCP server","href":"/developers/mcp/overview"},{"title":"Connect Claude","href":"/developers/mcp/claude"},{"title":"Connect ChatGPT","href":"/developers/mcp/chatgpt"},{"title":"Other apps and API keys","href":"/developers/mcp/api-key"},{"title":"Tools reference","href":"/developers/mcp/tools"}]},{"group":"API reference","pages":[{"title":"Revilico REST API reference: base URL and auth","sidebarTitle":"API reference","href":"/api-reference/introduction"}]},{"group":"Endpoints","pages":[{"group":"Account","pages":[{"title":"Get the current account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/me","href":"/api-reference/account/get-the-current-account"},{"title":"Get the credit balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/credits/balance","href":"/api-reference/account/get-the-credit-balance"},{"title":"Get credit usage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/usage","href":"/api-reference/account/get-credit-usage"}]},{"group":"Engines","pages":[{"title":"List engines","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/engines","href":"/api-reference/engines/list-engines"},{"title":"Get an engine","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/engines/{engine}","href":"/api-reference/engines/get-an-engine"},{"title":"Get engine examples","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/engines/{engine}/examples","href":"/api-reference/engines/get-engine-examples"},{"title":"Validate parameters","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/engines/{engine}/validate","href":"/api-reference/engines/validate-parameters"}]},{"group":"Files","pages":[{"title":"List files","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/files","href":"/api-reference/files/list-files"},{"title":"Create an upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/files","href":"/api-reference/files/create-an-upload"},{"title":"Get a file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/files/{fileId}","href":"/api-reference/files/get-a-file"}]},{"group":"Runs","pages":[{"title":"Start a run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/engines/{engine}/runs","href":"/api-reference/runs/start-a-run"},{"title":"List runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/runs","href":"/api-reference/runs/list-runs"},{"title":"Get a run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/runs/{runId}","href":"/api-reference/runs/get-a-run"},{"title":"Get run inputs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/runs/{runId}/inputs","href":"/api-reference/runs/get-run-inputs"},{"title":"List run children","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/runs/{runId}/children","href":"/api-reference/runs/list-run-children"},{"title":"Cancel a run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/runs/{runId}/cancel","href":"/api-reference/runs/cancel-a-run"}]},{"group":"Results and outputs","pages":[{"title":"Get results","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/runs/{runId}/results","href":"/api-reference/results-and-outputs/get-results"},{"title":"Get a result row in full","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/runs/{runId}/results/{index}","href":"/api-reference/results-and-outputs/get-a-result-row-in-full"},{"title":"Get a child's results","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/runs/{runId}/children/{childIndex}/results","href":"/api-reference/results-and-outputs/get-a-childs-results"},{"title":"List run files","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/runs/{runId}/files","href":"/api-reference/results-and-outputs/list-run-files"},{"title":"Read a run file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/runs/{runId}/files/read","href":"/api-reference/results-and-outputs/read-a-run-file"},{"title":"List outputs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/runs/{runId}/outputs","href":"/api-reference/results-and-outputs/list-outputs"},{"title":"Download an output","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/runs/{runId}/outputs/{outputId}","href":"/api-reference/results-and-outputs/download-an-output"},{"title":"Download a child's output","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/runs/{runId}/outputs/{child}/{outputId}","href":"/api-reference/results-and-outputs/download-a-childs-output"}]},{"group":"Projects","pages":[{"title":"List projects","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/projects","href":"/api-reference/projects/list-projects"},{"title":"Create a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/projects","href":"/api-reference/projects/create-a-project"},{"title":"Get a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/projects/{projectId}","href":"/api-reference/projects/get-a-project"},{"title":"Update a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/projects/{projectId}","href":"/api-reference/projects/update-a-project"},{"title":"List project runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/projects/{projectId}/runs","href":"/api-reference/projects/list-project-runs"},{"title":"Add a run to a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/projects/{projectId}/runs/{runId}","href":"/api-reference/projects/add-a-run-to-a-project"},{"title":"Remove a run from a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/projects/{projectId}/runs/{runId}","href":"/api-reference/projects/remove-a-run-from-a-project"}]},{"group":"Sharing","pages":[{"title":"List who a run is shared with","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/runs/{runId}/shares","href":"/api-reference/sharing/list-who-a-run-is-shared-with"},{"title":"Share a run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/runs/{runId}/shares","href":"/api-reference/sharing/share-a-run"},{"title":"Stop sharing a run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/runs/{runId}/shares/{shareId}","href":"/api-reference/sharing/stop-sharing-a-run"},{"title":"List people you can share with","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/org/members","href":"/api-reference/sharing/list-people-you-can-share-with"}]},{"group":"Notes","pages":[{"title":"List notes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/notes","href":"/api-reference/notes/list-notes"},{"title":"Create a note","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/notes","href":"/api-reference/notes/create-a-note"},{"title":"Get a note","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/notes/{noteId}","href":"/api-reference/notes/get-a-note"},{"title":"Delete a note","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/notes/{noteId}","href":"/api-reference/notes/delete-a-note"},{"title":"Change a note","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/notes/{noteId}","href":"/api-reference/notes/change-a-note"},{"title":"List who a note is shared with","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/notes/{noteId}/shares","href":"/api-reference/notes/list-who-a-note-is-shared-with"},{"title":"Share a note","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/notes/{noteId}/shares","href":"/api-reference/notes/share-a-note"},{"title":"Stop sharing a note","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/notes/{noteId}/shares/{noteShareId}","href":"/api-reference/notes/stop-sharing-a-note"},{"title":"List note folders","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/note-folders","href":"/api-reference/notes/list-note-folders"},{"title":"Create a note folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/note-folders","href":"/api-reference/notes/create-a-note-folder"},{"title":"Rename a note folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/note-folders/{noteFolderId}","href":"/api-reference/notes/rename-a-note-folder"},{"title":"List who a note folder is shared with","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/note-folders/{noteFolderId}/shares","href":"/api-reference/notes/list-who-a-note-folder-is-shared-with"},{"title":"Share a note folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/note-folders/{noteFolderId}/shares","href":"/api-reference/notes/share-a-note-folder"},{"title":"Stop sharing a note folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/note-folders/{noteFolderId}/shares/{noteShareId}","href":"/api-reference/notes/stop-sharing-a-note-folder"}]},{"group":"Drive","pages":[{"title":"List Drive folders and files","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/drive/items","href":"/api-reference/drive/list-drive-folders-and-files"},{"title":"List your shared drives","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/drive/shared-drives","href":"/api-reference/drive/list-your-shared-drives"},{"title":"Get a Drive file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/drive/files/{driveFileId}","href":"/api-reference/drive/get-a-drive-file"},{"title":"Read a Drive file's content","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/drive/files/{driveFileId}/content","href":"/api-reference/drive/read-a-drive-files-content"},{"title":"Create a Drive folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/drive/folders","href":"/api-reference/drive/create-a-drive-folder"},{"title":"Upload a file into Drive","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/drive/files","href":"/api-reference/drive/upload-a-file-into-drive"},{"title":"Finish a Drive upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/drive/files/{driveFileId}/complete","href":"/api-reference/drive/finish-a-drive-upload"},{"title":"Save an upload or run output to Drive","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/drive/import","href":"/api-reference/drive/save-an-upload-or-run-output-to-drive"},{"title":"Move a Drive item to the trash","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/drive/items/{itemId}","href":"/api-reference/drive/move-a-drive-item-to-the-trash"},{"title":"Rename or move a Drive item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/drive/items/{itemId}","href":"/api-reference/drive/rename-or-move-a-drive-item"}]},{"group":"Engine runs","pages":[{"title":"Start a RevEnergy run","deprecated":null,"version":null,"sidebarTitle":"RevEnergy","openapi":"/api-reference/openapi.json post /v1/engines/revenergy/runs","href":"/api-reference/engine-runs/start-a-revenergy-run"},{"title":"Start a RevHBond run","deprecated":null,"version":null,"sidebarTitle":"RevHBond","openapi":"/api-reference/openapi.json post /v1/engines/revhbond/runs","href":"/api-reference/engine-runs/start-a-revhbond-run"},{"title":"Start a RevStrain run","deprecated":null,"version":null,"sidebarTitle":"RevStrain","openapi":"/api-reference/openapi.json post /v1/engines/revstrain/runs","href":"/api-reference/engine-runs/start-a-revstrain-run"},{"title":"Start a RevFukui run","deprecated":null,"version":null,"sidebarTitle":"RevFukui","openapi":"/api-reference/openapi.json post /v1/engines/revfukui/runs","href":"/api-reference/engine-runs/start-a-revfukui-run"},{"title":"Start a RevMSA run","deprecated":null,"version":null,"sidebarTitle":"RevMSA","openapi":"/api-reference/openapi.json post /v1/engines/revmsa/runs","href":"/api-reference/engine-runs/start-a-revmsa-run"},{"title":"Start a RevTorsion run","deprecated":null,"version":null,"sidebarTitle":"RevTorsion","openapi":"/api-reference/openapi.json post /v1/engines/revtorsion/runs","href":"/api-reference/engine-runs/start-a-revtorsion-run"},{"title":"Start a RevPath run","deprecated":null,"version":null,"sidebarTitle":"RevPath","openapi":"/api-reference/openapi.json post /v1/engines/revpath/runs","href":"/api-reference/engine-runs/start-a-revpath-run"},{"title":"Start a RevSaddle run","deprecated":null,"version":null,"sidebarTitle":"RevSaddle","openapi":"/api-reference/openapi.json post /v1/engines/revsaddle/runs","href":"/api-reference/engine-runs/start-a-revsaddle-run"},{"title":"Start a RevIED run","deprecated":null,"version":null,"sidebarTitle":"RevIED","openapi":"/api-reference/openapi.json post /v1/engines/revied/runs","href":"/api-reference/engine-runs/start-a-revied-run"},{"title":"Start a RevBDE run","deprecated":null,"version":null,"sidebarTitle":"RevBDE","openapi":"/api-reference/openapi.json post /v1/engines/revbde/runs","href":"/api-reference/engine-runs/start-a-revbde-run"},{"title":"Start a RevpKa run","deprecated":null,"version":null,"sidebarTitle":"RevpKa","openapi":"/api-reference/openapi.json post /v1/engines/revpka/runs","href":"/api-reference/engine-runs/start-a-revpka-run"},{"title":"Start a RevTaut run","deprecated":null,"version":null,"sidebarTitle":"RevTaut","openapi":"/api-reference/openapi.json post /v1/engines/revtaut/runs","href":"/api-reference/engine-runs/start-a-revtaut-run"},{"title":"Start a RevRelax run","deprecated":null,"version":null,"sidebarTitle":"RevRelax","openapi":"/api-reference/openapi.json post /v1/engines/revrelax/runs","href":"/api-reference/engine-runs/start-a-revrelax-run"},{"title":"Start a RevOrbitals run","deprecated":null,"version":null,"sidebarTitle":"RevOrbitals","openapi":"/api-reference/openapi.json post /v1/engines/revorbitals/runs","href":"/api-reference/engine-runs/start-a-revorbitals-run"},{"title":"Start a RevADMET run","deprecated":null,"version":null,"sidebarTitle":"RevADMET","openapi":"/api-reference/openapi.json post /v1/engines/revadmet/runs","href":"/api-reference/engine-runs/start-a-revadmet-run"},{"title":"Start a RevConformer run","deprecated":null,"version":null,"sidebarTitle":"RevConformer","openapi":"/api-reference/openapi.json post /v1/engines/revconformer/runs","href":"/api-reference/engine-runs/start-a-revconformer-run"},{"title":"Start a RevSol run","deprecated":null,"version":null,"sidebarTitle":"RevSol","openapi":"/api-reference/openapi.json post /v1/engines/revsol/runs","href":"/api-reference/engine-runs/start-a-revsol-run"},{"title":"Start a RevRetro run","deprecated":null,"version":null,"sidebarTitle":"RevRetro","openapi":"/api-reference/openapi.json post /v1/engines/revretro/runs","href":"/api-reference/engine-runs/start-a-revretro-run"},{"title":"Start a RevRedox run","deprecated":null,"version":null,"sidebarTitle":"RevRedox","openapi":"/api-reference/openapi.json post /v1/engines/revredox/runs","href":"/api-reference/engine-runs/start-a-revredox-run"},{"title":"Start a RevGeometry run","deprecated":null,"version":null,"sidebarTitle":"RevGeometry","openapi":"/api-reference/openapi.json post /v1/engines/revgeometry/runs","href":"/api-reference/engine-runs/start-a-revgeometry-run"},{"title":"Start a RevQS run","deprecated":null,"version":null,"sidebarTitle":"RevQS","openapi":"/api-reference/openapi.json post /v1/engines/revqs/runs","href":"/api-reference/engine-runs/start-a-revqs-run"},{"title":"Start a RevSpin run","deprecated":null,"version":null,"sidebarTitle":"RevSpin","openapi":"/api-reference/openapi.json post /v1/engines/revspin/runs","href":"/api-reference/engine-runs/start-a-revspin-run"},{"title":"Start a RevTS run","deprecated":null,"version":null,"sidebarTitle":"RevTS","openapi":"/api-reference/openapi.json post /v1/engines/revts/runs","href":"/api-reference/engine-runs/start-a-revts-run"},{"title":"Start a RevCryptic run","deprecated":null,"version":null,"sidebarTitle":"RevCryptic","openapi":"/api-reference/openapi.json post /v1/engines/revcryptic/runs","href":"/api-reference/engine-runs/start-a-revcryptic-run"},{"title":"Start a Boltz2 run","deprecated":null,"version":null,"sidebarTitle":"Boltz2","openapi":"/api-reference/openapi.json post /v1/engines/boltz2/runs","href":"/api-reference/engine-runs/start-a-boltz2-run"},{"title":"Start a BoltzGen run","deprecated":null,"version":null,"sidebarTitle":"BoltzGen","openapi":"/api-reference/openapi.json post /v1/engines/boltzgen/runs","href":"/api-reference/engine-runs/start-a-boltzgen-run"},{"title":"Start a RevScreen run","deprecated":null,"version":null,"sidebarTitle":"RevScreen","openapi":"/api-reference/openapi.json post /v1/engines/revscreen/runs","href":"/api-reference/engine-runs/start-a-revscreen-run"},{"title":"Start a RevTrain run","deprecated":null,"version":null,"sidebarTitle":"RevTrain","openapi":"/api-reference/openapi.json post /v1/engines/revtrain/runs","href":"/api-reference/engine-runs/start-a-revtrain-run"},{"title":"Start a RevDenovo run","description":"Generates new drug-like molecules with a generative model: from scratch, by adding side groups to a scaffold, by linking two fragments, as variants of given molecules, or as peptides. Can use a model you trained on your own molecules with RevTrain.\n\nStarts a run and returns it with status `queued`; poll GET /v1/runs/{runId} until it finishes. Runs spend credits.\n\n**Limits:** `maxInputMolecules`: 1000, `maxMolecules`: 100000, `maxMol2molMoleculesPerInput`: 1000.\n\nHow the engine works and how to read its results: [RevDenovo documentation](/docs/revdenovo).\n\n**Scope:** `runs:write`.","deprecated":null,"version":null,"sidebarTitle":"RevDenovo","openapi":"/api-reference/openapi.json post /v1/engines/revdenovo/runs","href":"/api-reference/engine-runs/start-a-revdenovo-run"},{"title":"Start a RevOptimization run","deprecated":null,"version":null,"sidebarTitle":"RevOptimization","openapi":"/api-reference/openapi.json post /v1/engines/revoptimization/runs","href":"/api-reference/engine-runs/start-a-revoptimization-run"},{"title":"Start a RevPhore run","description":"Maps the contacts between a protein and the molecule bound to it (hydrogen bonds, charged, stacking and greasy contacts), lists the residues involved and estimates the binding energy. Takes complexes with protein and molecule in one file, up to 50 per run. When a file holds several molecules, name the one to analyse with ligand_residue.\n\nStarts a run and returns it with status `queued`; poll GET /v1/runs/{runId} until it finishes. Runs spend credits.\n\n**Limits:** `maxComplexes`: 50.\n\nHow the engine works and how to read its results: [RevPhore documentation](/docs/revphore).\n\n**Scope:** `runs:write`.","deprecated":null,"version":null,"sidebarTitle":"RevPhore","openapi":"/api-reference/openapi.json post /v1/engines/revphore/runs","href":"/api-reference/engine-runs/start-a-revphore-run"},{"title":"Start a RevFEP run","deprecated":null,"version":null,"sidebarTitle":"RevFEP","openapi":"/api-reference/openapi.json post /v1/engines/revfep/runs","href":"/api-reference/engine-runs/start-a-revfep-run"},{"title":"Start a RevMut-PMX run","deprecated":null,"version":null,"sidebarTitle":"RevMut-PMX","openapi":"/api-reference/openapi.json post /v1/engines/revmut-pmx/runs","href":"/api-reference/engine-runs/start-a-revmut-pmx-run"},{"title":"Start a RevRisk run","deprecated":null,"version":null,"sidebarTitle":"RevRisk","openapi":"/api-reference/openapi.json post /v1/engines/revrisk/runs","href":"/api-reference/engine-runs/start-a-revrisk-run"},{"title":"Start a RevMethyl run","deprecated":null,"version":null,"sidebarTitle":"RevMethyl","openapi":"/api-reference/openapi.json post /v1/engines/revmethyl/runs","href":"/api-reference/engine-runs/start-a-revmethyl-run"},{"title":"Start a RevPocket run","deprecated":null,"version":null,"sidebarTitle":"RevPocket","openapi":"/api-reference/openapi.json post /v1/engines/revpocket/runs","href":"/api-reference/engine-runs/start-a-revpocket-run"},{"title":"Start a RevMD-Aqua run","deprecated":null,"version":null,"sidebarTitle":"RevMD-Aqua","openapi":"/api-reference/openapi.json post /v1/engines/revmd-aqua/runs","href":"/api-reference/engine-runs/start-a-revmd-aqua-run"},{"title":"Start a RevMD-Bind run","deprecated":null,"version":null,"sidebarTitle":"RevMD-Bind","openapi":"/api-reference/openapi.json post /v1/engines/revmd-bind/runs","href":"/api-reference/engine-runs/start-a-revmd-bind-run"},{"title":"Start a RevGRN run","deprecated":null,"version":null,"sidebarTitle":"RevGRN","openapi":"/api-reference/openapi.json post /v1/engines/revgrn/runs","href":"/api-reference/engine-runs/start-a-revgrn-run"},{"title":"Start a RevQSAR run","deprecated":null,"version":null,"sidebarTitle":"RevQSAR","openapi":"/api-reference/openapi.json post /v1/engines/revqsar/runs","href":"/api-reference/engine-runs/start-a-revqsar-run"},{"title":"Start a Rev SingleCell run","deprecated":null,"version":null,"sidebarTitle":"Rev SingleCell","openapi":"/api-reference/openapi.json post /v1/engines/revsinglecell/runs","href":"/api-reference/engine-runs/start-a-rev-singlecell-run"},{"title":"Start a RevFunction run","deprecated":null,"version":null,"sidebarTitle":"RevFunction","openapi":"/api-reference/openapi.json post /v1/engines/revfunction/runs","href":"/api-reference/engine-runs/start-a-revfunction-run"},{"title":"Start a RevMotion run","deprecated":null,"version":null,"sidebarTitle":"RevMotion","openapi":"/api-reference/openapi.json post /v1/engines/revmotion/runs","href":"/api-reference/engine-runs/start-a-revmotion-run"},{"title":"Start a AlphaFold run","deprecated":null,"version":null,"sidebarTitle":"AlphaFold","openapi":"/api-reference/openapi.json post /v1/engines/alphafold/runs","href":"/api-reference/engine-runs/start-a-alphafold-run"},{"title":"Start a OpenFold run","deprecated":null,"version":null,"sidebarTitle":"OpenFold","openapi":"/api-reference/openapi.json post /v1/engines/openfold/runs","href":"/api-reference/engine-runs/start-a-openfold-run"}]},{"group":"Health","pages":[{"title":"Check the API is up","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/health","href":"/api-reference/health/check-the-api-is-up"},{"title":"Check the API is ready","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/health/ready","href":"/api-reference/health/check-the-api-is-ready"}]}]}]},{"tab":"Benchmarks","pages":[{"title":"Benchmarks","href":"/benchmarks/overview"}]},{"tab":"Solutions","pages":[{"title":"Solutions","href":"/solutions/target-identification/Conducting-Multiomics-Analysis-on-Revilico-OS"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/high-throughput-screening"}]},{"tab":"Video Tutorials","pages":[{"title":"Video Tutorials","href":"/tutorials/rev-bind/static-flexible-docking"}]}]},"title":"Start a RevOptimization run - Revilico","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","Page-CBCH2P7b.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","clsx-Cs6nMGht.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-zbf22OZA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C_fs-y5n.js"]}