Open Targets Platform REST API
opentargets · Data
### The Open Targets Platform REST API The Open Targets Platform API ('Application Programming Interface') allows programmatic retrieval of the Open Targets Platform data via a set of [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) services. You can make calls to the latest version of our API using the base URL `https://platform-api.opentargets.io/v3/platform`. Please make sure you use `https` instead of the unencrypted `http` calls, which we do not accept. We list below
Authentication
Sample Requests
Search for the closest term to autocomplete in the search box.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/opentargets.io/19.02.1/platform/private/autocomplete?q=test&size=10"
import requests
params = {
"q": "test",
"size": "10"
}
response = requests.get(
"https://api.apis.guru/v2/specs/opentargets.io/19.02.1/platform/private/autocomplete",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/opentargets.io/19.02.1/platform/private/autocomplete');
url.searchParams.set('q', 'test');
url.searchParams.set('size', '10');
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/opentargets.io/19.02.1/platform/private/autocomplete")
q := baseURL.Query()
q.Set("q", "test")
q.Set("size", "10")
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/opentargets.io/19.02.1/platform/private/autocomplete")
uri.query = URI.encode_www_form({
"q" => "test",
"size" => "10"
})
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/opentargets.io/19.02.1/platform/private/autocomplete?" . http_build_query([
"q" => "test",
"size" => "10"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Get `search-result` objects. Enables search bar functionality.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/opentargets.io/19.02.1/platform/private/quicksearch?q=test&size=10"
import requests
params = {
"q": "test",
"size": "10"
}
response = requests.get(
"https://api.apis.guru/v2/specs/opentargets.io/19.02.1/platform/private/quicksearch",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/opentargets.io/19.02.1/platform/private/quicksearch');
url.searchParams.set('q', 'test');
url.searchParams.set('size', '10');
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/opentargets.io/19.02.1/platform/private/quicksearch")
q := baseURL.Query()
q.Set("q", "test")
q.Set("size", "10")
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/opentargets.io/19.02.1/platform/private/quicksearch")
uri.query = URI.encode_www_form({
"q" => "test",
"size" => "10"
})
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/opentargets.io/19.02.1/platform/private/quicksearch?" . http_build_query([
"q" => "test",
"size" => "10"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Once we integrate all evidence connecting a target to a specific disease, we compute an association score by the means of an harmonic sum. This *association score* provides an indication of how strong the evidence behind each connection is and can be used to rank genes in order of likelihood as d
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/opentargets.io/19.02.1/platform/public/association?id=1"
import requests
params = {
"id": "1"
}
response = requests.get(
"https://api.apis.guru/v2/specs/opentargets.io/19.02.1/platform/public/association",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/opentargets.io/19.02.1/platform/public/association');
url.searchParams.set('id', '1');
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/opentargets.io/19.02.1/platform/public/association")
q := baseURL.Query()
q.Set("id", "1")
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/opentargets.io/19.02.1/platform/public/association")
uri.query = URI.encode_www_form({
"id" => "1"
})
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/opentargets.io/19.02.1/platform/public/association?" . http_build_query([
"id" => "1"
]);
$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 Open Targets Platform REST API?
Open Targets Platform REST 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. Open Targets Platform REST 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?