openapi: 3.0.0
servers:
  - description: NanoReg2 database
    url: https://api.ideaconsult.net/enanomapper
  - description: caLIBRAte database
    url: https://api.ideaconsult.net/enanomapper
  - description: GRACIOUS database
    url: https://api.ideaconsult.net/enanomapper
  - description: PATROLS database
    url: https://api.ideaconsult.net/enanomapper
  - description: NanoInformaTIX database
    url: https://api.ideaconsult.net/enanomapper
  - description: RISKGONE database
    url: https://api.ideaconsult.net/enanomapper
  - description: Gov4Nano database
    url: https://api.ideaconsult.net/enanomapper
info:
  contact:
    email: support@ideaconsult.net
    name: IDEAconsult's technical support
    url: https://phabricator.ideaconsult.net
  description: AMBIT REST web services [eNanoMapper profile] with free text & faceted search
  license:
    name: API available under GNU Lesser General Public License
    url: http://www.gnu.org/licenses/lgpl.html
  termsOfService: http://ambit.sf.net
  title: eNanoMapper database
  version: 4.0.0
  x-apisguru-categories:
    - open_data
  x-logo:
    backgroundColor: "#388c9a"
    url: https://api.ideaconsult.net/portal/themes/assets/idea_simple_logo.svg
  x-origin:
    - format: openapi
      url: https://api.ideaconsult.net/management/apis/b5e2f290-5673-49da-a2f2-90567359da82/pages/ee38f795-655c-40b7-b8f7-95655cc0b7a1/content
      version: "3.0"
  x-providerName: ideaconsult.net
  x-serviceName: enanomapper
externalDocs:
  description: More information about the Nano safety data
  url: https://search.data.enanomapper.net
tags:
  - description: Multi-DB aggregated free text and faceted search
    name: Search
  - description: Chemical structures
    externalDocs:
      url: https://github.com/ideaconsult/apps-ambit/blob/master/ambit-json-docs/
    name: Structures
  - description: Chemical substances and (nano)materials
    externalDocs:
      url: https://github.com/ideaconsult/apps-ambit/blob/master/ambit-json-docs/substance.md
    name: Substances
  - description: Measurements or calculations attached to a substance
    externalDocs:
      url: https://github.com/ideaconsult/apps-ambit/blob/master/ambit-json-docs/substance.md#study
    name: Studies
  - description: Machine learning algorithms and models, property prediction models
    externalDocs:
      url: https://github.com/ideaconsult/apps-ambit/blob/master/ambit-json-docs
    name: Data analysis
  - description: Summaries
    externalDocs:
      url: https://github.com/ideaconsult/apps-ambit/blob/master/ambit-json-docs
    name: Facets
  - description: Asynchronous jobs
    externalDocs:
      url: https://github.com/ideaconsult/apps-ambit/blob/master/ambit-json-docs
    name: Task service
