---
title: Introduction
description: Learn the basics of the Storyblok Management API, including authentication, pagination, rate limits, and error handling.
url: https://www.storyblok.com/docs/api/management
---

# Introduction

The Storyblok Management API is organized around REST. It has predictable, resource-oriented URLs and uses HTTP response codes to indicate API errors. The API uses built-in HTTP features, such as HTTP query parameters and HTTP verbs, which are understood by off-the-shelf HTTP clients. Further, it supports cross-origin resource sharing, allowing for secure interaction with the API from a client-side web application. All API responses, including errors, return JSON.

The Management API is designed for creating, editing, updating, and deleting content and configuration. To deliver content to end users, use the [Content Delivery API](/docs/api/content-delivery/v2) instead, as it uses a global CDN for lower latencies.

Common use cases for the Management API:

-   Content migration from a legacy CMS
-   Integration with third-party applications and services
-   Programmatic content operations
-   Managing components, spaces, and configuration

The base URL for the Management API depends on the server location of the space. Below are the available endpoints for different regions:

-   European Union
    
    ```plaintext
    https://mapi.storyblok.com/v1
    ```
    
-   United States
    
    ```plaintext
    https://api-us.storyblok.com/v1
    ```
    
-   Canada
    
    ```plaintext
    https://api-ca.storyblok.com/v1
    ```
    
-   Australia
    
    ```plaintext
    https://api-ap.storyblok.com/v1
    ```
    
-   China
    
    ```plaintext
    https://app.storyblokchina.cn/v1
    ```

## Authentication

API requests must be authenticated by providing either a [personal access token](/docs/concepts/access-tokens) or an [OAuth token](/docs/api/management/oauth/).

## Errors

The Management API uses standard HTTP response codes to indicate the success or failure of an API request.

## Rate limits

The Storyblok Management API is subject to rate limits to ensure fair usage and optimal performance. The following rate limits apply:

| Plan | Rate limit |
| --- | --- |
| Starter | 3 requests per second |
| Growth, Growth Plus, Premium, Elite | 6 requests per second |

To ensure compliance with the rate limits, consider the following practices:

-   **Throttling**: If a `429` status code is received, slow down requests by introducing delays to allow graceful recovery.
-   **Retrying**: Implement a retry strategy with exponential backoff for failed requests due to rate limit errors.
-   **Monitoring**: Set up monitoring and alerting to track API usage and detect rate limit breaches early.

## Pagination

Most endpoints that return lists of resources support pagination, including stories, assets, datasources, datasource entries, collaborators, activities, and tags. Refer to the individual endpoint documentation for details.

Paginated endpoints accept two parameters:

-   `page`: The page number to retrieve. Increase this value to receive the next page of entries. Default is `1`.
-   `per_page`: The number of entries per page. Default is `25`. Maximum is `100` (`1000` for datasource entries).

Paginated API requests include two properties in the response headers:

-   `total`: Indicates the total number of items available across all pages.
-   `per_page`: Specifies the number of items per page as per the request.

These values can be used to implement efficient pagination strategies.

> [!NOTE]
> Requesting a page number that is higher than the last available page number results in an empty array in the API response.

## Further resources

[Technical Limits](/pricing/technical-limits)

[Pricing](/pricing)

[Storyblok CLI](/docs/libraries/storyblok-cli)

## Pagination

-   [Previous: Get Signed URL](/docs/api/content-delivery/v2/assets/get-signed-url)
-   [Next: Access Tokens](/docs/api/management/access-tokens)
