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: 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