Retrieve Multiple Links
Retrieve a compact representation of stories and folders with optional filtering parameters.
https://api.storyblok.com/v2/cdn/linksQuery parameters
Section titled “Query parameters”starts_withstringFilter by the story’s
full_slugto return items starting with the given value.versionstringFilter by the story’s publication status.
cvintegerCached version Unix timestamp. Learn more in the Caching concept.
include_datesstringInclude or exclude the
created_at,updated_atandpublished_atfields. To include these date fields in the response, set to1. To exclude them, set to0or omit the parameter.by_uuidstringFilter links by
uuid.with_parentstringTo return links from a specific folder, filter by folder
id. To return stories outside a folder, set to0.paginatedstringTo enable a paginated response, set to
1.pageintegerPage number in a paginated response.
per_pageintegerThe number of items per page in a paginated response.
tokenrequired stringA preview or public access token configured in a space.
Response properties
Section titled “Response properties”linksobjectAn object that contains link objects. Each key represents a story or folder UUID.
Examples
Section titled “Examples”curl "https://api.storyblok.com/v2/cdn/links\?version=published\&starts_with=articles\&token=YOUR_ACCESS_TOKEN"// storyblok-js-client@>=7, node@>=18import Storyblok from "storyblok-js-client";
const storyblok = new Storyblok({ accessToken: "krcV6QGxWORpYLUWt12xKQtt",});
try { const response = await storyblok.get('cdn/links', { "version": "published", "starts_with": "articles" }) console.log({ response })} catch (error) { console.log(error)}$client = new \Storyblok\Client('YOUR_STORYBLOK_SPACE_ACCESS_TOKEN');
$client->getLinks([ "version" => "published", "starts_with" => "articles"])->getBody();HttpResponse<String> response = Unirest.get("https://api.storyblok.com/v2/cdn/links?version=published&starts_with=articles&token=YOUR_ACCESS_TOKEN") .asString();var client = new RestClient("https://api.storyblok.com/v2/cdn/links?version=published&starts_with=articles&token=YOUR_ACCESS_TOKEN");var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);import requests
url = "https://api.storyblok.com/v2/cdn/links"
querystring = {"version":"published","starts_with":"articles","token":"YOUR_ACCESS_TOKEN"}
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.links({:params => { "version" => "published", "starts_with" => "articles"}})let storyblok = URLSession(storyblok: .cdn(accessToken: "YOUR_ACCESS_TOKEN"))var request = URLRequest(storyblok: storyblok, path: "links")request.url!.append(queryItems: [ URLQueryItem(name: "version", value: "published"), URLQueryItem(name: "starts_with", value: "articles")])let (data, _) = try await storyblok.data(for: request)print(try JSONSerialization.jsonObject(with: data))val client = HttpClient { install(Storyblok(CDN)) { accessToken = "YOUR_ACCESS_TOKEN" }}
val response = client.get("links") { url { parameters.append("version", "published") parameters.append("starts_with", "articles") }}
println(response.body<JsonElement>()){"links": { "a78b2116-c26d-4d23-9cbe-fec477847b0e": { "id": 371891025, "uuid": "a78b2116-c26d-4d23-9cbe-fec477847b0e", "slug": "home", "path": null, "real_path": "/home", "name": "Home", "published": true, "parent_id": 0, "is_folder": false, "is_startpage": true, "position": 0, "published_at": "2025-01-15T09:32:10.000Z", "created_at": "2025-01-15T09:30:00.000Z", "updated_at": "2025-06-02T14:12:05.000Z", "alternates": [] }, "de": { "id": 371890998, "uuid": "2c6b9a4a-2b9c-4d3f-9e21-2a6b6a2f0b3d", "slug": "de", "path": null, "real_path": "/de", "name": "de", "published": false, "parent_id": 0, "is_folder": true, "is_startpage": false, "position": 1, "published_at": null, "created_at": "2025-01-15T09:30:00.000Z", "updated_at": "2025-01-15T09:30:00.000Z", "alternates": [] }}}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