---
title: Core Data APIs
sidebarTitle: Overview
description: "Query the Cube semantic layer using SQL, DAX, REST (JSON), or GraphQL protocols depending on your application needs."
---

 Core Data APIs

Core Data APIs enable you to query and retrieve data from your Cube semantic layer using various protocols and formats, including SQL, DAX, REST (JSON), and GraphQL.

## Choosing the Right API

* To connect to [Microsoft Excel][ref-excel], use [Cube for Excel][ref-cube-cloud-for-excel]

* To connect to [Google Sheets][ref-sheets], use [Cube for Sheets][ref-cube-cloud-for-sheets]

* To connect to AI assistants, use the [Model Context Protocol (MCP) server][ref-mcp-server]

* For internal or self-serve [business intelligence][cube-issbi], connect via the [SQL API][ref-sql-api]

* For [embedded analytics][cube-ea] and [real-time analytics][cube-rta], use [REST (JSON) API][ref-rest-api] or [GraphQL API][ref-graphql-api]. When using the REST (JSON) API, the [JavaScript SDK][ref-js-sdk] can simplify integration with your front-end code

All Core Data APIs share common [querying concepts][ref-queries] and support authentication, security contexts, and access policies defined in your semantic layer.

<Note>

See this [GitHub issue](https://github.com/cube-js/cube/issues/1744#issuecomment-2291680777)
for an unofficial, community-maintained [client library for Python](https://github.com/mharrisb1/cube-http-client).

</Note>

## Data modeling

Support for data modeling features differ across APIs, integrations, and [visualization
tools][ref-viz-tools]. Some of the features with partial support are listed below:

| Feature | ✅ Supported in |
| --- | --- |
| [Hierarchies][ref-hierarchies] | [Cube for Excel][ref-cube-cloud-for-excel]<br/>[Cube for Sheets][ref-cube-cloud-for-sheets]<br/><br/>Also, supported in [Playground][ref-playground] |
| Flat [folders][ref-folders] | [Cube for Excel][ref-cube-cloud-for-excel]<br/>[Cube for Sheets][ref-cube-cloud-for-sheets]<br/><br/>Also, supported in [Playground][ref-playground] |
| [Custom time formats][ref-custom-time-formats] | [Playground][ref-playground] and [Workbooks][ref-workbooks] |

## Personal Core Data API Token

Cube users can generate a personal token to authenticate SQL API and
[REST (JSON) API][ref-rest-api] connections from external tools like BI
dashboards, notebooks, and SQL clients. Navigate to **Preferences → Personal
Core Data API Token** and click **Generate Token**.

The token authenticates as that user, so all [groups][ref-groups],
[user attributes][ref-user-attributes], and [data access policies][ref-dap]
are applied to queries made with this token. The page also provides connection
instructions for your deployment: host, port, and database name for the SQL
API, and a sample `curl` request using the token as a bearer token for the
REST (JSON) API:

```bash
curl <deployment-url>/cubejs-api/v1/meta \
  -H "Authorization: Bearer YOUR-CORE-DATA-API-TOKEN"
```

## Authentication methods

Support for authentication methods differ across APIs, integrations, and [visualization
tools][ref-viz-tools]:

| Method | ✅ Supported in |
| --- | --- |
| [User name and password][ref-auth-user-pass] | [MDX API][ref-mdx-api]<br/>[SQL API][ref-sql-api] |
| Kerberos and NTLM | [MDX API][ref-mdx-api] |
| [Identity provider][ref-auth-idp] | [Cube for Excel][ref-cube-cloud-for-excel]<br/>[Cube for Sheets][ref-cube-cloud-for-sheets] |
| [JSON Web Token][ref-auth-jwt] | [REST (JSON) API][ref-rest-api]<br/>[GraphQL API][ref-graphql-api] |
| [Personal Core Data API Token](#personal-core-data-api-token) | [SQL API][ref-sql-api]<br/>[REST (JSON) API][ref-rest-api] |

[cube-issbi]: https://cube.dev/use-cases/semantic-layer
[cube-ea]: https://cube.dev/use-cases/embedded-analytics
[cube-rta]: https://cube.dev/use-cases/real-time-analytics
[ref-queries]: /reference/core-data-apis/queries
[ref-sql-api]: /reference/core-data-apis/sql-api
[ref-mdx-api]: /reference/core-data-apis/mdx-api
[ref-rest-api]: /reference/core-data-apis/rest-api
[ref-graphql-api]: /reference/core-data-apis/graphql-api
[ref-js-sdk]: /reference/javascript-sdk
[ref-cube-cloud-for-excel]: /docs/integrations/microsoft-excel
[ref-cube-cloud-for-sheets]: /docs/integrations/google-sheets
[ref-mcp-server]: /docs/integrations/mcp-server
[ref-viz-tools]: /admin/connect-to-data/visualization-tools
[ref-hierarchies]: /reference/data-modeling/hierarchies
[ref-folders]: /reference/data-modeling/view#folders
[ref-excel]: /admin/connect-to-data/visualization-tools/excel
[ref-sheets]: /admin/connect-to-data/visualization-tools/google-sheets
[ref-auth-user-pass]: /embedding/authentication/jwt
[ref-auth-idp]: /embedding/authentication/jwt
[ref-auth-jwt]: /embedding/authentication/jwt
[ref-playground]: /docs/explore-analyze/playground
[ref-custom-time-formats]: /reference/data-modeling/dimensions#format
[ref-workbooks]: /docs/explore-analyze/workbooks
[ref-groups]: /admin/users-and-permissions/user-groups
[ref-user-attributes]: /admin/users-and-permissions/user-attributes
[ref-dap]: /docs/data-modeling/data-access-policies
