> For the complete documentation index, see [llms.txt](https://docs.materialsproject.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.materialsproject.org/downloading-data/how-do-i-download-the-materials-project-database.md).

# How do I download the Materials Project database?

The Materials Project is an open resource, with data freely available for all. This includes making its data as easy to download as possible including in bulk. Typically, downloading data manually can be slow and tedious, so we provide an API [(Application Programming Interface)](https://en.wikipedia.org/wiki/API) so that data can be downloaded using popular programming languages.

The Materials Project API defines a standardized manner in which the Materials Project database can be accessed by its users. The API is typically used by scientific researchers who need to retrieve large amounts of data to support their research.

For technical users, this is a RESTful API, meaning that it uses standard HTTP methods for communication, while conforming to the [representational state transfer](https://en.wikipedia.org/wiki/Representational_state_transfer) architecture style of software.

The Materials Project offers two APIs:

* **The main API**, giving access to all data primarily generated or maintained by the Materials Project.
* **The** [**MPContribs API**](/services/mpcontribs.md), which gives access to user-contributed data included on the Materials Project.

To use the APIs, you can use any client that can make HTTP requests (e.g. GET, POST). However, we maintain an official Python client package (`mp-api`). **This is the best way to interact with the Materials Project API.**

{% content-ref url="/pages/2k29eYifSgS2dTwz82Rd" %}
[Using the API](/downloading-data/using-the-api.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.materialsproject.org/downloading-data/how-do-i-download-the-materials-project-database.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
