---
title: Introduction
description: Access detailed API specifications for integrating with SuperTokens Core and frontend SDKs.
sidebar:
  order: 0.1
---

## Overview

The **CDI**, Core Driver Interface, is the API exposed by the **SuperTokens Core** service.
It is meant to be consumed only by your backend only.

:::info
In most cases, you don't need to directly interact with the API, since the existing [backend SDKS](/references/backend-sdks/reference) are built on top of it.
:::


### URL Structure

Most of the endpoints take in two path parameters: `appid-{appId}` and `{tenantId}`.
Both are optional.
If not set, the default app and tenant will be used.

Given the following endpoint: `/appid-{appId}/{tenantId}/recipe/totp/device/verify`:
- You can call it without the actual path parameters, using `/recipe/totp/device/verify` in your action. 
- You can set both values and end up with a path that looks like this: `/appid-myApp/myTenant/recipe/totp/device/verify`.

### Versioning

At the moment, the documentation pages only show the latest version of the API.
If you want to check an older release, please access the [Swagger page](https://app.swaggerhub.com/apis/supertokens/CDI)

To know which version you should see:
1. Check the version of the core you are running (for managed service, visit the dashboard, else run `supertokens --version` command)
2. Go to the [**SuperTokens Core** GitHub page](https://github.com/supertokens/supertokens-core)
3. Switch to the branch that matches the version of the core your running
4. Open the file called `coreDriverInterfaceSupported.json`
5. In there, you see an array of `X.Y` values, pick the latest one, and see the API spec for that.


## Authentication

The API uses JWT tokens for authentication.
In order for the core service to accept a request you need to set the `api-key` header with the value of your token.

If you are using the managed service, the token can be accessed from the **Connection Information** section on the deployment's **Overview** page in [the SaaS Dashboard](https://supertokens.com/dashboard).
In the context of a self-hosted instance, keys are not created by default.
You have to explicitly [generate them](/platform-configuration/supertokens-core/api-keys).