paths:
  "/enm/{db}/investigation":
    get:
      description: Multiple studies in tabular form
      operationId: getInvestigationResults
      parameters:
        - $ref: "#/components/parameters/ambitDatabaseId"
        - description: query type
          example: bystudytype
          explode: true
          in: query
          name: type
          required: true
          schema:
            enum:
              - byinvestigation
              - byassay
              - bysubstance
              - byprovider
              - bycitation
              - bystudytype
              - bystructure_inchikey
              - bystructure_smiles
              - bystructure_name
              - bysubstance_name
              - bysubstance_type
            type: string
          style: form
        - description: Search parameter, UUID of the investigation or a substance
          example: PC_GRANULOMETRY_SECTION
          explode: true
          in: query
          name: search
          required: true
          schema:
            type: string
          style: form
        - description: Search parameter, InChI key(s) of the substance component(s), comma delimited
          example: YUYCVXFAYWRXLS-UHFFFAOYSA-N
          explode: true
          in: query
          name: inchikey
          required: false
          schema:
            type: string
          style: form
        - description: Search parameter, chemical structure or substance identifier(s), comma delimited
          explode: true
          in: query
          name: id
          required: false
          schema:
            type: string
          style: form
        - description: Starting page
          example: 0
          explode: true
          in: query
          name: page
          required: false
          schema:
            type: integer
          style: form
        - description: Page size
          example: 10
          explode: true
          in: query
          name: pagesize
          required: false
          schema:
            type: integer
          style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Investigation"
            application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
              schema:
                $ref: "#/components/schemas/Investigation"
            application/x-javascript:
              schema:
                $ref: "#/components/schemas/Investigation"
            text/csv:
              schema:
                $ref: "#/components/schemas/Investigation"
            text/plain:
              schema:
                $ref: "#/components/schemas/Investigation"
          description: OK. Entries found
        "404":
          description: Entries not found
      summary: Details of multiple studies
      tags:
        - Studies
  "/enm/{db}/query/compound/{term}/{representation}":
    get:
      description: Returns compounds found
      externalDocs:
        description: Learn more about operations provided by this API.
        url: http://ambit.sf.net
      operationId: searchByIdentifier
      parameters:
        - $ref: "#/components/parameters/ambitDatabaseId"
        - description: search term type
          explode: false
          in: path
          name: term
          required: true
          schema:
            enum:
              - search
              - url
              - inchikey
            type: string
          style: simple
        - explode: false
          in: path
          name: representation
          required: true
          schema:
            enum:
              - all
              - smiles
              - reach
              - stdinchi
              - stdinchikey
              - names
              - iupac_name
              - synonym
              - cas
              - einecs
            type: string
          style: simple
        - description: Compound identifier (SMILES, InChI, name, registry identifiers)
          explode: true
          in: query
          name: search
          required: false
          schema:
            type: string
          style: form
        - description: Base64 encoded mol file; if included, will be used instead of the 'search' parameter
          explode: true
          in: query
          name: b64search
          required: false
          schema:
            type: string
          style: form
        - description: Case sensitive search if yes
          explode: true
          in: query
          name: casesens
          required: false
          schema:
            type: boolean
          style: form
        - description: Bundle URI
          explode: true
          in: query
          name: bundle_uri
          required: false
          schema:
            type: string
          style: form
        - description: Ontology URI to define groups of columns
          explode: true
          in: query
          name: sameas
          required: false
          schema:
            type: string
          style: form
        - description: Starting page
          example: 0
          explode: true
          in: query
          name: page
          required: false
          schema:
            type: integer
          style: form
        - description: Page size
          example: 10
          explode: true
          in: query
          name: pagesize
          required: false
          schema:
            type: integer
          style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Dataset"
          description: OK. Entries found
        "404":
          description: Entries not found
      summary: Exact chemical structure search
      tags:
        - Structures
  "/enm/{db}/query/similarity":
    get:
      description: Returns similar compounds
      externalDocs:
        description: Learn more about operations provided by this API.
        url: http://ambit.sf.net
      operationId: searchBySimilarity
      parameters:
        - $ref: "#/components/parameters/ambitDatabaseId"
        - description: Compound identifier (SMILES, InChI, name, registry identifiers)
          explode: true
          in: query
          name: search
          required: false
          schema:
            type: string
          style: form
        - description: Base64 encoded mol file; if included, will be used instead of the 'search' parameter
          explode: true
          in: query
          name: b64search
          required: false
          schema:
            type: string
          style: form
        - description: Defines the expected content of the search parameter
          explode: true
          in: query
          name: type
          required: false
          schema:
            enum:
              - smiles
              - mol
              - url
            type: string
          style: form
        - description: Similarity threshold
          explode: true
          in: query
          name: threshold
          required: false
          schema:
            type: number
          style: form
        - description: Restrict the search within the AMBIT dataset specified with the URI
          explode: true
          in: query
          name: dataset_uri
          required: false
          schema:
            type: string
          style: form
        - description: Restrict the search within the set of structures with assigned substances
          explode: true
          in: query
          name: filterBySubstance
          required: false
          schema:
            type: boolean
          style: form
        - description: If the structure is used in the specified bundle URI, the selection tag will be returned
          explode: true
          in: query
          name: bundle_uri
          required: false
          schema:
            type: string
          style: form
        - description: Ontology URI to define groups of columns
          explode: true
          in: query
          name: sameas
          required: false
          schema:
            type: string
          style: form
        - description: Only for application/json; to include mol as JSON field
          explode: true
          in: query
          name: mol
          required: false
          schema:
            type: boolean
          style: form
        - description: Starting page
          example: 0
          explode: true
          in: query
          name: page
          required: false
          schema:
            type: integer
          style: form
        - description: Page size
          example: 10
          explode: true
          in: query
          name: pagesize
          required: false
          schema:
            type: integer
          style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Dataset"
          description: OK. Entries found
        "404":
          description: Entries not found
      summary: Exact similarity search
      tags:
        - Structures
  "/enm/{db}/query/smarts":
    get:
      description: Returns compounds with the specified substructure
      externalDocs:
        description: Learn more about operations provided by this API.
        url: http://ambit.sf.net
      operationId: searchBySmarts
      parameters:
        - $ref: "#/components/parameters/ambitDatabaseId"
        - description: Compound identifier (SMILES, InChI, name, registry identifiers)
          explode: true
          in: query
          name: search
          required: false
          schema:
            type: string
          style: form
        - description: Base64 encoded mol file; if included, will be used instead of the 'search' parameter
          explode: true
          in: query
          name: b64search
          required: false
          schema:
            type: string
          style: form
        - description: Defines the expected content of the search parameter
          explode: true
          in: query
          name: type
          required: false
          schema:
            enum:
              - smiles
              - mol
              - url
            type: string
          style: form
        - description: Restrict the search within the AMBIT dataset specified with the URI
          explode: true
          in: query
          name: dataset_uri
          required: false
          schema:
            type: string
          style: form
        - description: Restrict the search within the set of structures with assigned substances
          explode: true
          in: query
          name: filterBySubstance
          required: false
          schema:
            type: boolean
          style: form
        - description: If the structure is used in the specified bundle URI, the selection tag will be returned
          explode: true
          in: query
          name: bundle_uri
          required: false
          schema:
            type: string
          style: form
        - description: Ontology URI to define groups of columns
          explode: true
          in: query
          name: sameas
          required: false
          schema:
            type: string
          style: form
        - description: Only for application/json; to include mol as JSON field
          explode: true
          in: query
          name: mol
          required: false
          schema:
            type: boolean
          style: form
        - description: Starting page
          example: 0
          explode: true
          in: query
          name: page
          required: false
          schema:
            type: integer
          style: form
        - description: Page size
          example: 10
          explode: true
          in: query
          name: pagesize
          required: false
          schema:
            type: integer
          style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Dataset"
          description: OK. Entries found
        "404":
          description: Entries not found
      summary: Substructure search
      tags:
        - Structures
  "/enm/{db}/query/study":
    get:
      description: Returns endpoint summary
      operationId: getEndpointSummary
      parameters:
        - $ref: "#/components/parameters/ambitDatabaseId"
        - description: Top endpoint category
          explode: true
          in: query
          name: top
          required: false
          schema:
            enum:
              - P-CHEM
              - ECOTOX
              - ENV FATE
              - TOX
              - EXPOSURE
            type: string
          style: form
        - description: Endpoint category (The value in the protocol.category.code field)
          explode: true
          in: query
          name: category
          required: false
          schema:
            type: string
          style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Facet"
          description: OK.
        "404":
          description: Entries not found
      summary: Search endpoint summary
      tags:
        - Studies
        - Facets
  "/enm/{db}/substance":
    get:
      description: Returns a list of substances, according to the search criteria
      operationId: getSubstances
      parameters:
        - $ref: "#/components/parameters/ambitDatabaseId"
        - description: Search parameter
          explode: true
          in: query
          name: search
          required: false
          schema:
            type: string
          style: form
        - explode: true
          in: query
          name: type
          required: false
          schema:
            enum:
              - substancetype
              - name
              - like
              - regexp
              - uuif
              - CompTox
              - DOI
              - reliability
              - purposeFlag
              - studyResultType
              - isRobustStudy
              - citation
              - citationowner
              - topcategory
              - endpointcategory
              - params
              - owner_name
              - owner_uuid
              - related
              - reference
              - facet
            type: string
          style: form
        - description: If type=related finds all substances containing this compound; if typ =reference - finds all substances with this compound as reference structure
          explode: true
          in: query
          name: compound_uri
          required: false
          schema:
            type: string
          style: form
        - description: Retrieves if selected in this bundle
          explode: true
          in: query
          name: bundle_uri
          required: false
          schema:
            type: string
          style: form
        - description: Adds a compound record as substance in JSON; only if type=related
          explode: true
          in: query
          name: addDummySubstance
          required: false
          schema:
            type: boolean
          style: form
        - description: If true retrieves study summary for each substance
          explode: true
          in: query
          name: studysummary
          required: false
          schema:
            type: boolean
          style: form
        - description: Starting page
          example: 0
          explode: true
          in: query
          name: page
          required: false
          schema:
            type: integer
          style: form
        - description: Page size
          example: 10
          explode: true
          in: query
          name: pagesize
          required: false
          schema:
            type: integer
          style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Substance"
          description: OK. Substances found
        "404":
          description: Substances not found
      summary: List substances
      tags:
        - Substances
  "/enm/{db}/substance/{uuid}":
    get:
      description: Returns substance representation
      operationId: getSubstanceByUUID
      parameters:
        - $ref: "#/components/parameters/ambitDatabaseId"
        - description: Substance UUID
          explode: false
          in: path
          name: uuid
          required: true
          schema:
            type: string
          style: simple
        - description: Property URIs
          explode: true
          in: query
          name: property_uris[]
          required: false
          schema:
            type: string
          style: form
        - description: Starting page
          example: 0
          explode: true
          in: query
          name: page
          required: false
          schema:
            type: integer
          style: form
        - description: Page size
          example: 10
          explode: true
          in: query
          name: pagesize
          required: false
          schema:
            type: integer
          style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Substance"
          description: OK. Substances found
        "404":
          description: Substances not found
      summary: Get a substance
      tags:
        - Substances
  "/enm/{db}/substance/{uuid}/composition":
    get:
      description: Returns substance composition
      operationId: getSubstanceComposition
      parameters:
        - $ref: "#/components/parameters/ambitDatabaseId"
        - description: Substance UUID
          explode: false
          in: path
          name: uuid
          required: true
          schema:
            type: string
          style: simple
        - description: true (Show all compositions) false (do not show hidden compositions)
          explode: true
          in: query
          name: all
          required: false
          schema:
            type: boolean
          style: form
        - description: Starting page
          example: 0
          explode: true
          in: query
          name: page
          required: false
          schema:
            type: integer
          style: form
        - description: Page size
          example: 10
          explode: true
          in: query
          name: pagesize
          required: false
          schema:
            type: integer
          style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SubstanceComposition"
          description: OK. compositions found
        "404":
          description: compositions not found
      summary: Substance composition
      tags:
        - Structures
        - Substances
  "/enm/{db}/substance/{uuid}/structures":
    get:
      description: Returns substance composition
      operationId: getSubstanceStructures
      parameters:
        - $ref: "#/components/parameters/ambitDatabaseId"
        - description: Substance UUID
          explode: false
          in: path
          name: uuid
          required: true
          schema:
            type: string
          style: simple
        - description: Starting page
          example: 0
          explode: true
          in: query
          name: page
          required: false
          schema:
            type: integer
          style: form
        - description: Page size
          example: 10
          explode: true
          in: query
          name: pagesize
          required: false
          schema:
            type: integer
          style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Dataset"
          description: OK. compositions found
        "404":
          description: compositions not found
      summary: Get substance composition as a dataset
      tags:
        - Structures
        - Substances
  "/enm/{db}/substance/{uuid}/study":
    get:
      description: Returns substance study representation
      operationId: getSubstanceStudy
      parameters:
        - $ref: "#/components/parameters/ambitDatabaseId"
        - description: Substance UUID
          explode: false
          in: path
          name: uuid
          required: true
          schema:
            type: string
          style: simple
        - description: Top endpoint category
          explode: true
          in: query
          name: top
          required: false
          schema:
            enum:
              - P-CHEM
              - ECOTOX
              - ENV FATE
              - TOX
              - EXPOSURE
            type: string
          style: form
        - description: Endpoint category (The value in the protocol.category.code field)
          explode: true
          in: query
          name: category
          required: false
          schema:
            type: string
          style: form
        - description: Property URI https://data.enanomapper.net/property/{UUID} , see Property service
          explode: true
          in: query
          name: property_uri
          required: false
          schema:
            type: string
          style: form
        - description: Property UUID
          explode: true
          in: query
          name: property
          required: false
          schema:
            type: string
          style: form
        - description: Investigation UUID, a code to link different studies
          explode: true
          in: query
          name: investigation_uuid
          required: false
          schema:
            type: string
          style: form
        - description: Starting page
          example: 0
          explode: true
          in: query
          name: page
          required: false
          schema:
            type: integer
          style: form
        - description: Page size
          example: 10
          explode: true
          in: query
          name: pagesize
          required: false
          schema:
            type: integer
          style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SubstanceStudy"
          description: OK. Substances found
        "404":
          description: Substances not found
      summary: get substance study
      tags:
        - Studies
        - Substances
  "/enm/{db}/substance/{uuid}/studySummary":
    get:
      description: Study summary
      operationId: getSubstanceStudySummary
      parameters:
        - $ref: "#/components/parameters/ambitDatabaseId"
        - description: Substance UUID
          explode: false
          in: path
          name: uuid
          required: true
          schema:
            type: string
          style: simple
        - description: Top endpoint category
          explode: true
          in: query
          name: top
          required: false
          schema:
            enum:
              - P-CHEM
              - ECOTOX
              - ENV FATE
              - TOX
              - EXPOSURE
            type: string
          style: form
        - description: Endpoint category (The value in the protocol.category.code field)
          explode: true
          in: query
          name: category
          required: false
          schema:
            type: string
          style: form
        - description: Property URI https://data.enanomapper.net/property/{UUID} , see Property service
          explode: true
          in: query
          name: property_uri
          required: false
          schema:
            type: string
          style: form
        - description: Property UUID, see Property service
          explode: true
          in: query
          name: property
          required: false
          schema:
            type: string
          style: form
        - description: If true will group by topcategory,endpointcategory,interpretation result
          explode: true
          in: query
          name: result
          required: false
          schema:
            type: boolean
          style: form
        - description: Starting page
          example: 0
          explode: true
          in: query
          name: page
          required: false
          schema:
            type: integer
          style: form
        - description: Page size
          example: 10
          explode: true
          in: query
          name: pagesize
          required: false
          schema:
            type: integer
          style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SubstanceStudySummary"
          description: OK.
        "404":
          description: Entries not found
      summary: Get study summary for the substance
      tags:
        - Studies
        - Substances
  /select:
    description: Apache Solr powered search for Nanosafety data
    get:
      description: GET is simpler to use, but imposes restrictions on the complexity and the lenght of the parameters.
      operationId: solrquery_get
      parameters:
        - description: The query
          example: "*:*"
          explode: true
          in: query
          name: q
          required: false
          schema:
            type: string
          style: form
        - description: Filter query
          explode: true
          in: query
          name: fq
          required: false
          schema:
            type: string
          style: form
        - description: Field list
          example: "*"
          explode: true
          in: query
          name: fl
          required: false
          schema:
            type: string
          style: form
        - description: Starting page
          example: 0
          explode: true
          in: query
          name: start
          required: false
          schema:
            type: integer
          style: form
        - description: Page size
          example: 10
          explode: true
          in: query
          name: rows
          required: false
          schema:
            type: integer
          style: form
        - description: Response format
          example: json
          explode: true
          in: query
          name: wt
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - csv
            type: string
          style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SolrResponse"
            application/xml:
              schema:
                $ref: "#/components/schemas/SolrResponse"
          description: Query performed successfully
        "400":
          description: BAD_REQUEST
        "401":
          description: UNAUTHORIZED
        "403":
          description: FORBIDDEN
        "404":
          description: NOT_FOUND
        "409":
          description: CONFLICT
        "415":
          description: UNSUPPORTED_MEDIA_TYPE
        "500":
          description: SERVER_ERROR
        "503":
          description: SERVICE_UNAVAILABLE
        "510":
          description: "INVALID_STATE          "
      summary: Apache Solr powered search
      tags:
        - Search
    post:
      description: POST is more complex to use, but also allows for much for complex and lengthy queries.
      operationId: solrquery_post
      parameters:
        - description: Response format
          example: json
          explode: true
          in: query
          name: wt
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
            type: string
          style: form
      requestBody:
        $ref: "#/components/requestBodies/QueryBody"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SolrResponse"
            application/xml:
              schema:
                $ref: "#/components/schemas/SolrResponse"
          description: Query performed successfully
        "400":
          description: BAD_REQUEST
        "401":
          description: UNAUTHORIZED
        "403":
          description: FORBIDDEN
        "404":
          description: NOT_FOUND
        "409":
          description: CONFLICT
        "415":
          description: UNSUPPORTED_MEDIA_TYPE
        "500":
          description: SERVER_ERROR
        "503":
          description: SERVICE_UNAVAILABLE
        "510":
          description: INVALID_STATE
      summary: Apache Solr powered search
      tags:
        - Search
    summary: eNanoMapper Database aggregated search
