CROssBAR Data API
ebi · Data
# About CROssBAR & data **CROssBAR**: Comprehensive Resource of Biomedical Relations with Deep Learning Applications and Knowledge Graph Representations CROssBAR is a comprehensive system that integrates large-scale biomedical data from various resources e.g UniProt, ChEMBL, Drugbank, EFO, HPO, InterPro & PubChem and stores them in a new NoSQL database, enrich these data with deep learning based prediction of relations between numerous biomedical entities, rigorously analyse the enriched data to
Authentication
Sample Requests
Get ChEMBL activities
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/activities?page=0&limit=10&pchemblValue=1&assayChemblId=example&targetChemblId=example&moleculeChemblId=example"
import requests
params = {
"page": "0",
"limit": "10",
"pchemblValue": "1",
"assayChemblId": "example",
"targetChemblId": "example",
"moleculeChemblId": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/activities",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/activities');
url.searchParams.set('page', '0');
url.searchParams.set('limit', '10');
url.searchParams.set('pchemblValue', '1');
url.searchParams.set('assayChemblId', 'example');
url.searchParams.set('targetChemblId', 'example');
url.searchParams.set('moleculeChemblId', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/activities")
q := baseURL.Query()
q.Set("page", "0")
q.Set("limit", "10")
q.Set("pchemblValue", "1")
q.Set("assayChemblId", "example")
q.Set("targetChemblId", "example")
q.Set("moleculeChemblId", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/activities")
uri.query = URI.encode_www_form({
"page" => "0",
"limit" => "10",
"pchemblValue" => "1",
"assayChemblId" => "example",
"targetChemblId" => "example",
"moleculeChemblId" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/activities?" . http_build_query([
"page" => "0",
"limit" => "10",
"pchemblValue" => "1",
"assayChemblId" => "example",
"targetChemblId" => "example",
"moleculeChemblId" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Get ChEMBL assays
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/assays?page=0&limit=10&assayOrg=example&assayType=example&assayChemblId=example&targetChemblId=example"
import requests
params = {
"page": "0",
"limit": "10",
"assayOrg": "example",
"assayType": "example",
"assayChemblId": "example",
"targetChemblId": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/assays",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/assays');
url.searchParams.set('page', '0');
url.searchParams.set('limit', '10');
url.searchParams.set('assayOrg', 'example');
url.searchParams.set('assayType', 'example');
url.searchParams.set('assayChemblId', 'example');
url.searchParams.set('targetChemblId', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/assays")
q := baseURL.Query()
q.Set("page", "0")
q.Set("limit", "10")
q.Set("assayOrg", "example")
q.Set("assayType", "example")
q.Set("assayChemblId", "example")
q.Set("targetChemblId", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/assays")
uri.query = URI.encode_www_form({
"page" => "0",
"limit" => "10",
"assayOrg" => "example",
"assayType" => "example",
"assayChemblId" => "example",
"targetChemblId" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/assays?" . http_build_query([
"page" => "0",
"limit" => "10",
"assayOrg" => "example",
"assayType" => "example",
"assayChemblId" => "example",
"targetChemblId" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));drugs collected from Drugbank
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/drugs?name=test&page=0&limit=10&chemblId=example&accession=example&identifier=example&pubchemCid=example"
import requests
params = {
"name": "test",
"page": "0",
"limit": "10",
"chemblId": "example",
"accession": "example",
"identifier": "example",
"pubchemCid": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/drugs",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/drugs');
url.searchParams.set('name', 'test');
url.searchParams.set('page', '0');
url.searchParams.set('limit', '10');
url.searchParams.set('chemblId', 'example');
url.searchParams.set('accession', 'example');
url.searchParams.set('identifier', 'example');
url.searchParams.set('pubchemCid', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/drugs")
q := baseURL.Query()
q.Set("name", "test")
q.Set("page", "0")
q.Set("limit", "10")
q.Set("chemblId", "example")
q.Set("accession", "example")
q.Set("identifier", "example")
q.Set("pubchemCid", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/drugs")
uri.query = URI.encode_www_form({
"name" => "test",
"page" => "0",
"limit" => "10",
"chemblId" => "example",
"accession" => "example",
"identifier" => "example",
"pubchemCid" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/ebi.ac.uk/1.0/drugs?" . http_build_query([
"name" => "test",
"page" => "0",
"limit" => "10",
"chemblId" => "example",
"accession" => "example",
"identifier" => "example",
"pubchemCid" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with CROssBAR Data API?
CROssBAR Data API is a Data API. Developers commonly use data APIs for:
- enriching your app with third-party datasets
- building data pipelines and ETL workflows
- querying and searching large datasets
- powering research, analysis, and reporting tools
- syncing reference data into your own systems
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. CROssBAR Data API is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?