Chemaxon Reactor API

The Reactor API from Chemaxon — 2 operation(s) for reactor.

GitHub OpenAPI

Operations 2

POST /rest-v1/reactor/react Reacts lists of reactants in a specified reaction #
POST /rest-v1/reactor/react/combinatorial Reacts lists of reactants in a specified reaction in combinatorial mode #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/chemaxon:chemaxon-reactor-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

chemaxon-reactor-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Chemaxon Reactor API
  version: 26.1.3
  description: 'Operations tagged Reactor across 2 of this provider''s published API definitions: chemaxon-reactor-openapi.json, chemaxon-reactor-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://jchem-microservices.chemaxon.com/jws-reactor
tags:
- name: Reactor
paths:
  /rest-v1/reactor/react:
    post:
      operationId: react
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReactionRequestReactRequestOptions'
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReactorResponse'
          description: Reactants reacted successfully.
      summary: Reacts lists of reactants in a specified reaction
      tags:
      - Reactor
    servers:
    - url: https://jchem-microservices.chemaxon.com/jws-reactor
  /rest-v1/reactor/react/combinatorial:
    post:
      operationId: combinatorialReact
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReactionRequestCombinatorialRequestOptions'
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReactorResponse'
          description: Reactants reacted successfully.
      summary: Reacts lists of reactants in a specified reaction in combinatorial mode
      tags:
      - Reactor
    servers:
    - url: https://jchem-microservices.chemaxon.com/jws-reactor
