Stories

Retrieve Multiple Stories

Changed on

Retrieve multiple stories from Storyblok with filtering, pagination, sorting, and relation resolution options.

get/v2/cdn/stories

Request

Query parameters

version'draft' | 'published'
Example:published

The content version to retrieve: draft or published. Default is published. Retrieving draft requires a preview access token.

cvinteger
Example:1234

Cached version Unix timestamp. Learn more in the Caching concept.

starts_withstring
Example:blog/posts

Filter by the story’s full_slug to return items starting with the given value.

search_termstring
Example:name

Search for any string in stories. The response contains all stories where the string appears anywhere in the name, slug, full slug, or content object. This includes UUIDs, field values, asset file names, and rich text nodes and attributes, such as "bold". Combine this parameter with the version parameter to filter by draft or published stories.

sort_bystring
Example:created_at:desc

Sort stories in ascending or descending order by a specific property. Possible properties are all default story properties and any custom fields defined in the schema of the story type.

Sort default story properties like so:

  • sort_by=created_at:desc
  • sort_by=slug:asc

Sort custom fields can like so:

  • sort_by=content.meta_description:asc
  • sort_by=content.event_title:desc

By default, all sorted custom fields are strings. To sort custom fields with numeric values, specify floats or integers:

  • sort_by=content.price:asc:float
  • sort_by=content.event_number:asc:int

Chain different sorts with commas: sort_by=name:desc,slug:asc.

Sort values and set the null or empty ones first or last:

  • sort_by=path:desc:nulls_first
  • sort_by=path:desc:nulls_last.

nulls_last is the default behavior.

per_pageinteger
Example:25

The number of items per page in a paginated response.

pageinteger
Example:1

Page number in a paginated response.

