---
title: Retrieve a Single Story
description: Retrieve a single story by full slug, ID, or UUID. Includes parameters for resolving links and relations.
url: https://www.storyblok.com/docs/api/content-delivery/v2/stories/retrieve-a-single-story
---

# Retrieve a Single Story

Retrieve a single story by full slug, ID, or UUID. Includes parameters for resolving links and relations.

GET

```html
https://api.storyblok.com/v2/cdn/stories/:id
```

## Path parameters

-   `:id` (required) (string)
    
    The story’s `id`, `uuid`, or `full_slug`. Examples: `home` (Full slug), `66252740648132` (Numeric ID), `73a1d66c-dedc-48da-8174-0f2ca6441293` (UUID).
    

## Query parameters

-   `find_by` (string)
    
    Required when using the story `uuid` as a path parameter.
    
-   `version` (string)
    
    Filter by the story’s publication status.
    
-   `resolve_links` (string)
    
    Resolve [link fields](https://www.storyblok.com/docs/concepts/fields#link). The `links` property of the response includes resolved links:
    
    -   `link`: provides access to additional information, such as a linked story’s `full_slug`, `path`, `parent_id`, `is_folder`, `published`, `is_startpage`, `position`, `alternates`, `real_path`, and more.
    -   `url`: provides the minimum amount of information. Use when you only need the path of a linked story.
    -   `story`: resolves and returns the complete story object of a linked story.
    
-   `resolve_links_level` (integer)
    
    Resolve up to two levels of links.
    
-   `resolve_relations` (string)
    
    Used to resolve [referenced stories](https://www.storyblok.com/docs/concepts/references). Resolved stories appear in the `rels` property of the response.
    
    A single request can resolve up to 50 stories. Afterward, all story `UUID` appear in the `rel_uuids` property of the response and need to resolve in subsequent API requests.
    
    To resolve the stories selected in one field, provide the technical name of the immediate parent component of the field, followed by a `.` and the field name. To resolve the stories selected in multiple fields, provide a comma-separated string.
    
    Example: `resolve_relations=page.author,page.categories`.
    
-   `from_release` (string)
    
    Access a story version in a specific release by providing the release ID.
    
-   `content_type` (string)
    
    Retrieve stories of a specific content type block. For example, `content_type=page`.
    
-   `cv` (integer)
    
    Cached version Unix timestamp. Learn more in the [Caching concept](https://www.storyblok.com/docs/concepts/caching).
    
-   `excluding_fields` (string)
    
    To exclude specific fields of a content type, provide the field names as a comma-separated string. For example, `excluding_fields=body,meta_description`.
    
    Excluding the `component` field from the response, returns the content of the story in the default language instead of the requested `language`.
    
-   `excluding_story_fields` (string)
    
    Exclude top-level story response fields with a comma-separated list. For example, `excluding_story_fields=alternates,translated_slugs`.
    
-   `language` (string)
    
    Retrieve translated story version. Accepts any language code configured in the Storyblok space.
    
-   `fallback_lang` (string)
    
    Define a custom fallback language to handle untranslated fields. Accepts any language code configured in the space. Provide language code with underscores. For example, `es_co` instead of `es-co`.
    
-   `resolve_assets` (integer)
    
    Used to resolve asset metadata, including custom metadata. When `resolve_assets=1`, an array of assets associated with the stories appear in the `assets` property of the response.
    
-   `resolve_level` (integer)
    
    Used to force resolve second-level relations when the first level reaches a limit of 100 relations.
    
    While resolving relations, if the first level exceeds 100 relations, the API stops looking for the second level. To resolve second-level relations regardless of the first-level relations’ limit, use `resolve_level=2`.
    
-   `token` (required) (string)
    
    A preview or public [access token](https://www.storyblok.com/docs/concepts/access-tokens) configured in a space.
    

## Response properties

-   `story` (Story)
    
    Show child properties
    
    -   `name` (string)
        
        Story name.
        
    -   `created_at` (string)
        
        Creation timestamp. Supports ISO 8601.
        
    -   `updated_at` (string | null)
        
        Latest update timestamp. Supports ISO 8601.
        
    -   `published_at` (string | null)
        
        Latest publication timestamp. Supports ISO 8601.
        
    -   `alternates` (array<StoryAlternate>)
        
        An array that contains objects that provide basic data of the stories defined as alternates of the current story.
        
        Show child properties
        
        -   `id` (integer)
            
            Story ID.
            
        -   `name` (string)
            
            Story name.
            
        -   `slug` (string)
            
            Story slug.
            
        -   `published` (boolean | null)
            
            Returns `true` if the story is currently published.
            
        -   `full_slug` (string)
            
            The story’s full slug, including parent folder and language paths.
            
        -   `is_folder` (boolean)
            
            Returns `true` if the item is a folder.
            
        -   `parent_id` (integer)
            
            ID of the parent folder.
            
        
    -   `id` (integer)
        
        Story ID.
        
    -   `uuid` (string)
        
        Story UUID.
        
    -   `content` (object)
        
        An object that contains the field data associated with a content type’s specific structure. Also includes a `component` property with the content type’s technical name.
        
        Show child properties
        
        -   `_uid` (string)
            
        -   `component` (string)
            
        
    -   `slug` (string)
        
        Story.
        
    -   `full_slug` (string)
        
        The story’s full slug, including parent folder and language paths.
        
    -   `default_full_slug` (string | null)
        
        Contains the complete slug of the default language (requires the [Translatable Slugs app](https://www.storyblok.com/apps/translatable-slugs)).
        
    -   `sort_by_date` (string | null)
        
        Date defined in the story’s entry configuration. Supports ISO 8601.
        
    -   `position` (integer)
        
        Numeric representation of the story’s position in the folder. Users [can change](https://www.storyblok.com/docs/manuals/stories#folders) this property in the **Content** tab.
        
    -   `tag_list` (array<string>)
        
        An array of tags.
        
    -   `is_startpage` (boolean)
        
        Returns `true` if the story is the folder root.
        
    -   `parent_id` (integer)
        
        Parent folder ID.
        
    -   `meta_data` (object | null)
        
        An object to store non-editable data that’s exclusively maintained with the [Management API](https://www.storyblok.com/docs/api/management).
        
    -   `group_id` (string)
        
        Group ID (UUID string), shared between stories defined as alternates.
        
    -   `first_published_at` (string | null)
        
        First publication timestamp. Supports ISO 8601.
        
    -   `release_id` (integer | null)
        
        Current release ID (if requested via the `from_release` parameter).
        
    -   `lang` (string)
        
        The story’s language code.
        
    -   `path` (string | null)
        
        Real path defined in the story’s entry configuration. Learn more in the [Visual Editor concept](https://www.storyblok.com/docs/concepts/visual-editor)).
        
    -   `translated_slugs` (array | null)
        
        An array of translated slug objects (requires the [Translatable Slugs app](https://www.storyblok.com/apps/translatable-slugs)).
        
        Show child properties
        
        -   `path` (string)
            
            Translated slug.
            
        -   `name` (string | null)
            
            Translated name.
            
        -   `lang` (string)
            
            The story’s language code.
            
        -   `published` (boolean | null)
            
            Returns `true` if story variant is currently published.
            
        
    -   `taxonomy_terms` (array<object>)
        
        To retrieve taxonomy terms assigned to the story, use `with_taxonomy_terms=1`.
        
        Show child properties
        
        -   `id` (string)
            
        -   `display_name` (string)
            
        -   `name` (string)
            
        -   `taxonomy_id` (string)
            
        
    
-   `cv` (integer)
    
    Cached version Unix timestamp.
    
-   `rels` (array<Story>)
    
    An array of resolved stories.
    
    Show child properties
    
    -   `name` (string)
        
        Story name.
        
    -   `created_at` (string)
        
        Creation timestamp. Supports ISO 8601.
        
    -   `updated_at` (string | null)
        
        Latest update timestamp. Supports ISO 8601.
        
    -   `published_at` (string | null)
        
        Latest publication timestamp. Supports ISO 8601.
        
    -   `alternates` (array<StoryAlternate>)
        
        An array that contains objects that provide basic data of the stories defined as alternates of the current story.
        
        Show child properties
        
        -   `id` (integer)
            
            Story ID.
            
        -   `name` (string)
            
            Story name.
            
        -   `slug` (string)
            
            Story slug.
            
        -   `published` (boolean | null)
            
            Returns `true` if the story is currently published.
            
        -   `full_slug` (string)
            
            The story’s full slug, including parent folder and language paths.
            
        -   `is_folder` (boolean)
            
            Returns `true` if the item is a folder.
            
        -   `parent_id` (integer)
            
            ID of the parent folder.
            
        
    -   `id` (integer)
        
        Story ID.
        
    -   `uuid` (string)
        
        Story UUID.
        
    -   `content` (object)
        
        An object that contains the field data associated with a content type’s specific structure. Also includes a `component` property with the content type’s technical name.
        
        Show child properties
        
        -   `_uid` (string)
            
        -   `component` (string)
            
        
    -   `slug` (string)
        
        Story.
        
    -   `full_slug` (string)
        
        The story’s full slug, including parent folder and language paths.
        
    -   `default_full_slug` (string | null)
        
        Contains the complete slug of the default language (requires the [Translatable Slugs app](https://www.storyblok.com/apps/translatable-slugs)).
        
    -   `sort_by_date` (string | null)
        
        Date defined in the story’s entry configuration. Supports ISO 8601.
        
    -   `position` (integer)
        
        Numeric representation of the story’s position in the folder. Users [can change](https://www.storyblok.com/docs/manuals/stories#folders) this property in the **Content** tab.
        
    -   `tag_list` (array<string>)
        
        An array of tags.
        
    -   `is_startpage` (boolean)
        
        Returns `true` if the story is the folder root.
        
    -   `parent_id` (integer)
        
        Parent folder ID.
        
    -   `meta_data` (object | null)
        
        An object to store non-editable data that’s exclusively maintained with the [Management API](https://www.storyblok.com/docs/api/management).
        
    -   `group_id` (string)
        
        Group ID (UUID string), shared between stories defined as alternates.
        
    -   `first_published_at` (string | null)
        
        First publication timestamp. Supports ISO 8601.
        
    -   `release_id` (integer | null)
        
        Current release ID (if requested via the `from_release` parameter).
        
    -   `lang` (string)
        
        The story’s language code.
        
    -   `path` (string | null)
        
        Real path defined in the story’s entry configuration. Learn more in the [Visual Editor concept](https://www.storyblok.com/docs/concepts/visual-editor)).
        
    -   `translated_slugs` (array | null)
        
        An array of translated slug objects (requires the [Translatable Slugs app](https://www.storyblok.com/apps/translatable-slugs)).
        
        Show child properties
        
        -   `path` (string)
            
            Translated slug.
            
        -   `name` (string | null)
            
            Translated name.
            
        -   `lang` (string)
            
            The story’s language code.
            
        -   `published` (boolean | null)
            
            Returns `true` if story variant is currently published.
            
        
    -   `taxonomy_terms` (array<object>)
        
        To retrieve taxonomy terms assigned to the story, use `with_taxonomy_terms=1`.
        
        Show child properties
        
        -   `id` (string)
            
        -   `display_name` (string)
            
        -   `name` (string)
            
        -   `taxonomy_id` (string)
            
        
    
-   `links` (array<LinkWithFullSlug>)
    
    An array of resolved links.
    
    Show child properties
    
    -   `id` (integer)
        
        Story or folder `id`.
        
    -   `uuid` (string)
        
        Story or folder `uuid`.
        
    -   `slug` (string)
        
        Story or folder full slug.
        
    -   `path` (string | null)
        
        Real path defined in the story’s entry configuration. Learn more in the [Visual Editor concept](https://www.storyblok.com/docs/concepts/visual-editor)).
        
    -   `real_path` (string | null)
        
        Either the full slug of the story or folder with a leading `/`, or the value of the real path defined in the story’s entry configuration with a leading `/`.
        
    -   `name` (string)
        
        Story or folder name.
        
    -   `published` (boolean)
        
        Returns `true` if the story is currently published.
        
    -   `parent_id` (integer)
        
        Parent folder ID.
        
    -   `is_folder` (boolean)
        
        Returns `true` if the item is a folder.
        
    -   `is_startpage` (boolean)
        
        Returns `true` if the story is the folder’s root.
        
    -   `position` (integer)
        
        Numeric representation of the story’s position in the folder. Users [can change](https://www.storyblok.com/docs/manuals/stories#folders) this property in the **Content** tab.
        
    -   `published_at` (string | null)
        
        Latest publication timestamp. Supports ISO 8601.
        
    -   `created_at` (string | null)
        
        Creation timestamp. Supports ISO 8601.
        
    -   `updated_at` (string | null)
        
        Latest update timestamp. Supports ISO 8601.
        
    -   `alternates` (array<Alternate>)
        
        An array that contains objects correlating to the language versions defined using [field-level translation](https://www.storyblok.com/docs/concepts/internationalization#field-level-translation).
        
        The `alternates` parameter is different from the story alternates defined in the [Dimensions app](https://www.storyblok.com/apps/locales) when using [folder-level translation](https://www.storyblok.com/docs/concepts/internationalization#folder-level-translation).
        
        Show child properties
        
        -   `path` (string)
            
            Translated story slug (learn more about the [Translatable Slugs app](https://www.storyblok.com/apps/translatable-slugs)).
            
        -   `name` (string)
            
            Translated story name (learn more about the [Translatable Slugs app](https://www.storyblok.com/apps/translatable-slugs)).
            
        -   `lang` (string)
            
            The story’s language code.
            
        -   `published` (boolean)
            
            Returns `true` if story language version is currently published.
            
        -   `translated_slug` (string)
            
            Translated story slug (learn more about the [Translatable Slugs app](https://www.storyblok.com/apps/translatable-slugs)).
            
        
    -   `full_slug` (string)
        
        The story’s full slug, including parent folder and language paths.
        
    
-   `rel_uuids` (array<string>)
    
    An array of all referenced stories’ UUIDs.
    
-   `link_uuids` (array<string>)
    
    An array of all linked stories’ UUIDs.
    

## Examples

-   cURL
    
    ```shellscript
    curl "https://api.storyblok.com/v2/cdn/stories/:id\
    ?token=ask9soUkv02QqbZgmZdeDAtt"
    ```
    
-   JS
    
    ```javascript
    // storyblok-js-client@>=7, node@>=18
    import Storyblok from "storyblok-js-client";
    
    const storyblok = new Storyblok({
      accessToken: "krcV6QGxWORpYLUWt12xKQtt",
    });
    
    try {
      const response = await storyblok.get('cdn/stories/:id', {})
      console.log({ response })
    } catch (error) {
      console.log(error)
    }
    ```
    
-   PHP
    
    ```php
    $client = new \Storyblok\Client('YOUR_STORYBLOK_SPACE_ACCESS_TOKEN');
    
    $client->getStoryBySlug(':id')->getBody();
    ```
    
-   Java
    
    ```java
    HttpResponse<String> response = Unirest.get("https://api.storyblok.com/v2/cdn/stories/:id?token=ask9soUkv02QqbZgmZdeDAtt")
      .asString();
    ```
    
-   C#
    
    ```csharp
    var client = new RestClient("https://api.storyblok.com/v2/cdn/stories/:id?token=ask9soUkv02QqbZgmZdeDAtt");
    var request = new RestRequest(Method.GET);
    
    IRestResponse response = client.Execute(request);
    ```
    
-   Python
    
    ```python
    import requests
    
    url = "https://api.storyblok.com/v2/cdn/stories/:id"
    
    querystring = {"token":"ask9soUkv02QqbZgmZdeDAtt"}
    
    payload = ""
    headers = {}
    
    response = requests.request("GET", url, data=payload, headers=headers, params=querystring)
    
    print(response.text)
    ```
    
-   Ruby
    
    ```ruby
    require 'storyblok'
    client = Storyblok::Client.new(token: 'YOUR_TOKEN')
    
    client.story(':id')
    ```
    
-   Swift
    
    ```swift
    let storyblok = URLSession(storyblok: .cdn(accessToken: "ask9soUkv02QqbZgmZdeDAtt"))
    let request = URLRequest(storyblok: storyblok, path: "stories/:id")
    let (data, _) = try await storyblok.data(for: request)
    print(try JSONSerialization.jsonObject(with: data))
    ```
    
-   Kotlin
    
    ```kotlin
    val client = HttpClient {
        install(Storyblok(CDN)) {
            accessToken = "ask9soUkv02QqbZgmZdeDAtt"
        }
    }
    
    val response = client.get("stories/:id")
    
    println(response.body<JsonElement>())
    ```

Response

```json
{
"story": {
  "name": "Homepage",
  "created_at": "2025-01-15T09:30:00.000Z",
  "updated_at": "2025-06-02T14:12:05.000Z",
  "published_at": "2025-01-15T09:32:10.000Z",
  "id": 371891025,
  "uuid": "8f14e45f-ceea-467e-adc1-5c1b1a3a7b3b",
  "content": {
    "_uid": "b1f8c9a2-3d44-4c2e-9a1e-6e7d2f5c9a10",
    "component": "page",
    "body": [
      {
        "_uid": "1a2b3c4d-5e6f-4a1b-8c2d-9e0f1a2b3c4d",
        "component": "teaser",
        "headline": "Welcome to Storyblok"
      }
    ]
  },
  "slug": "home",
  "full_slug": "home",
  "sort_by_date": null,
  "position": 0,
  "tag_list": [
    "marketing",
    "featured"
  ],
  "is_startpage": true,
  "parent_id": 0,
  "meta_data": null,
  "group_id": "57350688-5a28-49d1-b5a9-086ae0d4c0d2",
  "first_published_at": "2025-01-15T09:32:10.000Z",
  "release_id": null,
  "lang": "default",
  "path": null,
  "alternates": [],
  "default_full_slug": null,
  "translated_slugs": null
},
"cv": 1717516800
}
```

## Pagination

-   [Previous: Retrieve Current Space](/docs/api/content-delivery/v2/spaces/retrieve-current-space)
-   [Next: Retrieve Multiple Stories](/docs/api/content-delivery/v2/stories/retrieve-multiple-stories)
