scientist

JSON API Documentation

Scientist’s (formerly Assay Depot) JSON API gives read-only access to vendors and services. To use the API you must authenticate using OAuth2.

Location

The API is accessible at /api on whatever website you use. For instance, public marketplace customers (users of http://app.scientist.com) can access the api at:

https://app.scientist.com/api

Vendors can access the api at:

https://backoffice.scientist.com/api

And private RX customers can access the api using their custom URL:

https://[custom].scientist.com/api

Authentication

The API requires the user to authenticate. To use the API you must authenticate using OAuth2. Scientist supports both Authorization Code and Client Credential workflows.

You should specify the authentication token using the Authorization header. For instance:

curl --header "Authorization: Bearer 123456" https://app.scientist.com/api/[resource].json

or in Ruby

RestClient.get("https://app.scientist.com/api/[resource].json", "Authorization" => "Bearer 123456")

The authentication token is only strictly required for the first request of the session, but you may include it with every request. All examples assume the user has successfully authenticated.

Vendors

There are two functions you can perform on vendors, search and get.

Search queries take the form:

https://app.scientist.com/api/providers.json?q=[query term(s)]

For example, to search for vendors that match the term “antibody”, you would use the url:

https://app.scientist.com/api/providers.json?q=antibody

The system will search for the word antibody or it’s synonyms in all applicable vendor fields.

Vendor Search Query Options

page 1 When there are more results than can fit on a single page, you can retrieve different pages by changing this parameter.
per_page 25 You can change the number of results returned per request by changing this parameter.
sort_by nil (relevance) You can change the order in which results are returned. This orders the entire result set, not just the current page.
sort_order desc Change the direction of the result set
facets nil You can refine the result set by specifying facet values. See the vendor search facets section for more information.

Vendor Search Facets

Vendor search results can be refined using facets. To apply a facet to a search use a URL in the following format:

https://app.scientist.com/api/providers.json?facets[facet_name][]=facet_value

For instance, if you wanted find vendors that are members of BIOCOM, you would use the following URL:

https://app.scientist.com/api/providers.json?facets[professional_associations][]=BIOCOM

You may specify multiple facets in a single query. It’s important to note, unlike the query string, facet values must match exactly.

Vendor Search Facets Values

There are numerous facets that can be specified. Below is a table of a few interesting facets. Search results contain lists of all the applicable facet names and values, you should consult these results for a more complete list.

professional_associations
  • BIOCOM
Narrow the results to only vendors that are members of a particular association. Currently, only BIOCOM is supported.
category_names
  • Biology
  • Biomarkers
  • Clinical Chemistry
  • ...
Narrow the results to only vendors who appear in a certain discipline, category or subcategory on the site.
certifications
  • AAALAC
  • GLP
  • ISO 9001
  • ...
Narrow the results to only vendors who have specific certifications.
countries_facet
  • United States
  • China
  • Great Britain
  • ...
Narrow the results to only vendors who have offices or laboratories in certain countries.

Vendor Search Return Value

This will return:

{
  "total":1062,
  "page":1,
  "per_page":25,
  "query_time":0.021877621,
  "facets": {
    "annotations":{},
    "certifications":{
      "GLP":201,
      "GMP":142,
      "ISO 9001":55,
      "AAALAC":29,
      ...
    },
    "countries_facet": {
      "United States":588,
      "Germany":84,
      "Great Britain":71,
      "Canada":44,
      ...
    }
  },
  "provider_refs": [
    {
      "id":"ae82d9d2c9dd4902be154a3202646689",
      "slug":"assay-depot",
      "name":"Assay Depot",
      "snippet":"Assay Depot builds and operates Research Exchanges (RXs), like this one, that make it easy for researchers to find and order the research services they need, and for CROs to engage researchers directly. ",
      "permission":"in-network",
      "score":3.5326707,
      "locations": [
        {
          "text":"433 Glencrest, Solana Beach, California, USA",
          "latitude":32.99959,
          "longitude":-117.262905
        },
        ...
      ],
      "urls": {
        "storefront":"https://app.scientist.com/provider/assay-depot",
        "backoffice":"https://backoffice.scientist.com/providers/assay-depot/edit"
      }
    },
    {
      "id":"5c4a0ddac7182dcdd7d1140b24770137",
      "slug":"assay-biotechnology-company",
      "name":"Assay Biotechnology Company",
      "snippet":"Assay Biotechnology Company supplies antibodies, proteins, assay kits, cells, and media products.",
      "permission":"out-of-network",
      "score":2.8261366,
      "locations": [
        {
          "text":"562 E Weddell Dr Ste 8\nSunnyvale, CA 94089\nUSA",
          "latitude":37.3987777,
          "longitude":-122.012603
        },
        ...
      ],
      "urls": {
        "storefront":"https://app.scientist.com/provider/assay-biotechnology-company",
        "backoffice":"https://backoffice.scientist.com/providers/assay-biotechnology-company/edit"
      }
    },
    ...
  ]
}

Vendor Details

Get queries take the form:

https://app.scientist.com/api/providers/[provider_id].json

Vendor Details Return Value

This will return:

{
  "query_time":0.026702252,
  "provider":{
    "id":"ae82d9d2c9dd4902be154a3202646689",
    "slug":"assay-depot",
    "name":"Assay Depot",
    "phone_number":"(877)644-3044",
    "website":"http://app.scientist.com",
    "service_areas":[],
    "headquarters":"San Diego,
     California,
     USA",
    "laboratories":[],
    "year_established":"2007",
    "number_of_employees":"10",
    "description":
      "!<http://backoffice.scientist.com/assets/depot-wares/ae82d9d2c9dd4902be154a3202646689/logo.png(Assay Depot Logo)!:http://app.scientist.com\r\n\r\np<>. *Assay Depot* has created the world\u2019s largest network of public and private cloud-based research exchanges. Researchers from around the world use the public research exchange to find,
      compare and purchase research services,
      ...
      ",
    "keywords":[],
    "certifications":[],
    "professional_associations":[],
    "permission":"in-network",
    "origin":"central",
    "green":false,
    "green_explaination":null,
    "diversity":false,
    "diversity_explaination":null,
    "created_at":"2009-07-15T22:11:12+00:00",
    "updated_at":"2012-05-11T23:23:40Z",
    "urls": {
      "storefront":"https://app.scientist.com/provider/assay-depot",
      "backoffice":"https://backoffice.scientist.com/providers/assay-depot/edit"
    }
  }
}

Services

There are two functions you can perform on services, search and get.

Search queries take the form:

https://app.scientist.com/api/wares.json?q=[query term(s)]

For example, to search for services that match the term “peptide”, you would use the url:

https://app.scientist.com/api/wares.json?q=peptide

The system will search for the word antibody or it’s synonyms in all applicable service fields.

Service Search Query Options

page 1 When there are more results than can fit on a single page, you can retrieve different pages by changing this parameter.
per_page 25 You can change the number of results returned per request by changing this parameter.
sort_by nil (relevance) You can change the order in which results are returned. This orders the entire result set, not just the current page.
sort_order desc Change the direction of the result set
facets nil You can refine the result set by specifying facet values. See the service search facets section for more information.

Service Search Facets

Service search results can be refined using facets. To apply a facet to a search use a URL in the following format:

https://app.scientist.com/api/wares.json?facets[facet_name][]=facet_value

For instance, if you wanted find services where Assay Depot was available as a provider, you would use the URL:

https://app.scientist.com/api/wares.json?facets[available_provider_names][]=Assay+Depot

You may specify multiple facets in a single query. It’s important to note, unlike the query string, facet values must match exactly.

Service Search Facets Values

There are numerous facets that can be specified. Below is a table of a few interesting facets. Search results contain lists of all the applicable facet names and values, you should consult these results for a more complete list.

protein_type
  • Enzymes
  • Bacterial and Viral Antigens
  • Growth Factors
  • ...
Narrow the results to only services listing a specific type of protein.
species
  • Human
  • Treponema pallidum
  • Dengue virus
  • ...
Narrow the results to only services associated with a certain species.
available_provider_names
  • Ricerca Biosciences
  • GVK Biosciences
  • Charles River Laboratories
  • ...
Narrow the results to only services that are offered by a particular vendor.

Service Search Return Value

This will return:

{
  "total": 8551,
  "page": 1,
  "per_page": 25,
  "query_time": 0.31529539400000001,
  "facets": {
    "source": {
      "External": 8551
    },
    "ware_type": {
      "Product": 3914,
      "CustomService": 3427,
      ...
    },
    "available_provider_names": {
      "Acme Bioscience": 4475,
      ...
    },
    "certifications": {},
    "countries": {
      "United States": 418,
      "Canada": 14,
      "India": 8,
      "Netherlands": 6,
      ...
    },
    ...
  },
  "ware_refs": [
    {
      "id": "1207da8eb6d0af5eb153c5146f4a6823",
      "slug": "90-d-subchronic-tox-study-mouse7",
      "name": "90-d Subchronic Tox Study - Mouse",
      "price": 0.0,
      "average_rating": null,
      "type": "Service",
      "turn_around_time": null,
      "snippet": "90-day subchronic tox study in 100 mice evaluates dose-effect, organ selectivity and NOAEL (GLP)",
      "providers": [
        {
          "id": "1e1456e7d7c23095983ab90efaa6841f",
          "name": "MDS-USA"
        },
        {
          "id": "271e3e476c2613cc571c2f418e249bd7",
          "name": "Acme Bioscience"
        },
        ...
      ],
      "score": null,
      "urls": {
        "storefront": "https://staging.scientist.com/service/90-d-subchronic-tox-study-mouse7",
        "backoffice": "https://backoffice-staging.scientist.com/wares/90-d-subchronic-tox-study-mouse7/edit"
      }
    },
    {
      "id": "1240501c6efc3efb0a5b820331a70597",
      "slug": "target-based-library-design",
      "name": "Library Design",
      "price": 0.0,
      "average_rating": null,
      "type": "CustomService",
      "turn_around_time": null,
      "snippet": "Click here to request a quote to design a focused library for lead optimization",
      "providers": [
        {
          "id": "59ee7223992aecf96f1e155b75619e94",
          "name": "Sapient Discovery"
        },
        {
          "id": "26cf7be3d1f5920aca36064db26f8920",
          "name": "SimBioSys"
        },
        ...
      ],
      "score": null,
      "urls": {
        "storefront": "https://staging.scientist.com/service/target-based-library-design",
        "backoffice": "https://backoffice-staging.scientist.com/wares/target-based-library-design/edit"
      }
    },
    ...
 ]
}

Service Details

Get queries take the form:

https://app.scientist.com/api/wares/[ware_id].json

Service Details Return Value

This will return:

{
  "query_time":0.005992268,
  "ware":{
    "id":"36aa2c0aa802cd048206c619a9689918",
    "slug":"antibody-services",
    "name":"Antibody Services",
    "price":0.0,
    "turn_around_time": {
      "max":0,
      "min":0,
      "display_units":"hours"
    },
    "type":"CustomService",
    "snippet":"Request information or a price quote for Antibody Services",
    "description":
      "<img src=\"https://backoffice.scientist.com/files/depot-wares/36aa2c0aa802cd048206c619a9689918/antibody-services2.png\" alt=\"Antibody Services Image\" style=\"margin-right: 10px; width: 90px; float: left;\" />\r\n\r\n\r\np<>. If you'd like to narrow down the type of service or product you are looking for,
       choose from one of our Antibody Subcategories below. If you're unsure what you need,
       ...
       ",
    "contact_emails":[],
    "responsible_emails":[],
    "permission":"read",
    "first_published_at":null,
    "protein_type":null,
    "clonality":null,
    "cell_source":null,
    "species":[],
    "tissue":null,
    "amount":null,
    "protein_tag":null,
    "antigen_species":null,
    "product_applications":[],
    "ig_type":null,
    "purification_method":null,
    "peptide_type":null,
    "cas_number":null,
    "unspsc":"",
    "supplier_part_id":"",
    "created_at":"2009-10-07T00:26:00+00:00",
    "updated_at":"2012-07-13T15:33:57Z",
    "urls": {
      "storefront":"https://app.scientist.com/service/antibody-services",
      "backoffice":"https://backoffice.scientist.com/wares/antibody-services/edit"
    }
  }
}

Bringing It All Together

Any number of options can be combined in a single query. For instance, the following (contrived) example, lists the first page of services that match the string “fluid” and are associated with the species Human. It also sets the page size to 2 and the authentication token to 1234567890.

curl --header "Authorization: Bearer 123456" https://app.scientist.com/api/wares.json?q=fluid&facets[species][]=Human&page=1&per_page=2