Retrieve a Single Story
Retrieve a single story by full slug, ID, or UUID. Includes parameters for resolving links and relations.
https://api.storyblok.com/v2/cdn/stories/:idPath parameters
Section titled “Path parameters”:idrequired stringThe story’s
id,uuid, orfull_slug. Examples:home(Full slug),66252740648132(Numeric ID),73a1d66c-dedc-48da-8174-0f2ca6441293(UUID).
Query parameters
Section titled “Query parameters”find_bystringRequired when using the storyuuidas a path parameter.versionstringFilter by the story’s publication status.resolve_linksstringResolve link fields. The
linksproperty of the response includes resolved links:link: provides access to additional information, such as a linked story’sfull_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_levelintegerResolve up to two levels of links.resolve_relationsstringUsed to resolve referenced stories. Resolved stories appear in the
relsproperty of the response.A single request can resolve up to 50 stories. Afterward, all story
UUIDappear in therel_uuidsproperty 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_releasestringAccess a story version in a specific release by providing the release ID.content_typestringRetrieve stories of a specific content type block. For example,content_type=page.cvintegerCached version Unix timestamp. Learn more in the Caching concept.excluding_fieldsstringTo 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
componentfield from the response, returns the content of the story in the default language instead of the requestedlanguage.excluding_story_fieldsstringExclude top-level story response fields with a comma-separated list. For example,excluding_story_fields=alternates,translated_slugs.languagestringRetrieve translated story version. Accepts any language code configured in the Storyblok space.fallback_langstringDefine a custom fallback language to handle untranslated fields. Accepts any language code configured in the space. Provide language code with underscores. For example,es_coinstead ofes-co.resolve_assetsintegerUsed to resolve asset metadata, including custom metadata. Whenresolve_assets=1, an array of assets associated with the stories appear in theassetsproperty of the response.resolve_levelintegerUsed 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.tokenrequired stringA preview or public access token configured in a space.
Response properties
Section titled “Response properties”storyStoryShow child properties
namestringStory name.created_atstringCreation timestamp. Supports ISO 8601.updated_atstring | nullLatest update timestamp. Supports ISO 8601.published_atstring | nullLatest publication timestamp. Supports ISO 8601.alternatesarray<StoryAlternate>An array that contains objects that provide basic data of the stories defined as alternates of the current story.
Show child properties
idintegerStory ID.namestringStory name.slugstringStory slug.publishedboolean | nullReturnstrueif the story is currently published.full_slugstringThe story’s full slug, including parent folder and language paths.is_folderbooleanReturnstrueif the item is a folder.parent_idintegerID of the parent folder.
idintegerStory ID.uuidstringStory UUID.contentobjectAn object that contains the field data associated with a content type’s specific structure. Also includes a
componentproperty with the content type’s technical name.Show child properties
_uidstringcomponentstring
slugstringStory.full_slugstringThe story’s full slug, including parent folder and language paths.default_full_slugstring | nullContains the complete slug of the default language (requires the Translatable Slugs app).sort_by_datestring | nullDate defined in the story’s entry configuration. Supports ISO 8601.positionintegerNumeric representation of the story’s position in the folder. Users can change this property in the Content tab.tag_listarray<string>An array of tags.is_startpagebooleanReturnstrueif the story is the folder root.parent_idintegerParent folder ID.meta_dataobject | nullAn object to store non-editable data that’s exclusively maintained with the Management API.group_idstringGroup ID (UUID string), shared between stories defined as alternates.first_published_atstring | nullFirst publication timestamp. Supports ISO 8601.release_idinteger | nullCurrent release ID (if requested via thefrom_releaseparameter).langstringThe story’s language code.pathstring | nullReal path defined in the story’s entry configuration. Learn more in the Visual Editor concept).translated_slugsarray | nullAn array of translated slug objects (requires the Translatable Slugs app).
Show child properties
pathstringTranslated slug.namestring | nullTranslated name.langstringThe story’s language code.publishedboolean | nullReturnstrueif story variant is currently published.
taxonomy_termsarray<object>To retrieve taxonomy terms assigned to the story, use
with_taxonomy_terms=1.Show child properties
idstringdisplay_namestringnamestringtaxonomy_idstring
cvintegerCached version Unix timestamp.relsarray<Story>An array of resolved stories.
Show child properties
namestringStory name.created_atstringCreation timestamp. Supports ISO 8601.updated_atstring | nullLatest update timestamp. Supports ISO 8601.published_atstring | nullLatest publication timestamp. Supports ISO 8601.alternatesarray<StoryAlternate>An array that contains objects that provide basic data of the stories defined as alternates of the current story.
Show child properties
idintegerStory ID.namestringStory name.slugstringStory slug.publishedboolean | nullReturnstrueif the story is currently published.full_slugstringThe story’s full slug, including parent folder and language paths.is_folderbooleanReturnstrueif the item is a folder.parent_idintegerID of the parent folder.
idintegerStory ID.uuidstringStory UUID.contentobjectAn object that contains the field data associated with a content type’s specific structure. Also includes a
componentproperty with the content type’s technical name.Show child properties
_uidstringcomponentstring
slugstringStory.full_slugstringThe story’s full slug, including parent folder and language paths.default_full_slugstring | nullContains the complete slug of the default language (requires the Translatable Slugs app).sort_by_datestring | nullDate defined in the story’s entry configuration. Supports ISO 8601.positionintegerNumeric representation of the story’s position in the folder. Users can change this property in the Content tab.tag_listarray<string>An array of tags.is_startpagebooleanReturnstrueif the story is the folder root.parent_idintegerParent folder ID.meta_dataobject | nullAn object to store non-editable data that’s exclusively maintained with the Management API.group_idstringGroup ID (UUID string), shared between stories defined as alternates.first_published_atstring | nullFirst publication timestamp. Supports ISO 8601.release_idinteger | nullCurrent release ID (if requested via thefrom_releaseparameter).langstringThe story’s language code.pathstring | nullReal path defined in the story’s entry configuration. Learn more in the Visual Editor concept).translated_slugsarray | nullAn array of translated slug objects (requires the Translatable Slugs app).
Show child properties
pathstringTranslated slug.namestring | nullTranslated name.langstringThe story’s language code.publishedboolean | nullReturnstrueif story variant is currently published.
taxonomy_termsarray<object>To retrieve taxonomy terms assigned to the story, use
with_taxonomy_terms=1.Show child properties
idstringdisplay_namestringnamestringtaxonomy_idstring
linksarray<LinkWithFullSlug>An array of resolved links.
Show child properties
idintegerStory or folderid.uuidstringStory or folderuuid.slugstringStory or folder full slug.pathstring | nullReal path defined in the story’s entry configuration. Learn more in the Visual Editor concept).real_pathstring | nullEither 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/.namestringStory or folder name.publishedbooleanReturnstrueif the story is currently published.parent_idintegerParent folder ID.is_folderbooleanReturnstrueif the item is a folder.is_startpagebooleanReturnstrueif the story is the folder’s root.positionintegerNumeric representation of the story’s position in the folder. Users can change this property in the Content tab.published_atstring | nullLatest publication timestamp. Supports ISO 8601.created_atstring | nullCreation timestamp. Supports ISO 8601.updated_atstring | nullLatest update timestamp. Supports ISO 8601.alternatesarray<Alternate>An array that contains objects correlating to the language versions defined using field-level translation.
The
alternatesparameter is different from the story alternates defined in the Dimensions app when using folder-level translation.Show child properties
pathstringTranslated story slug (learn more about the Translatable Slugs app).namestringTranslated story name (learn more about the Translatable Slugs app).langstringThe story’s language code.publishedbooleanReturnstrueif story language version is currently published.translated_slugstringTranslated story slug (learn more about the Translatable Slugs app).
full_slugstringThe story’s full slug, including parent folder and language paths.
rel_uuidsarray<string>An array of all referenced stories’ UUIDs.link_uuidsarray<string>An array of all linked stories’ UUIDs.
Examples
Section titled “Examples”curl "https://api.storyblok.com/v2/cdn/stories/:id\?token=ask9soUkv02QqbZgmZdeDAtt"// storyblok-js-client@>=7, node@>=18import 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)}$client = new \Storyblok\Client('YOUR_STORYBLOK_SPACE_ACCESS_TOKEN');
$client->getStoryBySlug(':id')->getBody();HttpResponse<String> response = Unirest.get("https://api.storyblok.com/v2/cdn/stories/:id?token=ask9soUkv02QqbZgmZdeDAtt") .asString();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);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)require 'storyblok'client = Storyblok::Client.new(token: 'YOUR_TOKEN')
client.story(':id')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))val client = HttpClient { install(Storyblok(CDN)) { accessToken = "ask9soUkv02QqbZgmZdeDAtt" }}
val response = client.get("stories/:id")
println(response.body<JsonElement>()){"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}Was this page helpful?
This site uses reCAPTCHA and Google's Privacy Policy (opens in a new window).Terms of Service (opens in a new window) apply.
Get in touch with the Storyblok community