Note: this API is still under development and subject to change.
Please see the documentation for the API here. We are using Swagger/OpenAPI to describe the API, so you can easily generate a client to connect to it in whichever language you prefer. We list some common examples below, but if your language is not listed, fear not, there is likely a generator available elsewhere.
Python client
Generate a client in Python using bravado like this:
from bravado.client import SwaggerClient
cbioportal = SwaggerClient.from_url('https://www.cbioportal.org/api/api-docs')
This allows you to access all API endpoints:
>>> dir(cbioportal)
['Cancer Types',
'Clinical Attributes',
'Clinical Data',
'Clinical Events',
'Copy Number Segments',
'Discrete Copy Number Alterations',
'Gene Panels',
'Genes',
'Molecular Data',
'Molecular Profiles',
'Mutations',
'Patients',
'Sample Lists',
'Samples',
'Studies']
For easy tab completion you can add lower cases and underscores:
for a in dir(cbioportal):
cbioportal.__setattr__(a.replace(' ', '_').lower(), cbioportal.__getattr__(a))
This example gets you all mutation data for the MSK-IMPACT 2017 study:
muts = cbioportal.mutations.getMutationsInMolecularProfileBySampleListIdUsingGET(
molecularProfileId="msk_impact_2017_mutations", # {study_id}_mutations gives default mutations profile for study
sampleListId="msk_impact_2017_all", # {study_id}_all includes all samples
projection="DETAILED" # include gene info
).result()
R client
Generate a client in R using rapiclient:
library(rapiclient)
client <- get_api(url = "https://www.cbioportal.org/api/api-docs")