---
title: Retrieving a Story from a Specific Release
description: Example showing how to retrieve a version of a story from a specific release by using the from_release query parameter.
url: https://storyblok.com/docs/api/content-delivery/v2/stories/examples/retrieving-an-edited-version-of-a-story-from-a-release
---

# Retrieving a Story from a Specific Release

To retrieve a version of a story from a specific release, use the `from_release` query parameter. Find this parameter in either of the following two places:

-   The URL of the story in the Visual Editor when viewing a story from a release. The URL is in this format: `/me/spaces/SPACE_ID/stories/BRANCH_ID/RELEASE_ID/index/STORY_ID`
-   The `_storyblok_release` query parameter in the preview URL when opening a preview environment in the Visual Editor.

The following example demonstrates how to retrieve the edited version of a single story from release `124105888551306` by appending `from_release=124105888551306` to the request.

-   cURL
    
    ```shellscript
    curl "https://api.storyblok.com/v2/cdn/stories/home\
    ?version=draft\
    &token=krcV6QGxWORpYLUWt12xKQtt\
    &cv=1765990908\
    &from_release=124105888551306"
    ```
    
-   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/home', {
        "version": "draft",
        "cv": "1765990908",
        "from_release": "124105888551306"
      })
      console.log({ response })
    } catch (error) {
      console.log(error)
    }
    ```
    
-   PHP
    
    ```php
    $client = new \Storyblok\Client('YOUR_STORYBLOK_SPACE_ACCESS_TOKEN');
    
    $client->getStoryBySlug('home', [
      "version" => "draft",
      "cv" => "1765990908",
      "from_release" => "124105888551306"
    ])->getBody();
    ```
    
-   Java
    
    ```java
    HttpResponse<String> response = Unirest.get("https://api.storyblok.com/v2/cdn/stories/home?version=draft&token=krcV6QGxWORpYLUWt12xKQtt&cv=1765990908&from_release=124105888551306")
      .asString();
    ```
    
-   C#
    
    ```csharp
    var client = new RestClient("https://api.storyblok.com/v2/cdn/stories/home?version=draft&token=krcV6QGxWORpYLUWt12xKQtt&cv=1765990908&from_release=124105888551306");
    var request = new RestRequest(Method.GET);
    
    IRestResponse response = client.Execute(request);
    ```
    
-   Python
    
    ```python
    import requests
    
    url = "https://api.storyblok.com/v2/cdn/stories/home"
    
    querystring = {"version":"draft","token":"krcV6QGxWORpYLUWt12xKQtt","cv":"1765990908","from_release":"124105888551306"}
    
    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('home', {:params => {
      "version" => "draft",
      "cv" => "1765990908",
      "from_release" => "124105888551306"
    }})
    ```
    
-   Swift
    
    ```swift
    let storyblok = URLSession(storyblok: .cdn(accessToken: "krcV6QGxWORpYLUWt12xKQtt"))
    var request = URLRequest(storyblok: storyblok, path: "stories/home")
    request.url!.append(queryItems: [
        URLQueryItem(name: "version", value: "draft"),
        URLQueryItem(name: "cv", value: "1765990908"),
        URLQueryItem(name: "from_release", value: "124105888551306")
    ])
    let (data, _) = try await storyblok.data(for: request)
    print(try JSONSerialization.jsonObject(with: data))
    ```
    
-   Kotlin
    
    ```kotlin
    val client = HttpClient {
        install(Storyblok(CDN)) {
            accessToken = "krcV6QGxWORpYLUWt12xKQtt"
        }
    }
    
    val response = client.get("stories/home") {
        url {
            parameters.append("version", "draft")
            parameters.append("cv", "1765990908")
            parameters.append("from_release", "124105888551306")
        }
    }
    
    println(response.body<JsonElement>())
    ```

Response

```json
{
  "story": {
    "name": "Home",
    "created_at": "2025-02-11T10:33:24.483Z",
    "published_at": "2025-04-24T18:15:00.136Z",
    "updated_at": "2025-08-14T11:20:47.473Z",
    "id": 623949938,
    "uuid": "2fcf7551-9fbb-4f8e-bf67-a50f2adb36be",
    "content": {
      "_uid": "d31919a3-a807-4274-9820-0bf87f7ba03c",
      "body": [
        {
          "_uid": "f7a7e8b4-a8d0-4f03-9d40-0f54c118908a",
          "list": [
            "ffcbc799-bada-4a18-8410-24a3c604486a",
            "5c03a684-6897-4f7c-82f9-d3f0aee3e753",
            "8fda0559-6a21-47f0-b703-0e208e52a0ec",
            "f9c66d5d-6056-477a-9a6b-7732bc7dee94"
          ],
          "component": "blogPostList",
          "_editable": "\u003C!--#storyblok#{\"name\": \"blogPostList\", \"space\": \"325428\", \"uid\": \"f7a7e8b4-a8d0-4f03-9d40-0f54c118908a\", \"id\": \"623949938\"}--\u003E"
        }
      ],
      "text": "Blog Posts",
      "component": "page",
      "_editable": "\u003C!--#storyblok#{\"name\": \"page\", \"space\": \"325428\", \"uid\": \"d31919a3-a807-4274-9820-0bf87f7ba03c\", \"id\": \"623949938\"}--\u003E"
    },
    "slug": "home",
    "full_slug": "home",
    "sort_by_date": null,
    "position": 0,
    "tag_list": [],
    "is_startpage": false,
    "parent_id": 0,
    "meta_data": null,
    "group_id": "b2672c20-8253-489b-9854-db3270150d1a",
    "first_published_at": "2025-04-08T08:00:40.178Z",
    "release_id": "124105888551306",
    "lang": "default",
    "path": "/",
    "alternates": [],
    "default_full_slug": null,
    "translated_slugs": null
  },
  "cv": 1765990910,
  "rels": [],
  "links": []
}
```

## Pagination

-   [Previous: The Story Object](/docs/api/content-delivery/v2/stories/the-story-object)
-   [Next: Retrieving Localized Stories by UUID](/docs/api/content-delivery/v2/stories/examples/retrieving-localized-stories-by-uuid)
