# Retrosynthesis Engines

Pending AI offers a novel Deep-Learning MCTS **Retrosynthesis** platform for synthetic planning. An *engine* provides the underlying architecture and functional procedure used for building complex multi-step synthetic routes. When submitting a query molecule for assessing synthetic accessibility, an engine must be specified using its respective `id` field.

**Considerations**

* An engine requires significant computational resources affected by different parameters when completing a Retrosynthesis job. Large screening campaigns are queued onto identical engine instances, potentially leading to longer wait times for screening results.
* Engine selection can significantly impact the diversity of the generated synthetic routes. Try different engines to yield varied synthetic routes

See [here](https://docs.pending.ai/capabilities/synthetic-accessibility) for more information on our **Retrosynthesis** capability.

## List engines

> Retrieve a list of engines.

```json
{"openapi":"3.1.0","info":{"title":"PAI Retro","version":"v2"},"tags":[{"description":"\nPending AI offers a novel Deep-Learning MCTS **Retrosynthesis** platform for synthetic \nplanning. An *engine* provides the underlying architecture and functional procedure \nused for building complex multi-step synthetic routes. When submitting a query molecule\nfor assessing synthetic accessibility, an engine must be specified using its respective \n`id` field.\n\n**Considerations**\n\n- An engine requires significant computational resources affected by different parameters\nwhen completing a Retrosynthesis job. Large screening campaigns are queued onto identical\nengine instances, potentially leading to longer wait times for screening results.\n- Engine selection can significantly impact the diversity of the generated synthetic \nroutes. Try different engines to yield varied synthetic routes\n\nSee [here](https://docs.pending.ai/capabilities/synthetic-accessibility) \nfor more information on our **Retrosynthesis** capability.\n","name":"Engines"}],"servers":[{"description":"Pending AI Server","url":"https://api.pending.ai/retro/v2","variables":{"environment":{"default":"api","description":"The environment to use for the API.","enum":["api","api.dev","api.stage"]}}}],"security":[{"oauth":[""],"token":[""]}],"components":{"securitySchemes":{"oauth":{"description":"OAuth2 authentication.","flows":{"implicit":{"authorizationUrl":"https://auth.pending.ai/authorize","refreshUrl":"https://auth.pending.ai/oauth/token","scopes":{}}},"type":"oauth2"}},"schemas":{"EngineResource":{"description":"Engines are used when performing a retrosynthesis plan for a target\nmolecule. Engines determine the Deep-Learning infrastructure used\nfor building retrosynthetic routes and the specific algorithms\nemployed during the procedure.\n\nSince time requirements can vary for each molecule, consider that\nthe wait time for a job can depend on other requests for a\nparticular engine.","properties":{"id":{"description":"The unique resource identifier.","pattern":"^\\w+$","title":"Resource Id","type":"string"},"last_alive":{"description":"The lastest time the engine was used.","format":"date-time","title":"Last Alive","type":"string"},"name":{"description":"Name of the engine.","title":"Name","type":"string"},"object":{"description":"The type of resource.","pattern":"^\\w+$","title":"Resource Object","type":"string"}},"required":["id","object","name","last_alive"],"title":"Engine","type":"object"},"RequestValidationErrorContent":{"description":"A request or response encountered a validation error when enforcing field constraints. Refer to `error.details` to resolve individual errors. For any unexpected validation errors, contact Pending AI support via email at [support@pending.ai](mailto:support@pending.ai).","properties":{"error":{"$ref":"#/components/schemas/RequestValidationErrorInfo","default":null},"request_id":{"default":null,"description":"A unique ID given to each request.","title":"Request ID","type":"string"},"status":{"default":"error","description":"Status of the request.","enum":["error","success"],"title":"Request Status","type":"string"},"status_code":{"description":"Response status code received for the request.","title":"Status Code","type":"integer"}},"required":["status_code"],"title":"Request Validation Error","type":"object"},"RequestValidationErrorInfo":{"description":"Response content containing extra information for an error.","properties":{"code":{"description":"Short identifier code to classify the error.","title":"Code","type":"string"},"details":{"default":null,"description":"Validation errors with extra information.","items":{"$ref":"#/components/schemas/RequestValidationErrorInfoDetails"},"title":"Detailed Message","type":"array"},"message":{"default":null,"description":"Message associated with the encountered error.","title":"Message"},"path":{"description":"Request path for where the error occurred.","title":"Request Path","type":"string"},"timestamp":{"description":"Timestamp of when the error occurred.","format":"date-time","title":"Timestamp","type":"string"}},"required":["code","path"],"title":"Error Information","type":"object"},"RequestValidationErrorInfoDetails":{"description":"An individual validation error with extra information.","properties":{"error_type":{"default":null,"description":"A description of the validation constraint that was broken.","title":"Constraint Type"},"location":{"default":null,"description":"One or more parameters for where the validation failed.","title":"Validation Location"}},"title":"Detailed Error Content","type":"object"}}},"paths":{"/engines":{"get":{"description":"Retrieve a list of engines.","operationId":"list_engines_engines_get","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/EngineResource"},"title":"Return","type":"array"}}},"description":"Returns a list of engines."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestValidationErrorContent"}}},"description":"Request validation failed."}},"summary":"List engines","tags":["Engines"]}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.pending.ai/api-reference/pai-retro/retrosynthesis-engines.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
