{"openapi":"3.1.0","info":{"title":"Storyblok Management (BYOK) API","version":"0.1.0","description":"Storyblok Management (BYOK) lets an AI assistant read your own Storyblok Management data through the Storyblok Management API with a key you supply (personal access token). Read-only: 11 tools (get_space, list_stories, get_story, list_components, get_component, list_assets, list_asset_folders, list_datasources, list_datasource_entries, list_tags, list_releases). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-storyblok-management.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-storyblok-management/docs"},"termsOfService":"https://connectorbay.com/byok-storyblok-management/terms"},"servers":[{"url":"https://byok-storyblok-management.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-storyblok-management/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_space":{"post":{"operationId":"get_space","summary":"Get one space: name, plan, domain, story and asset counts, today's request count and creation date. Use for \"How many st","description":"Get one space: name, plan, domain, story and asset counts, today's request count and creation date. Use for \"How many stories and assets does my Storyblok space have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Host label of the space's region: 'mapi' (EU), 'api-us' (United States), 'api-ca' (Canada) or 'api-ap' (Australia).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"space_id":{"description":"Numeric ID of the space (see get_space or the Storyblok app URL).","title":"Space Id","type":"integer"}},"required":["region","space_id"],"title":"get_spaceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_stories":{"post":{"operationId":"list_stories","summary":"List stories and folders of a space (without their content) with slug, publish state, dates and tags. Filter by folder, ","description":"List stories and folders of a space (without their content) with slug, publish state, dates and tags. Filter by folder, slug prefix, tag, publish state or text. Use for \"Which Storyblok stories are not published yet\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Host label of the space's region: 'mapi' (EU), 'api-us' (United States), 'api-ca' (Canada) or 'api-ap' (Australia).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"space_id":{"description":"Numeric ID of the space (see get_space or the Storyblok app URL).","title":"Space Id","type":"integer"},"starts_with":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only stories whose full slug starts with this text, for example 'blog/'.","title":"Starts With"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search in story names and slugs.","title":"Search"},"is_published":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only published stories, false for only drafts and unpublished ones.","title":"Is Published"},"folder_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list only folders.","title":"Folder Only"},"story_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list only stories (no folders).","title":"Story Only"},"with_tag":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only stories with this tag (comma-separated for several).","title":"With Tag"},"sort_by":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Sort property and direction, for example created_at:desc or updated_at:desc.","title":"Sort By"},"per_page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 1000, default 25).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["region","space_id"],"title":"list_storiesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_story":{"post":{"operationId":"get_story","summary":"Get one story by numeric ID including its content (all blocks and fields) and tags. Use for \"Show the content of Storybl","description":"Get one story by numeric ID including its content (all blocks and fields) and tags. Use for \"Show the content of Storyblok story 123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Host label of the space's region: 'mapi' (EU), 'api-us' (United States), 'api-ca' (Canada) or 'api-ap' (Australia).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"space_id":{"description":"Numeric ID of the space (see get_space or the Storyblok app URL).","title":"Space Id","type":"integer"},"story_id":{"description":"Numeric ID of the story from list_stories.","title":"Story Id","type":"integer"}},"required":["region","space_id","story_id"],"title":"get_storyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_components":{"post":{"operationId":"list_components","summary":"List the components (content types and nestable blocks) that define the content model, with name, flags and dates. Use f","description":"List the components (content types and nestable blocks) that define the content model, with name, flags and dates. Use for \"Which content types exist in my Storyblok space\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Host label of the space's region: 'mapi' (EU), 'api-us' (United States), 'api-ca' (Canada) or 'api-ap' (Australia).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"space_id":{"description":"Numeric ID of the space (see get_space or the Storyblok app URL).","title":"Space Id","type":"integer"},"is_root":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for content types only, false for nestable blocks only.","title":"Is Root"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search in component names and display names.","title":"Search"},"sort_by":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Sort property and direction, for example name:asc or updated_at:desc.","title":"Sort By"}},"required":["region","space_id"],"title":"list_componentsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_component":{"post":{"operationId":"get_component","summary":"Get one component including its schema (the field definitions). Use for \"What fields does my Storyblok page component ha","description":"Get one component including its schema (the field definitions). Use for \"What fields does my Storyblok page component have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Host label of the space's region: 'mapi' (EU), 'api-us' (United States), 'api-ca' (Canada) or 'api-ap' (Australia).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"space_id":{"description":"Numeric ID of the space (see get_space or the Storyblok app URL).","title":"Space Id","type":"integer"},"component_id":{"description":"Numeric ID of the component from list_components.","title":"Component Id","type":"integer"}},"required":["region","space_id","component_id"],"title":"get_componentArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_assets":{"post":{"operationId":"list_assets","summary":"List assets of a space with file name, type, size, alt text, title, copyright and folder. Filter by folder, text or tag.","description":"List assets of a space with file name, type, size, alt text, title, copyright and folder. Filter by folder, text or tag. Use for \"Which images are in my Storyblok asset library\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Host label of the space's region: 'mapi' (EU), 'api-us' (United States), 'api-ca' (Canada) or 'api-ap' (Australia).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"space_id":{"description":"Numeric ID of the space (see get_space or the Storyblok app URL).","title":"Space Id","type":"integer"},"in_folder":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Numeric asset folder ID to filter by (-1 lists deleted assets).","title":"In Folder"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search in file names.","title":"Search"},"by_alt":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Filter by alt text.","title":"By Alt"},"with_tags":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only assets with this tag (comma-separated for several, any match).","title":"With Tags"},"sort_by":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"created_at, updated_at or short_filename with :asc or :desc, for example created_at:desc.","title":"Sort By"},"per_page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 1000, default 25).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["region","space_id"],"title":"list_assetsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_asset_folders":{"post":{"operationId":"list_asset_folders","summary":"List asset folders with ID, name and parent folder. Use for \"How are my Storyblok assets organized into folders\".","description":"List asset folders with ID, name and parent folder. Use for \"How are my Storyblok assets organized into folders\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Host label of the space's region: 'mapi' (EU), 'api-us' (United States), 'api-ca' (Canada) or 'api-ap' (Australia).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"space_id":{"description":"Numeric ID of the space (see get_space or the Storyblok app URL).","title":"Space Id","type":"integer"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search in folder names.","title":"Search"},"with_parent":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only folders under this parent folder ID.","title":"With Parent"}},"required":["region","space_id"],"title":"list_asset_foldersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_datasources":{"post":{"operationId":"list_datasources","summary":"List data sources (key-value lists used by fields) with name, slug and dimensions. Use for \"Which data sources does my S","description":"List data sources (key-value lists used by fields) with name, slug and dimensions. Use for \"Which data sources does my Storyblok space have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Host label of the space's region: 'mapi' (EU), 'api-us' (United States), 'api-ca' (Canada) or 'api-ap' (Australia).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"space_id":{"description":"Numeric ID of the space (see get_space or the Storyblok app URL).","title":"Space Id","type":"integer"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search in data source names.","title":"Search"}},"required":["region","space_id"],"title":"list_datasourcesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_datasource_entries":{"post":{"operationId":"list_datasource_entries","summary":"List the entries (name and value pairs) of one data source, selected by numeric ID or slug. Use for \"What entries are in","description":"List the entries (name and value pairs) of one data source, selected by numeric ID or slug. Use for \"What entries are in my Storyblok data source 'colors'\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Host label of the space's region: 'mapi' (EU), 'api-us' (United States), 'api-ca' (Canada) or 'api-ap' (Australia).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"space_id":{"description":"Numeric ID of the space (see get_space or the Storyblok app URL).","title":"Space Id","type":"integer"},"datasource_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Numeric ID of the data source.","title":"Datasource Id"},"datasource_slug":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Slug of the data source, for example 'colors'.","title":"Datasource Slug"},"dimension":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Numeric ID of a dimension to also return dimension_value.","title":"Dimension"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search in entry names.","title":"Search"}},"required":["region","space_id"],"title":"list_datasource_entriesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_tags":{"post":{"operationId":"list_tags","summary":"List tags used on stories with the number of uses. Use for \"Which tags are used in my Storyblok space\".","description":"List tags used on stories with the number of uses. Use for \"Which tags are used in my Storyblok space\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Host label of the space's region: 'mapi' (EU), 'api-us' (United States), 'api-ca' (Canada) or 'api-ap' (Australia).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"space_id":{"description":"Numeric ID of the space (see get_space or the Storyblok app URL).","title":"Space Id","type":"integer"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search in tag names.","title":"Search"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many tags to return (1 to 100).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["region","space_id"],"title":"list_tagsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_releases":{"post":{"operationId":"list_releases","summary":"List content releases with name, release date, whether it was released and dates. Use for \"Which Storyblok releases are ","description":"List content releases with name, release date, whether it was released and dates. Use for \"Which Storyblok releases are scheduled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Host label of the space's region: 'mapi' (EU), 'api-us' (United States), 'api-ca' (Canada) or 'api-ap' (Australia).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"space_id":{"description":"Numeric ID of the space (see get_space or the Storyblok app URL).","title":"Space Id","type":"integer"}},"required":["region","space_id"],"title":"list_releasesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}