components:
  schemas:
    RequestCopyPropertyByReactant:
      properties:
        copyAs:
          type: string
          description: The selected property can be copied with a different name to the output.
          example: NewPropertyName
        copyFrom:
          type: integer
          format: int32
          description: Select the reactant that has the property that needs to be copied.
          example: 1
        propertyName:
          type: string
          description: The property of the selected reactant to be copied to the output.
          example: PropertyName
      required:
      - copyFrom
      - propertyName
    RequestSynthesisCode:
      description: Synthesis code generator.
      properties:
        fieldNameInOutputSource:
          type: string
          description: The synthesis code will be written to this field of the output file.
          example: Synthesis Code Output Field Name
        fieldNameInReactants:
          type: array
          description: List of property fields of reactants.
          example:
          - ''
          - ''
          items:
            type: string
        fieldNameInSchema:
          type: string
          description: A property field of the reaction.
          example: Name
      required:
      - fieldNameInOutputSource
      - fieldNameInReactants
      - fieldNameInSchema
    ReactionRequestCombinatorialRequestOptions:
      properties:
        exclude:
          type: string
          description: Exclude rule. Setting this option overwrites the rule specified in the EXCLUDE RDF/ MRV tag on the reaction molecule.
          example: null
        listOfReactants:
          type: array
          description: The list of reactant lists.
          example:
          - - id: '11'
              structure: CNC
            - id: '12'
              structure: C1COCCN1
            - id: '13'
              structure: NC1=CC=CC=C1
            - id: '14'
              structure: CC(N)=O
            - id: '15'
              structure: CN1CCC2=C(C1)C=CC=C2
            - id: '16'
              structure: NC1=NC=CC2=C1CCNC2
          - - id: '21'
              structure: S(=O)(=O)(C)([Cl])
            - id: '22'
              structure: ClS(=O)(=O)C1=CC=CC=C1
            - id: '23'
              structure: S(=O)(=O)(C)([Cl])
            - id: '24'
              structure: ClS(=O)(=O)C1=CC=CC=C1
            - id: '25'
              structure: CS(Cl)(=O)=O
            - id: '26'
              structure: ClS(=O)(=O)C1CC1
          items:
            type: array
            items:
              $ref: '#/components/schemas/IdStructure'
        options:
          $ref: '#/components/schemas/CombinatorialRequestOptions'
        reaction:
          type: string
          description: The reaction with reaction rules set in RDF/MRV tags or specified in a string.
          example: '[#7:1][H:2].[#6:4][S:3]([#7,#9,#17,#35,#53:7])(=[O:5])=[O:6]>>[#6:4][S:3]([#7:1])(=[O:6])=[O:5]'
        reactivity:
          type: string
          description: Reactivity rule. Setting this option overwrites the rule specified in the REACTIVITY RDF/ MRV tag on the reaction molecule.
          example: (match(ratom(1), "[#6:1][NX3;!$(NC~[!#1!#6]);!$(N[!#1!#6]):2]", 2) OR match (ratom(1), "[H][NX3:1]([H])[H]")) AND match(ratom(3), "[#6][S:3]([X:7])(=[O:5])=[O:6]", 1)
        selectivity:
          type: string
          description: Selectivity rule. Setting this option overwrites the rule specified in the SELECTIVITY RDF/ MRV tag on the reaction molecule.
          example: -nucleophilicity(ratom(1))
        standardization:
          type: string
          description: Reactant standardization config. Setting this option overwrites the values specified in the STANDARDIZATION RDF/ MRV tag on the reaction molecule.
          example: null
        tolerance:
          type: array
          description: Tolerance values for selectivity. Setting this option overwrites the values specified in the TOLERANCE RDF/ MRV tag on the reaction molecule.
          example:
          - 0.0001
          items:
            type: number
            format: double
      required:
      - listOfReactants
      - reaction
    ReactRequestOptions:
      description: Options to set for reactor.
      properties:
        autoDetectReactantOrder:
          type: boolean
          default: true
          description: 'If switched on, the order of reactant lists is checked and automatically fixed based on how much they match the reactants in the schema. Switching it off results in better performance. '
        combinationMode:
          type: string
          default: sequential
          description: Processing mode of reactants, it can be sequential or combinatorial.
          enum:
          - combinatorial
          - sequential
        copyAllReactantProperties:
          type: boolean
          default: false
          description: If true, then copies all reactant properties to output products/reactions.
        copyPropertyByReactant:
          type: array
          description: Copies specified properties of specified reactants to output structure.
          items:
            $ref: '#/components/schemas/RequestCopyPropertyByReactant'
        copyPropertyWithPattern:
          type: array
          description: 'Copies properties specified by patterns to output structure. The individual property field can be defined here according to the general pattern:


            <propertyName>=[<text>*#{<moleculeID>.<propertyID>}]*<text>*'
          example:
          - 'My Property=Name list: #{R1.NAME}, #{R2.NAME}'
          items:
            type: string
        generateMinorProduct:
          type: boolean
          default: false
          description: If true, then products lists are not filtered out by the selectivity rule, but they are tagged as minor products. The option has NO effect in fused reaction output mode.
        ignoreErrors:
          type: boolean
          deprecated: true
          description: Deprecated. Not used anymore.
          writeOnly: true
        ignoreReactivity:
          type: boolean
          deprecated: true
          description: Deprecated as the name is misleading. Ignores both the reactivity and exclude rules. Use "ignoreReactivityAndExclude" instead.
          writeOnly: true
        ignoreReactivityAndExclude:
          type: boolean
          default: false
          description: If true, then ignores reactivity and exclude rules.
        ignoreSelectivity:
          type: boolean
          default: false
          description: If true, then ignores selectivity rule.
        ignoreStandardization:
          type: boolean
          default: false
          description: If true, then standardizes defined on the molecules won't be used.
        ignoreTolerance:
          type: boolean
          default: false
          description: If true, then ignores selectivity tolerance.
        isReversed:
          type: boolean
          deprecated: true
          description: Deprecated. Use "reversed" instead.
          writeOnly: true
        mappingStyle:
          type: string
          default: none
          description: 'The mapping style of the result: none, changing, complete or matching. This option works as expected ONLY in case of reaction.'
          enum:
          - none
          - changing
          - complete
          - matching
        markReactionCenter:
          type: boolean
          default: false
          description: If true, bonds in reaction are marked if they were created, broken or changed during the reaction. ONLY works for reaction result type!
        outputFormat:
          type: string
          description: The output format and options.
          example: mrv
        productIndexes:
          type: array
          description: The product indexes (1-based) to be returned.
          example:
          - 1
          items:
            type: integer
            format: int32
        ratio:
          type: array
          description: Ratio of the reactans. The length of the list should be equal to the number of reactants in the reaction. If there are more than one reactants in the reaction, then one of the reactant ratios should be 1.
          example:
          - 1
          - 1
          items:
            type: integer
            format: int32
        reactantInputFormat:
          type: string
          description: The input format and options for reactants.
          example: smiles
        resultType:
          type: string
          default: product
          description: The returned type, like product, reaction or fused_reaction.
          enum:
          - product
          - reaction
          - fused_reaction
        reversed:
          type: boolean
          default: false
          description: If true, the reaction is to be processed in reversed direction, that is, the product and reactant sides are swapped.
        showUnsuccessfulReactions:
          type: boolean
          default: false
          description: If true, then unsuccessful reactions will be shown with empty products side in the output. This options works ONLY in case of reaction and fused reaction result type.
        synthesisCode:
          $ref: '#/components/schemas/RequestSynthesisCode'
        unambiguousOnly:
          type: boolean
          default: false
          description: If true, it processes unambiguous reactions only, where each reactant has a single reaction site.
    ReactorResponse:
      properties:
        reactantIds:
          type: array
          description: Ids of the input reactants of the reaction
          example:
          - '1'
          - '2'
          items:
            type: string
        result:
          type: string
          description: The result of the reaction
          example: OC1CCCC=C1
    IdStructure:
      properties:
        id:
          type: string
          description: The structure id.
          example: '"1"'
        structure:
          type: string
          description: The input structure.
          example: O=C1CCCC=C1
      required:
      - structure
    CombinatorialRequestOptions:
      description: Options to set for reactor.
      properties:
        copyAllReactantProperties:
          type: boolean
          default: false
          description: If true, then copies all reactant properties to output products/reactions.
        copyPropertyByReactant:
          type: array
          description: Copies specified properties of specified reactants to output structure.
          items:
            $ref: '#/components/schemas/RequestCopyPropertyByReactant'
        copyPropertyWithPattern:
          type: array
          description: 'Copies properties specified by patterns to output structure. The individual property field can be defined here according to the general pattern:


            <propertyName>=[<text>*#{<moleculeID>.<propertyID>}]*<text>*'
          example:
          - 'My Property=Name list: #{R1.NAME}, #{R2.NAME}'
          items:
            type: string
        generateMinorProduct:
          type: boolean
          default: false
          description: If true, then products lists are not filtered out by the selectivity rule, but they are tagged as minor products. The option has NO effect in fused reaction output mode.
        ignoreErrors:
          type: boolean
          deprecated: true
          description: Deprecated. Not used anymore.
          writeOnly: true
        ignoreReactivity:
          type: boolean
          deprecated: true
          description: Deprecated as the name is misleading. Ignores both the reactivity and exclude rules. Use "ignoreReactivityAndExclude" instead.
          writeOnly: true
        ignoreReactivityAndExclude:
          type: boolean
          default: false
          description: If true, then ignores reactivity and exclude rules.
        ignoreSelectivity:
          type: boolean
          default: false
          description: If true, then ignores selectivity rule.
        ignoreStandardization:
          type: boolean
          default: false
          description: If true, then standardizes defined on the molecules won't be used.
        ignoreTolerance:
          type: boolean
          default: false
          description: If true, then ignores selectivity tolerance.
        isReversed:
          type: boolean
          deprecated: true
          description: Deprecated. Use "reversed" instead.
          writeOnly: true
        mappingStyle:
          type: string
          default: none
          description: 'The mapping style of the result: none, changing, complete or matching. This option works as expected ONLY in case of reaction.'
          enum:
          - none
          - changing
          - complete
          - matching
        markReactionCenter:
          type: boolean
          default: false
          description: If true, bonds in reaction are marked if they were created, broken or changed during the reaction. ONLY works for reaction result type!
        outputFormat:
          type: string
          description: The output format and options.
          example: mrv
        productIndexes:
          type: array
          description: The product indexes (1-based) to be returned.
          example:
          - 1
          items:
            type: integer
            format: int32
        ratio:
          type: array
          description: Ratio of the reactans. The length of the list should be equal to the number of reactants in the reaction. If there are more than one reactants in the reaction, then one of the reactant ratios should be 1.
          example:
          - 1
          - 1
          items:
            type: integer
            format: int32
        reactantInputFormat:
          type: string
          description: The input format and options for reactants.
          example: smiles
        resultType:
          type: string
          default: product
          description: The returned type, like product, reaction or fused_reaction.
          enum:
          - product
          - reaction
          - fused_reaction
        reversed:
          type: boolean
          default: false
          description: If true, the reaction is to be processed in reversed direction, that is, the product and reactant sides are swapped.
        showUnsuccessfulReactions:
          type: boolean
          default: false
          description: If true, then unsuccessful reactions will be shown with empty products side in the output. This options works ONLY in case of reaction and fused reaction result type.
        synthesisCode:
          $ref: '#/components/schemas/RequestSynthesisCode'
        unambiguousOnly:
          type: boolean
          default: false
          description: If true, it processes unambiguous reactions only, where each reactant has a single reaction site.
    ReactionRequestReactRequestOptions:
      properties:
        exclude:
          type: string
          description: Exclude rule. Setting this option overwrites the rule specified in the EXCLUDE RDF/ MRV tag on the reaction molecule.
          example: null
        listOfReactants:
          type: array
          description: The list of reactant lists.
          example:
          - - id: '11'
              structure: CNC
            - id: '12'
              structure: C1COCCN1
            - id: '13'
              structure: NC1=CC=CC=C1
            - id: '14'
              structure: CC(N)=O
            - id: '15'
              structure: CN1CCC2=C(C1)C=CC=C2
            - id: '16'
              structure: NC1=NC=CC2=C1CCNC2
          - - id: '21'
              structure: S(=O)(=O)(C)([Cl])
            - id: '22'
              structure: ClS(=O)(=O)C1=CC=CC=C1
            - id: '23'
              structure: S(=O)(=O)(C)([Cl])
            - id: '24'
              structure: ClS(=O)(=O)C1=CC=CC=C1
            - id: '25'
              structure: CS(Cl)(=O)=O
            - id: '26'
              structure: ClS(=O)(=O)C1CC1
          items:
            type: array
            items:
              $ref: '#/components/schemas/IdStructure'
        options:
          $ref: '#/components/schemas/ReactRequestOptions'
        reaction:
          type: string
          description: The reaction with reaction rules set in RDF/MRV tags or specified in a string.
          example: '[#7:1][H:2].[#6:4][S:3]([#7,#9,#17,#35,#53:7])(=[O:5])=[O:6]>>[#6:4][S:3]([#7:1])(=[O:6])=[O:5]'
        reactivity:
          type: string
          description: Reactivity rule. Setting this option overwrites the rule specified in the REACTIVITY RDF/ MRV tag on the reaction molecule.
          example: (match(ratom(1), "[#6:1][NX3;!$(NC~[!#1!#6]);!$(N[!#1!#6]):2]", 2) OR match (ratom(1), "[H][NX3:1]([H])[H]")) AND match(ratom(3), "[#6][S:3]([X:7])(=[O:5])=[O:6]", 1)
        selectivity:
          type: string
          description: Selectivity rule. Setting this option overwrites the rule specified in the SELECTIVITY RDF/ MRV tag on the reaction molecule.
          example: -nucleophilicity(ratom(1))
        standardization:
          type: string
          description: Reactant standardization config. Setting this option overwrites the values specified in the STANDARDIZATION RDF/ MRV tag on the reaction molecule.
          example: null
        tolerance:
          type: array
          description: Tolerance values for selectivity. Setting this option overwrites the values specified in the TOLERANCE RDF/ MRV tag on the reaction molecule.
          example:
          - 0.0001
          items:
            type: number
            format: double
      required:
      - listOfReactants
      - reaction
x-refined-from:
- chemaxon-reactor-openapi.json
- chemaxon-reactor-openapi.yml