changedInput schema / properties / assay_type / description
Previous value: -"Restrict to an assay type code: \"B\" (binding), \"F\" (functional), \"A\" (ADMET), \"T\" (toxicity)."New value: +"Restrict to an assay type code: \"B\" (binding), \"F\" (functional), \"A\" (ADMET), \"T\" (toxicity), \"P\" (physicochemical), \"U\" (unassigned)."
addedInput schema / properties / assay_type / pattern
Added value: +"^\\s*(?:(?:[Bb]|[Bb][Ii][Nn][Dd][Ii][Nn][Gg]|[Ff]|[Ff][Uu][Nn][Cc][Tt][Ii][Oo][Nn][Aa][Ll]|[Aa]|[Aa][Dd][Mm][Ee]|[Aa][Dd][Mm][Ee][Tt]|[Tt]|[Tt][Oo][Xx][Ii][Cc][Ii][Tt][Yy]|[Pp]|[Pp][Hh][Yy][Ss][Ii][Cc][Oo][Cc][Hh][Ee][Mm][Ii][Cc][Aa][Ll]|[Uu]|[Uu][Nn][Aa][Ss][Ss][Ii][Gg][Nn][Ee][Dd]|[Uu][Nn][Cc][Ll][Aa][Ss][Ss][Ii][Ff][Ii][Ee][Dd])\\s*)?$"
changedInput schema / properties / cursor / description
Previous value: -"Opaque continuation token from a previous call's nextCursor — resumes the view where that page ended. Omit for the first page. Re-send the same molecule_chembl_id/target_chembl_id, filters, and potency_view that minted it (only limit may change; it sets this page's size); redeeming it against different filters walks a different result set. A cursor page is returned inline and never staged, even with the canvas enabled."New value: +"Opaque continuation token from a previous call's nextCursor — resumes the view where that page ended. Omit for the first page. Re-send the same molecule_chembl_id/target_chembl_id, include_alternate_forms, filters, and potency_view that minted it (only limit may change; it sets this page's size); redeeming it against different filters walks a different result set. A cursor page is returned inline and never staged, even with the canvas enabled."
addedInput schema / properties / include_alternate_forms
Added value: +{
+ "default": false,
+ "description": "Widen molecule_chembl_id to its whole family: the parent it belongs to and every salt and other alternate form ChEMBL files under it (a drug's measurements are often split across them). A salt's ID reaches its parent's family; each row keeps the molecule_chembl_id of the form it was measured on. Requires molecule_chembl_id; combines with target_chembl_id and every filter. Defaults to false: that one form's measurements only.",
+ "type": "boolean"
+}
changedInput schema / properties / limit / description
Previous value: -"Maximum rows in the inline preview or cursor page. Defaults to the server default (25). With the canvas enabled, a call without cursor still spills the full set to the canvas; when a call stages nothing, nextCursor reaches the rows past limit."New value: +"Maximum rows in the inline preview or cursor page, up to 1000 — a larger value is served at 1000, with a notice saying so. Defaults to the server default (25). With the canvas enabled, a view that spills still stages in full whatever the limit; when a call stages nothing, nextCursor reaches the rows past limit."
changedInput schema / properties / limit / maximum
Previous value: -1000New value: +10000
changedInput schema / properties / standard_type / description
Previous value: -"Restrict to one measurement type, e.g. \"IC50\", \"Ki\", \"EC50\". Set this to compare potencies validly."New value: +"Restrict to one measurement type, e.g. \"IC50\", \"Ki\", \"EC50\". Matched exactly, case included — ChEMBL records distinct types that differ only by case, such as \"Kd\" and \"KD\". Set this to compare potencies validly."
addedInput schema / properties / target_chembl_id / pattern
Added value: +"^\\s*(?:[Cc][Hh][Ee][Mm][Bb][Ll]\\d+\\s*)?$"
addedInput schema / properties / variant
Added value: +{
+ "description": "Restrict to one assay variant of the target. \"wild_type\" keeps the measurements that record no variant. Any other value keeps those whose recorded assay_variant_mutation equals it whole, case-insensitively, with spaces beside \",\" or \"/\" ignored: a substitution (\"T315I\"), a deletion (\"F508del\"), a multi-mutant in the order ChEMBL records it (\"L858R,T790M\"; \"T790M,L858R\" matches nothing, and \"L858R\" alone matches only the single mutant), or \"UNDEFINED MUTATION\" for an unspecified mutant. Read assay_variant_mutation on unfiltered rows for the recorded strings.",
+ "type": "string"
+}
addedOutput schema / properties / activities / items / properties / activity_comment
Added value: +{
+ "description": "Depositor or curator comment on the result, free text such as \"Not Active\", \"Active\", or \"Inconclusive\" — often the only result when standard_value is null. Null when absent.",
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / activities / items / properties / assay_variant_accession
Added value: +{
+ "description": "UniProt accession of the variant protein, which can differ from the target's own. Null when no variant is recorded, and for UNDEFINED MUTATION.",
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / activities / items / properties / assay_variant_mutation
Added value: +{
+ "description": "Variant of the target protein the assay measured, as ChEMBL records it: a substitution (\"T315I\"), a deletion (\"F508del\"), several joined by \",\" or \"/\" (\"L858R,T790M\"), or \"UNDEFINED MUTATION\" for an unspecified mutant. Null when no variant is recorded.",
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / activities / items / properties / data_validity_comment
Added value: +{
+ "description": "ChEMBL data-validity annotation, e.g. \"Outside typical range\", \"Potential transcription error\", \"Non standard unit for type\", or \"Manually validated\" (a value curators confirmed). Null when unannotated.",
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / activities / items / properties / document_chembl_id
Added value: +{
+ "description": "ChEMBL document ID of the publication or deposited dataset the measurement comes from — cite it. Null when absent.",
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / activities / items / properties / document_year
Added value: +{
+ "description": "Publication year of the source document. Null when it has none, as for deposited datasets.",
+ "type": [
+ "number",
+ "null"
+ ]
+}
changedOutput schema / properties / activities / items / required
Previous value: -[
- "activity_id",
- "molecule_chembl_id",
- "molecule_pref_name",
- "target_chembl_id",
- "target_pref_name",
- "target_organism",
- "assay_chembl_id",
- "assay_type",
- "assay_description",
- "standard_type",
- "standard_relation",
- "standard_value",
- "standard_units",
- "pchembl_value",
- "type",
- "value",
- "units",
- "relation"
-]New value: +[
+ "activity_id",
+ "molecule_chembl_id",
+ "molecule_pref_name",
+ "target_chembl_id",
+ "target_pref_name",
+ "target_organism",
+ "assay_chembl_id",
+ "assay_type",
+ "assay_description",
+ "standard_type",
+ "standard_relation",
+ "standard_value",
+ "standard_units",
+ "pchembl_value",
+ "type",
+ "value",
+ "units",
+ "relation",
+ "activity_comment",
+ "data_validity_comment",
+ "assay_variant_mutation",
+ "assay_variant_accession",
+ "document_chembl_id",
+ "document_year"
+]
changedOutput schema / properties / appliedFilters / properties / scope / description
Previous value: -"Which IDs scoped the query: the molecule, the target, or both when it narrowed to a compound–target pair."New value: +"Which IDs scoped the query: the molecule, the target, or both when it narrowed to a compound–target pair. Under include_alternate_forms the molecule side names the family parent whose forms were read."
addedOutput schema / properties / appliedFilters / properties / variant
Added value: +{
+ "description": "The variant filter applied — \"wild_type\", or the variant string matched, spaces beside separators removed — or null.",
+ "type": [
+ "string",
+ "null"
+ ]
+}
changedOutput schema / properties / appliedFilters / required
Previous value: -[
- "scope",
- "standard_type",
- "pchembl_value_min",
- "assay_type",
- "organism"
-]New value: +[
+ "scope",
+ "standard_type",
+ "pchembl_value_min",
+ "assay_type",
+ "organism",
+ "variant"
+]
changedOutput schema / properties / canvasDisabled / description
Previous value: -"True when CANVAS_PROVIDER_TYPE is not duckdb, so large sets could not spill — the inline rows are a capped preview, not the full set."New value: +"True when the server runs with the canvas off (CANVAS_PROVIDER_TYPE=none), so large sets could not spill — the inline rows are one page of the view, not the full set, and nextCursor continues it."
changedOutput schema / properties / error / properties / data / properties / reason / description
Previous value: -"Machine-readable failure mode. Declared by this tool: `not_found`: ChEMBL has no record for the requested identifier or structure. `rate_limited`: ChEMBL rate-limits the upstream request. `missing_filter`: Neither molecule_chembl_id nor target_chembl_id was supplied, so the query had nothing to scope to. `contradictory_potency_filter`: pchembl_value_min was supplied alongside potency_view \"null_potency\", whose rows have no pchembl_value for the floor to compare against — the combination can only ever match zero measurements. `canvas_capacity_exhausted`: The view spilled with no canvas_id supplied, and the tenant already holds as many canvases as CANVAS_MAX_CANVASES_PER_TENANT allows, so none could be minted to stage it. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `not_found`: ChEMBL has no record for the requested identifier or structure. `rate_limited`: ChEMBL rate-limits the upstream request. `missing_filter`: Neither molecule_chembl_id nor target_chembl_id was supplied, so the query had nothing to scope to. `not_a_chembl_id`: molecule_chembl_id is not a ChEMBL ID like CHEMBL941, so it could match no measurement. `alternate_forms_without_molecule`: include_alternate_forms was set without molecule_chembl_id, so there was no molecule whose family to read. `contradictory_potency_filter`: pchembl_value_min was supplied alongside potency_view \"null_potency\", whose rows have no pchembl_value for the floor to compare against — the combination can only ever match zero measurements. `canvas_capacity_exhausted`: The view spilled with no canvas_id supplied, and the tenant already holds as many canvases as CANVAS_MAX_CANVASES_PER_TENANT allows, so none could be minted to stage it. Other values are possible when a failure originates below the handler."
changedOutput schema / properties / error / properties / data / properties / reason / examples
Previous value: -[
- "not_found",
- "rate_limited",
- "missing_filter",
- "contradictory_potency_filter",
- "canvas_capacity_exhausted"
-]New value: +[
+ "not_found",
+ "rate_limited",
+ "missing_filter",
+ "not_a_chembl_id",
+ "alternate_forms_without_molecule",
+ "contradictory_potency_filter",
+ "canvas_capacity_exhausted"
+]
changedOutput schema / properties / notice / description
Previous value: -"Guidance when no measurements matched, how to SQL the staged set, or which rows of the view an inline page holds and how to continue it."New value: +"Guidance when no measurements matched (naming the spelling ChEMBL records when the standard_type sent differs from it only by case), how to SQL the staged set, or which rows of the view an inline page holds and how to continue it — led by the disclosure that a limit above the maximum was served at the maximum."