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")