---
title: Access Tokens
description: Discover Storyblok's documentation with comprehensive developer guides, user manuals, API references, and examples to help you get the most out of the headless CMS platform.
url: https://storyblok.com/docs/concepts/access-tokens
---

# Access Tokens

Storyblok offers a rich set of APIs and services for delivering and managing content and assets. Tokens protect access to these services.

## Read-only access tokens

Use read-only access tokens to view the content and assets in a specific space. To manage per-space tokens and generate new ones, select the space and open **Settings** → **Access Tokens**.

The following types of tokens are available:

-   **Public:** access `published` content using the [Content Delivery API](https://www.storyblok.com/docs/api/content-delivery/v2).
-   **Preview:** access `draft` and `published` content using the [Content Delivery API](https://www.storyblok.com/docs/api/content-delivery/v2).
-   **Asset:** access [private assets](/docs/concepts/assets) using the [Content Delivery API](https://www.storyblok.com/docs/api/content-delivery/v2).
-   **Release:** access content associated with a specific release. Requires the [Releases App](https://www.storyblok.com/docs/api/management/releases/).
-   **Theme:** access a theme for use by the Storyblok rendering service. _Note: the Storyblok rendering service is deprecated_.

  

> [!TIP]
> To specify how long the CDN caches the content, set a time-to-live (TTL).

The following snippet uses the [@storyblok/js](https://www.storyblok.com/docs/libraries/js/js-sdk) SDK to fetch published stories via the [Content Delivery API](https://www.storyblok.com/docs/api/content-delivery/v2/stories/retrieve-multiple-stories):

```javascript
import { apiPlugin, storyblokInit } from '@storyblok/js';

const { storyblokApi } = storyblokInit({
  accessToken: 'YOUR_ACCESS_TOKEN',
  use: [apiPlugin],
});

// Use a public or preview access token
const { data } = await storyblokApi.get('cdn/stories', {
  version: 'published',
});
```

For other languge-specific snippets, visit the Content Delivery API [authentication](https://www.storyblok.com/docs/api/content-delivery/v2/getting-started/authentication) page.

## Read-write access tokens

Use these tokens to perform CRUD (create, read, update, delete) operations via the [Management API](https://www.storyblok.com/docs/api/management). Learn more about personal and OAuth tokens in the Management API [authentication](https://www.storyblok.com/docs/api/management/getting-started/authentication) page.

### Personal access token

This token is account-specific. To manage existing tokens or generate new ones, open your [**Account settings**](https://app.storyblok.com/#/me/account?tab=token): **My account** → **Account settings** → **Personal access tokens**.

> [!TIP]
> To help prevent unauthorized access to your Storyblok account, set an expiration date for the token.

### **OAuth access token**

This token is tied to a single space. Obtain it via the [OAuth2 authentication flow](https://www.storyblok.com/docs/plugins/oauth-authorization-flow) and is tied to a single space.

## Pagination

-   [Previous: Introduction](/docs/concepts)
-   [Next: Assets](/docs/concepts/assets)
