Skip to contents

When you search for an entity at, e.g. a compound or a substance, and select the record you are interested in, you will be forwarded to a PubChem content page. When you look at a PubChem content page, you can see that chemical information is organised into sections, subsections, etc. The chemical data live at the lowest levels of these sections. Use this function to retrieve the lowest level information from PubChem content pages.


  domain = c("compound", "substance", "assay", "gene", "protein", "patent"),
  verbose = getOption("verbose")



numeric or character; a vector of PubChem identifiers to search for.


character; the section of the content page to be imported.


character; the query domain. Can be one of "compound", "substance", "assay", "gene", "protein" or "patent".


logical; should a verbose output be printed on the console?


Returns a tibble of query results. In the returned tibble, SourceName is the name of the depositor, and SourceID is the ID of the search term within the depositor's database. You can browse for more information about the depositors.


section is not case sensitive but it is sensitive to typing errors and it requires the full name of the section as it is printed on the content page. The PubChem Table of Contents Tree can also be found at


Please respect the Terms and Conditions of the National Library of Medicine, the data usage policies of National Center for Biotechnology Information,,, and the data usage policies of the individual data sources


Kim, S., Thiessen, P.A., Cheng, T. et al. PUG-View: programmatic access to chemical annotations integrated in PubChem. J Cheminform 11, 56 (2019). doi:10.1186/s13321-019-0375-2 .

See also


# might fail if API is not available
if (FALSE) {
pc_sect(176, "Dissociation Constants")
pc_sect(c(176, 311), "density")
pc_sect(2231, "depositor-supplied synonyms", "substance")
pc_sect(780286, "modify date", "assay")
pc_sect(9023, "Ensembl ID", "gene")
pc_sect("1ZHY_A", "Sequence", "protein")