Researchers: use the website
Find related reactions, check conditions and sources, or describe a dataset for analysis. Website search is ready to use.
Use existing public reactions for literature review, data analysis, model training or experimental reference. The website, software and AI assistants share the same search and build capabilities.
Find related reactions, check conditions and sources, or describe a dataset for analysis. Website search is ready to use.
Query existing records from analysis or lab workflows and download research data. Submit newly collected results through the upload API.
Find reactions and cite sources in a conversation, or propose selection criteria and build from a reviewed plan.
Combine these criteria. MCP and API return the same reaction records, original values and provenance for an external model to read and analyze.
search_reaction_records{
"query": {
"component_constraints": [
{
"role": "reactant",
"structure": "c1ccccc1",
"mode": "substructure"
}
],
"condition_filters": [
{
"field": "temperature_C",
"operator": "range",
"minimum": 20,
"maximum": 80
}
],
"page_size": 5
}
}Numeric queries use field units, such as °C, h and %. Recognized source units are converted for search; unknown units cannot satisfy ranges. Room temperature is excluded from numeric ranges unless explicitly enabled.
Search covers the latest published version of each public dataset with a ready index. Private, draft and offline data are excluded. Verify multi-step procedures and measurement scope in the full record; arbitrary nested stage conditions and arbitrary reaction SMARTS are not supported; net bond changes require source atom maps. Empty results may also reflect incomplete indexing.
After configuring the iSynth service and credential, an assistant can discover datasets and fields, search, and retrieve original records with sources. Use reactions:read permission. No iSynth model configuration, upload or build is required.
Add the service URL and Authorization header in a client that supports remote MCP. Configuration formats vary; a common mcpServers example is shown below.
https://your-isynth-host/api/mcp{
"mcpServers": {
"isynth": {
"url": "https://your-isynth-host/api/mcp",
"headers": {
"Authorization": "Bearer <ISYNTH_AUTOMATION_TOKEN>"
}
}
}
}Replace the placeholder with an iSynth MCP credential, not a model API key. Existing credentials cannot be retrieved; revoke and replace a lost one.
get_search_schema → get_field_catalog search_reaction_records → get_reaction
An external assistant can compose search criteria directly. plan_dataset uses the model configured in your iSynth account; review its criteria, fields and unresolved requirements before calling build_dataset.
JSONL is an exchange format with one reaction per line. The platform stores complete JSONB records in PostgreSQL alongside material, stage, measurement and molecular structure indexes, and retains original files separately. Searches use database filtering and structure matching, not line-by-line scans of download files.
Once parsed and publicly released, a new reaction can be found using existing structure, temperature and yield filters. Search fields come from the contract and parameter registry, not existing reaction names. A new condition type needs registration; a new record does not need a search-code change.
Custom parameters are currently filtered in scoped stage or material JSONB. Registration does not automatically create a dedicated index for every value. Frequently queried parameters can receive rebuildable indexes after profiling, without changing source data.
For C–N cleavage, add a bond change under Structures & groups, or use the query below through MCP or the API. Choose breaking, formation or bond-order change and combine it with structures and experimental conditions.
{
"bond_changes": [
{
"change": "broken",
"elements": [
"C",
"N"
]
}
]
}Connectivity is compared using consistent atom-map numbers in source SMILES, only for atoms present on both sides. Missing byproducts, absent maps or conflicting maps do not establish cleavage. Results include bond_change_coverage. This is net input-to-final-product change, not a mechanism or every intermediate step of a one-pot reaction.
Additional conditions are stored in parameters. Registered parameters support numeric, text and presence filters. Use get_parameter_catalog for IDs, units and operators. Conditions in one group match the same stage, keeping steps separate.
Uploading custom fields does not automatically add them to the dropdown. Registration defines the English ID, meaning, quantity/text/boolean type and units. The page displays reviewed Chinese or English labels; the ID stays the same in either language.
A quantity can hold a point, interval or one-sided bound, according to the source; these do not require separate parameter registrations. Records use lower/upper; query bounds use minimum/maximum.
| Source | Parameter value |
|---|---|
| 30 Hz | {"value":30,"unit":"Hz"} |
| 20–40 Hz | {"lower":20,"upper":40,"unit":"Hz"} |
| <30 Hz | {"value":30,"unit":"Hz","qualifier":"<"} |
For quantities, equals uses value, such as 30 Hz. A range uses minimum and maximum; either bound may be omitted. Ranges match overlaps: 20–40 Hz matches 30 Hz or 35–50 Hz. Equals 30 Hz does not match 20–40 Hz, approximately 30 Hz or less than 30 Hz. Text uses equals or contains; booleans use true or false.
{
"parameter_filters": [
{
"parameter": "conditions.milling_frequency",
"operator": "equals",
"value": 30
}
]
}{
"parameter_filters": [
{
"parameter": "conditions.milling_frequency",
"operator": "range",
"minimum": 20,
"maximum": 40
}
]
}This example filters milling frequency from 20 to 40 Hz. Unregistered values remain in complete records. Maintainers review new registrations; compatible existing records need no re-upload. Check parameter_coverage for scientific-fact availability.
| Field | Purpose | Later stages |
|---|---|---|
| parameters | Additional structured parameters, such as milling ball diameter. Contributors can add names and values directly. | Inherit or update by parameter name; null clears that parameter. |
For example, parameters.milling_ball_diameter: {value: 0.5, unit: "cm"} matches a 4–6 mm filter. New records use parameters throughout; registered values can be queried by their declared type and unit.
null stops carrying forward a known value; it does not mean zero or imply that the reaction stopped. Omission means no change was reported. Registration specifies a stable ID, scientific meaning, type, path, unit conversions and example for maintainer review and release. There is currently no public self-service registration endpoint.
python isynth_mcp_client.py parameters python isynth_mcp_client.py validate parameter-upload.json python isynth_mcp_client.py upload parameter-upload.json # After parsing, review and publication: python isynth_mcp_client.py search parameter-query.jsonView the parameter registry
Use reactions:read to query existing reactions. Add construction:write for planning, building and downloading build results. API and MCP share these permissions.
| Task | HTTP API | MCP |
|---|---|---|
| Search schema and examples | GET /api/automation/v1/search/schema | get_search_schema |
| Parameter registry | GET /api/reactions/parameter-catalog | get_parameter_catalog |
| Discover datasets | GET /api/automation/v1/datasets | list_reaction_datasets |
| Search reactions | POST /api/automation/v1/search | search_reaction_records |
| Read a record | GET /api/automation/v1/reactions/{record_id} | get_reaction |
| Draft a plan | POST /api/automation/v1/plan | plan_dataset |
| Build and inspect results | POST /api/automation/v1/runs · GET /api/automation/v1/runs/{run_id} | build_dataset · get_build |
To submit new laboratory results, see the software and AI upload guide.