components:
  parameters:
    ambitDatabaseId:
      description: Database ID
      explode: false
      in: path
      name: db
      required: true
      schema:
        default: nanoreg1
        enum:
          - calibrate
          - enanomapper
          - enpra
          - marina
          - nanogenotox
          - nanoinformatix
          - nanoreg1
          - nanoreg2
          - nanotest
        type: string
      style: simple
  requestBodies:
    QueryBody:
      content:
        application/json:
          schema:
            example: |
              {
                "params": {
                  "fl": [
                    "[child parentFilter=type_s:substance childFilter=type_s:composition limit=100]",
                    "dbtag_hss",
                    "name:name_hs",
                    "publicname:publicname_hs",
                    "owner_name:owner_name_hs",
                    "substanceType:substanceType_hs",
                    "s_uuid:s_uuid_hs",
                    "content:content_hss",
                    "SUMMARY.*"
                  ],
                  "rows": 20
                },
                "facet": {
                  "owner_name": {
                    "type": "terms",
                    "field": "owner_name_s",
                    "mincount": 1,
                    "limit": -1,
                    "domain": {
                      "excludeTags": "owner_name_tag",
                      "blockChildren": "type_s:substance"
                    }
                  },
                  "reference_owner": {
                    "type": "terms",
                    "field": "reference_owner_s",
                    "mincount": 1,
                    "limit": -1,
                    "domain": {
                      "excludeTags": "reference_owner_tag",
                      "blockChildren": "type_s:substance"
                    }
                  },
                  "substanceType": {
                    "type": "terms",
                    "field": "substanceType_s",
                    "mincount": 1,
                    "limit": -1,
                    "domain": {
                      "excludeTags": "substanceType_tag",
                      "blockChildren": "type_s:substance"
                    }
                  },
                  "nm_name": {
                    "type": "terms",
                    "field": "publicname_s",
                    "mincount": 451,
                    "limit": -1,
                    "domain": {
                      "excludeTags": "nm_name_tag",
                      "blockChildren": "type_s:substance"
                    }
                  },
                  "protocol": {
                    "type": "terms",
                    "field": "guidance_s",
                    "mincount": 1,
                    "limit": -1,
                    "domain": {
                      "excludeTags": "protocol_tag",
                      "blockChildren": "type_s:substance"
                    }
                  },
                  "method": {
                    "type": "terms",
                    "field": "E.method_s",
                    "mincount": 1,
                    "limit": -1,
                    "domain": {
                      "excludeTags": "method_tag",
                      "blockChildren": "type_s:substance"
                    }
                  },
                  "cell": {
                    "type": "terms",
                    "field": "E.cell_type_s",
                    "mincount": 1,
                    "limit": -1,
                    "domain": {
                      "excludeTags": "cell_tag",
                      "blockChildren": "type_s:substance"
                    }
                  },
                  "species": {
                    "type": "terms",
                    "field": "E.animal_model_s",
                    "mincount": 1,
                    "limit": -1,
                    "domain": {
                      "excludeTags": "species_tag",
                      "blockChildren": "type_s:substance"
                    }
                  },
                  "route": {
                    "type": "terms",
                    "field": "E.exposure_route_s",
                    "mincount": 1,
                    "limit": -1,
                    "domain": {
                      "excludeTags": "route_tag",
                      "blockChildren": "type_s:substance"
                    }
                  },
                  "interpretation": {
                    "type": "terms",
                    "field": "MEDIUM_s",
                    "mincount": 2,
                    "limit": -1,
                    "domain": {
                      "excludeTags": "interpretation_tag",
                      "blockChildren": "type_s:substance"
                    }
                  },
                  "dprotocol": {
                    "type": "terms",
                    "field": "Dispersion protocol_s",
                    "mincount": 2,
                    "limit": -1,
                    "domain": {
                      "excludeTags": "dprotocol_tag",
                      "blockChildren": "type_s:substance"
                    }
                  },
                  "reference_year": {
                    "type": "terms",
                    "field": "reference_year_s",
                    "mincount": 2,
                    "limit": -1,
                    "domain": {
                      "excludeTags": "reference_year_tag",
                      "blockChildren": "type_s:substance"
                    }
                  },
                  "reference": {
                    "type": "terms",
                    "field": "reference_s",
                    "mincount": 2,
                    "limit": -1,
                    "domain": {
                      "excludeTags": "reference_tag",
                      "blockChildren": "type_s:substance"
                    }
                  },
                  "release": {
                    "type": "terms",
                    "field": "updated_s",
                    "mincount": 1,
                    "limit": -1,
                    "domain": {
                      "excludeTags": "release_tag",
                      "blockChildren": "type_s:substance"
                    }
                  },
                  "topcategory": {
                    "type": "terms",
                    "field": "topcategory_s",
                    "mincount": 1,
                    "limit": -1,
                    "facet": {
                      "min": "min(loValue_d)",
                      "max": "max(loValue_d)",
                      "avg": "avg(loValue_d)",
                      "endpointcategory": {
                        "type": "terms",
                        "field": "endpointcategory_s",
                        "mincount": 1,
                        "limit": -1,
                        "facet": {
                          "min": "min(loValue_d)",
                          "max": "max(loValue_d)",
                          "avg": "avg(loValue_d)",
                          "effectendpoint": {
                            "type": "terms",
                            "field": "effectendpoint_s",
                            "mincount": 1,
                            "limit": -1,
                            "facet": {
                              "min": "min(loValue_d)",
                              "max": "max(loValue_d)",
                              "avg": "avg(loValue_d)",
                              "unit": {
                                "type": "terms",
                                "field": "unit_s",
                                "mincount": 1,
                                "limit": -1,
                                "facet": {
                                  "min": "min(loValue_d)",
                                  "max": "max(loValue_d)",
                                  "avg": "avg(loValue_d)"
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "domain": {
                      "blockChildren": "type_s:substance"
                    }
                  }
                }
              }
            properties:
              facet:
                type: object
              params:
                properties:
                  fl:
                    items:
                      type: string
                    type: array
                  rows:
                    type: integer
                type: object
            type: object
      description: a JSON object with Solr query parameters
  schemas:
    Dataset:
      properties:
        dataEntry:
          type: object
        feature:
          type: object
        model_uri:
          type: string
        query:
          type: object
      type: object
    Facet:
      properties:
        facet:
          type: object
      type: object
    Investigation:
      properties:
        _childDocuments_:
          type: object
        assay:
          type: string
        document_uuid:
          type: string
        effectendpoint:
          type: string
        endpoint:
          type: string
        endpointcategory:
          type: string
        err:
          type: number
        errQualifier:
          type: string
        guidance:
          type: string
        investigation:
          type: string
        loQualifier:
          type: string
        loValue:
          type: number
        name:
          type: string
        owner_name:
          type: string
        publicname:
          type: string
        reference:
          type: string
        reference_owner:
          type: string
        reference_year:
          type: string
        resulttype:
          type: string
        s_uuid:
          type: string
        studyResultType:
          type: string
        substanceType:
          type: string
        textValue:
          type: string
        topcategory:
          type: string
        type_s:
          type: string
        unit:
          type: string
        upQualifier:
          type: string
        upValue:
          type: number
        updated:
          type: string
      type: object
    SolrQuery:
      properties:
        facet:
          type: string
        filter:
          type: string
        query:
          type: string
        rows:
          type: integer
        sort:
          type: boolean
        start:
          type: integer
      type: object
    SolrResponse:
      properties:
        response:
          properties:
            docs:
              items:
                type: object
              type: array
            maxScore:
              type: number
            numFound:
              type: integer
            start:
              type: integer
          type: object
        responseHeader:
          properties:
            QTime:
              type: integer
            params:
              type: object
            status:
              type: integer
            zkConnected:
              type: boolean
          type: object
      type: object
    Substance:
      properties:
        substance:
          type: object
      type: object
    SubstanceComposition:
      properties:
        composition:
          type: object
        feature:
          type: object
      type: object
    SubstanceStudy:
      properties:
        study:
          type: object
      type: object
    SubstanceStudySummary:
      properties:
        facet:
          type: object
      type: object