by_slugsstring
Example:posts/*

Retrieve stories by comma-separated full_slug. For example, by_slugs=posts/third-post,posts/second-post.

You can use * as a wildcard. For example, by_slugs=posts/*.

excluding_slugsstring
Example:homepage

Exclude stories by comma-separated full_slug. For example, excluding_slugs=posts/third-post,posts/second-post.

You can use * as a wildcard. For example, excluding_slugs=posts*.

published_at_gtstring date-time
Example:2025-07-16T08:00:00Z

Retrieve stories published after the specified date. Supports ISO 8601.

published_at_gtestring date-time
Example:2025-07-16T08:00:00Z

Retrieve stories published on or after the specified date. Supports ISO 8601.

published_at_ltstring
Example:2025-07-16T08:00:00Z

Retrieve stories published before the specified date. Supports ISO 8601.

published_at_ltestring date-time
Example:2025-07-16T08:00:00Z

Retrieve stories published on or before the specified date. Supports ISO 8601.

first_published_at_gtstring date-time
Example:2025-07-16T08:00:00Z

Retrieve stories first published after the specified date. Supports ISO 8601.

first_published_at_gtestring date-time
Example:2025-07-16T08:00:00Z

Retrieve stories first published at or after the specified date. Supports ISO 8601.

first_published_at_ltstring
Example:2025-07-16T08:00:00Z

Retrieve stories first published before the specified date Supports ISO 8601.

first_published_at_ltestring date-time
Example:2025-07-16T08:00:00Z

Retrieve stories first published at or before the specified date. Supports ISO 8601.

updated_at_gtstring date-time
Example:2025-07-16T08:00:00Z

Retrieve stories updated after the specified date. Supports ISO 8601.

updated_at_gtestring date-time
Example:2025-07-16T08:00:00Z

Retrieve stories updated at or after the specified date. Supports ISO 8601.

updated_at_ltstring
Example:2025-07-16T08:00:00Z

Retrieve stories updated before the specified date. Supports ISO 8601.

updated_at_ltestring date-time
Example:2025-07-16T08:00:00Z

Retrieve stories updated at or before the specified date. Supports ISO 8601.

in_workflow_stagesstring
Example:325604,325605

Retrieve stories in a particular workflow stage by providing a comma-separated list of workflow stage IDs. For example, in_workflow_stages=325604,325605.

content_typestring
Example:page

Retrieve stories of a specific content type block. For example, content_type=page.

levelinteger
Example:1

Retrieve stories in the specified folder level. Examples:

  • level=1 retrieves stories from the root folder
  • level=2 retrieves stories from top-level folders
  • level=3 retrieves stories from second-level folders

The response includes only the immediate child stories, excluding stories defined as root for the folder.

resolve_relationsstring
Example:page.author,page.categories

Used to resolve referenced stories. 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.

excluding_idsstring
Example:335015953,335015954

Exclude specific stories by IDs in a comma-separated string. For example, excluding_ids=335015953,335015954.

by_uuidsstring
Example:a78b2116-c26d-4d23-9cbe-fec477847b0e,9683820e-fc17-429e-ba23-eb41f26c0776

Retrieve specific stories by UUIDs in a comma-separated string. For example, by_uuids=a78b2116-c26d-4d23-9cbe-fec477847b0e,9683820e-fc17-429e-ba23-eb41f26c0776.

by_uuids_orderedstring
Example:a78b2116-c26d-4d23-9cbe-fec477847b0e,9683820e-fc17-429e-ba23-eb41f26c0776

Retrieve specific stories by UUIDs in a comma-separated string. The order of the stories in the response matches the order of the UUIDs. For example, by_uuids_ordered=a78b2116-c26d-4d23-9cbe-fec477847b0e,9683820e-fc17-429e-ba23-eb41f26c0776.

by_idsstring
Example:335015953,335015954

Retrieve items by id. Supports a comma-separated string.

with_tagstring
Example:featured

Filter by specific tag slug. For example, with_tag=featured.

Filter multiple tags by comma-separated string (treated like an OR operator). For example, with_tag=featured,editors_choice.

is_startpage0 | 1
Example:1

Filter by stories defined as root for the folder.

resolve_links'story' | 'url' | 'link'
Example:story

Resolve link fields. 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_level1 | 2
Example:1

Resolve up to two levels of links.

resolve_links_in_relations1
Example:1

To resolve the links inside related stories, set resolve_links_in_relations=1. This parameter requires both resolve_relations and resolve_links.

The links property of the response includes both the story’s own links and the ones returned from the related stories.

Links in resolve_level=2 relations remain unresolved.

When exceeding the limit, the response includes link_uuids instead of links.

from_releasestring
Example:1

Access a story version in a specific release by providing the release ID.

fallback_langstring
Example:de

Define a custom fallback language to handle untranslated fields. Supports languages defined in Settings → Internationalization. Provide language code with underscores. For example, es_co instead of es-co.

languagestring
Example:de

Retrieve translated story version. Supports languages defined in Settings → Internationalization.

__orobject[]

Learn more in Filter Queries.

excluding_fieldsstring
Example:title,body

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.

When a request has both excluding_fields and including_fields, the API ignores excluding_fields.

including_fieldsstring
Example:title,body

To return only specific fields of a content type, provide the field names as a comma-separated string. For example, including_fields=title,image.

The response always returns _uid, component, and _editable, as well as translated versions of a listed field.

Takes precedence over excluding_fields.

excluding_story_fieldsstring
Example:alternates,translated_slugs

Exclude top-level story response fields with a comma-separated list. For example, excluding_story_fields=alternates,translated_slugs.

resolve_assets1
Example:1

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_level2
Example:2

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.

only_variants'true'
Example:true

When set, returns only experiment variant stories.

tokenstring required
Example:ask9soUkv02QqbZgmZdeDAtt

A preview or public access token configured in a space.

Response

Stories listed

cvinteger required

Cached version Unix timestamp. Learn more in the Caching concept.

rel_uuidsstring[]

An array of all referenced stories’ UUIDs.

link_uuidsstring[]

An array of all linked stories’ UUIDs.

Example response

{
  "stories": [
    {
      "name": "Home",
      "created_at": "2025-07-09T14:35:26.851Z",
      "updated_at": "2025-07-09T14:35:26.851Z",
      "published_at": "2025-07-09T14:35:26.851Z",
      "alternates": [
        {
          "id": 12345,
          "name": "Home ES",
          "slug": "home-es",
          "published": true,
          "full_slug": "home-es"
        }
      ],
      "id": 1,
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "content": {
        "_uid": "54bac0c7-bf25-46d0-ba66-a0ea51091a8d",
        "body": [
          {
            "_uid": "57c35684-7f72-43f4-a965-16f328392882",
            "headline": "Hello world!!",
            "component": "teaser"
          },
          {
            "_uid": "9fd8401d-3ac9-4c4a-90af-0cb091487abe",
            "columns": [
              {
                "_uid": "eb7e436b-e19f-4bd1-87d4-2edd44389ded",
                "name": "Feature 1",
                "component": "feature"
              }
            ],
            "component": "grid"
          }
        ],
        "component": "page"
      },
      "slug": "home",
      "full_slug": "home",
      "default_full_slug": "home/",
      "sort_by_date": "2025-07-09T14:35:26.851Z",
      "position": 1,
      "tag_list": [
        "home"
      ],
      "is_startpage": true,
      "parent_id": 1,
      "meta_data": {},
      "group_id": "57350688-5a28-49d1-b5a9-086ae0d4c0d2",
      "first_published_at": "2025-07-09T14:35:26.851Z",
      "release_id": 1,
      "lang": "default",
      "path": "/home",
      "translated_slugs": [
        {
          "path": "library/",
          "name": "library",
          "lang": "es",
          "published": true
        }
      ],
      "taxonomy_terms": [
        {
          "id": "12345",
          "display_name": "Laptops",
          "name": "laptops",
          "taxonomy_id": "100"
        }
      ]
    }
  ],
  "cv": 1234,
  "rels": [
    {
      "name": "Home",
      "created_at": "2025-07-09T14:35:26.851Z",
      "updated_at": "2025-07-09T14:35:26.851Z",
      "published_at": "2025-07-09T14:35:26.851Z",
      "alternates": [
        {
          "id": 12345,
          "name": "Home ES",
          "slug": "home-es",
          "published": true,
          "full_slug": "home-es"
        }
      ],
      "id": 1,
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "content": {
        "_uid": "54bac0c7-bf25-46d0-ba66-a0ea51091a8d",
        "body": [
          {
            "_uid": "57c35684-7f72-43f4-a965-16f328392882",
            "headline": "Hello world!!",
            "component": "teaser"
          },
          {
            "_uid": "9fd8401d-3ac9-4c4a-90af-0cb091487abe",
            "columns": [
              {
                "_uid": "eb7e436b-e19f-4bd1-87d4-2edd44389ded",
                "name": "Feature 1",
                "component": "feature"
              }
            ],
            "component": "grid"
          }
        ],
        "component": "page"
      },
      "slug": "home",
      "full_slug": "home",
      "default_full_slug": "home/",
      "sort_by_date": "2025-07-09T14:35:26.851Z",
      "position": 1,
      "tag_list": [
        "home"
      ],
      "is_startpage": true,
      "parent_id": 1,
      "meta_data": {},
      "group_id": "57350688-5a28-49d1-b5a9-086ae0d4c0d2",
      "first_published_at": "2025-07-09T14:35:26.851Z",
      "release_id": 1,
      "lang": "default",
      "path": "/home",
      "translated_slugs": [
        {
          "path": "library/",
          "name": "library",
          "lang": "es",
          "published": true
        }
      ],
      "taxonomy_terms": [
        {
          "id": "12345",
          "display_name": "Laptops",
          "name": "laptops",
          "taxonomy_id": "100"
        }
      ]
    }
  ],
  "links": [
    {
      "id": 123,
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "slug": "website-a/home",
      "path": "the-real-path",
      "real_path": "/the-real-path",
      "name": "Home",
      "published": true,
      "parent_id": 123,
      "is_folder": true,
      "is_startpage": true,
      "position": 2,
      "published_at": "2025-07-09T14:35:26.851Z",
      "created_at": "2025-07-09T14:35:26.851Z",
      "updated_at": "2025-07-09T14:35:26.851Z",
      "alternates": [
        {
          "path": "/home",
          "name": "Home",
          "lang": "en",
          "published": true,
          "translated_slug": "home"
        }
      ],
      "full_slug": "es/posts/mi-casa"
    }
  ],
  "rel_uuids": [
    "123e4567-e89b-12d3-a456-426614174000"
  ],
  "link_uuids": [
    "123e4567-e89b-12d3-a456-426614174000"
  ]
}

Changes

    • info

      added the new optional query request parameter including_fields

    • info

      added the new optional query request parameter resolve_links_in_relations