Kitchen Stories Feed API

The Feed API from Kitchen Stories — 2 operation(s) for feed.

Operations 2

GET /feed/ Get Feed #
GET /feed-reduced/ Get Reduced Feed #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/kitchenstories-feed-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

kitchenstories-feed-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: '3'
  title: Kitchen Stories Internal Articles Admin Feed API
  description: ''
  contact:
    email: hello@kitchenstories.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://api.kitchenstories.io/api
  description: LIVE Environment
- url: https://api.dev.kitchenstories.io/api
  description: Development Environment
- url: http://localhost:8000/api
  description: Local Environment
security:
- bearerAuth: []
- ApiKeyAuth: []
tags:
- name: Feed
paths:
  /feed/:
    get:
      summary: Get Feed
      operationId: feed-list
      tags:
      - Feed
      parameters:
      - name: simplified
        in: query
        description: Get simplified feed schema (first two items are unrolled, remaining are simplified)
        schema:
          type: boolean
      - name: order
        in: query
        description: Get first-time-feed with `order=featured`
        schema:
          type: string
      - name: date
        in: query
        description: Get preview- feed & poll with `date=2000-01-01T00:00`
        schema:
          type: string
      responses:
        '200':
          description: 'Get Feed the automated.tabs is an enum with these values: [''ks'', ''community'']

            '
          content:
            application/vnd.ajns.kitchenstories+json; version=3:
              schema:
                $ref: '#/components/schemas/feed_pagination'
  /feed-reduced/:
    get:
      summary: Get Reduced Feed
      operationId: feed-reduced-list
      tags:
      - Feed
      parameters:
      - name: date
        in: query
        description: Get preview- feed & poll with `date=2000-01-01T00:00`
        schema:
          type: string
      responses:
        '200':
          description: 'Get Reduced Feed (Only module display information) the automated.tabs is an enum with these values: [''ks'', ''community'']

            '
          content:
            application/vnd.ajns.kitchenstories+json; version=3:
              schema:
                $ref: '#/components/schemas/feed_reduced_pagination'
components:
  schemas:
    feed_article:
      type: object
      properties:
        type:
          type: string
        article:
          oneOf:
          - $ref: '#/components/schemas/article_simplified'
          - $ref: '#/components/schemas/article'
        hide_for_web:
          type: boolean
        hide_for_app:
          type: boolean
      required:
      - type
      - article
    image:
      type: object
      properties:
        id:
          oneOf:
          - type: string
          - type: number
        url:
          type: string
          format: uri
        source:
          type: string
        source_link:
          type: string
        width:
          type: number
        height:
          type: number
      required:
      - url
      additionalProperties: false
    article_reduced:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        slug:
          type: string
        type:
          type: string
        image:
          $ref: '#/components/schemas/image'
        author:
          $ref: '#/components/schemas/user_public_reduced'
        url:
          type: string
          format: uri
        publishing:
          $ref: '#/components/schemas/publishing'
        user_reactions:
          type: object
          properties:
            like_count:
              type: number
          required:
          - like_count
          - quality
        tags:
          type: array
          items:
            $ref: '#/components/schemas/tag'
      required:
      - type
      - publishing
      - title
      - url
      - slug
      - user_reactions
      - author
      - id
      - image
    author_reduced:
      type: object
      properties:
        type:
          type: string
        author:
          $ref: '#/components/schemas/user_public_reduced'
      required:
      - author
      - type
    publishing:
      type: object
      properties:
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
        published:
          type: string
          format: date-time
        state:
          type: string
      required:
      - created
      - updated
      - state
      additionalProperties: false
    collection_article:
      type: object
      properties:
        title:
          type: string
        type:
          type: string
        subtitle:
          type: string
        article:
          oneOf:
          - $ref: '#/components/schemas/article_simplified'
          - $ref: '#/components/schemas/article'
        hide_for_web:
          type: boolean
        hide_for_app:
          type: boolean
      required:
      - type
      - title
      - article
      - subtitle
    user_public_reduced:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        slug:
          type: string
        type:
          type: string
        new_type:
          type: string
        image:
          $ref: '#/components/schemas/image'
      required:
      - id
      - name
      - slug
    poll:
      type: object
      properties:
        id:
          type: string
        content_id:
          type: string
        question:
          type: string
        options:
          type: array
          items:
            $ref: '#/components/schemas/poll_vote'
        total_votes:
          type: number
      required:
      - total_votes
      - content_id
      - id
      - options
      - question
    author_carousel:
      type: object
      properties:
        title:
          type: string
        content:
          type: array
          items:
            $ref: '#/components/schemas/author'
      required:
      - title
      - content
    author:
      type: object
      properties:
        type:
          type: string
        author:
          $ref: '#/components/schemas/user_public'
      required:
      - author
      - type
    recipe_simplified:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        slug:
          type: string
        type:
          type: string
        content_id:
          type: string
        difficulty:
          type: string
        image:
          $ref: '#/components/schemas/image'
        author:
          $ref: '#/components/schemas/user_public'
        url:
          type: string
          format: uri
        duration:
          type:
          - object
          - 'null'
          properties:
            preparation:
              type: number
            baking:
              type: number
            resting:
              type: number
          required:
          - preparation
          - resting
          - baking
        user_reactions:
          type: object
          properties:
            rating:
              type: number
            rating_count:
              type: number
            images:
              type: array
              items:
                $ref: '#/components/schemas/comment_image'
              maxItems: 4
            comments_count:
              type: number
            images_count:
              type: number
            like_count:
              type: number
            quality:
              type: number
          required:
          - comments_count
          - images_count
          - like_count
          - quality
        publishing:
          type: object
          properties:
            created:
              type: string
              format: date-time
            updated:
              type: string
              format: date-time
            published:
              type: string
              format: date-time
            state:
              type: string
              enum:
              - draft
              - submitted
              - rejected
              - live
              - expired
              - scheduled
          required:
          - created
          - updated
          - state
        tags:
          type: array
          items:
            $ref: '#/components/schemas/tag'
      required:
      - content_id
      - type
      - publishing
      - title
      - slug
      - url
      - user_reactions
      - author
      - id
    article_simplified:
      type: object
      properties:
        id:
          type: string
        slug:
          type: string
        title:
          type: string
        subtitle:
          type: string
        type:
          type: string
        content_id:
          type: string
        image:
          $ref: '#/components/schemas/image'
        author:
          $ref: '#/components/schemas/user_public'
        url:
          type: string
          format: uri
        publishing:
          $ref: '#/components/schemas/publishing'
        user_reactions:
          type: object
          properties:
            comments_count:
              type: number
            images_count:
              type: number
            like_count:
              type: number
            quality:
              type: number
          required:
          - comments_count
          - images_count
          - like_count
          - quality
      required:
      - content_id
      - type
      - publishing
      - title
      - slug
      - url
      - subtitle
      - user_reactions
      - author
      - id
      - image
    article_text:
      type: object
      properties:
        type:
          type: string
        text:
          type: object
          properties:
            text:
              type: string
          required:
          - text
      required:
      - text
      - type
      additionalProperties: false
    collection_recipe:
      type: object
      properties:
        title:
          type: string
        subtitle:
          type: string
        type:
          type: string
        recipe:
          oneOf:
          - $ref: '#/components/schemas/recipe_simplified'
          - $ref: '#/components/schemas/recipe'
        hide_for_web:
          type: boolean
        hide_for_app:
          type: boolean
      required:
      - type
      - title
      - recipe
    article_quote:
      type: object
      properties:
        type:
          type: string
        quote:
          type: object
          properties:
            text:
              type: string
            author:
              type: string
          required:
          - text
      required:
      - type
      - quote
      additionalProperties: false
    collection_shopping_tip_reduced:
      type: object
      properties:
        title:
          type: string
        type:
          type: string
        subtitle:
          type: string
        shopping_tip:
          $ref: '#/components/schemas/article_reduced'
        hide_for_web:
          type: boolean
        hide_for_app:
          type: boolean
      required:
      - type
      - shopping_tip
      - title
    child_item:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        path:
          type: array
          items:
            $ref: '#/components/schemas/path_item'
        slug:
          type: string
        children:
          type: array
          items:
            $ref: '#/components/schemas/child_item'
      required:
      - id
      - slug
      - title
    feed_reduced_pagination:
      type: object
      properties:
        links:
          $ref: '#/components/schemas/links'
        meta:
          $ref: '#/components/schemas/meta'
        data:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/feed_collection_reduced'
            - $ref: '#/components/schemas/feed_automated_reduced'
            - $ref: '#/components/schemas/feed_player_reduced'
            - $ref: '#/components/schemas/feed_voting'
            - $ref: '#/components/schemas/feed_author_carousel_reduced'
            - $ref: '#/components/schemas/feed_link'
            - $ref: '#/components/schemas/youtube_player'
            - $ref: '#/components/schemas/categories_collection'
            - $ref: '#/components/schemas/link_collection'
      required:
      - data
      - links
      - meta
    youtube_player:
      type: object
      properties:
        type:
          type: string
        youtube_video_player:
          type: object
          properties:
            title:
              type: string
            subtitle:
              type: string
            remote_id:
              type: string
            remote_id_type:
              type: string
            hide_for_web:
              type: boolean
            hide_for_app:
              type: boolean
          required:
          - remote_id_type
          - title
          - remote_id
          additionalProperties: false
      required:
      - type
      - youtube_video_player
    category_simplified:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        slug:
          type: string
        path:
          type: array
          items:
            $ref: '#/components/schemas/path_item'
        children:
          type: array
          items:
            $ref: '#/components/schemas/child_item'
      required:
      - slug
      - title
      - id
    recipe_reduced:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        slug:
          type: string
        type:
          type: string
        duration:
          type:
          - object
          - 'null'
          properties:
            preparation:
              type: number
            baking:
              type: number
            resting:
              type: number
          required:
          - preparation
          - resting
          - baking
        image:
          $ref: '#/components/schemas/image'
        author:
          $ref: '#/components/schemas/user_public_reduced'
        url:
          type: string
          format: uri
        user_reactions:
          type: object
          properties:
            like_count:
              type: number
          required:
          - like_count
        publishing:
          type: object
          properties:
            created:
              type: string
              format: date-time
            updated:
              type: string
              format: date-time
            published:
              type: string
              format: date-time
            state:
              type: string
              enum:
              - draft
              - submitted
              - rejected
              - live
              - expired
              - scheduled
          required:
          - created
          - updated
          - state
        tags:
          type: array
          items:
            $ref: '#/components/schemas/tag'
        video:
          $ref: '#/components/schemas/video'
      required:
      - type
      - publishing
      - title
      - url
      - slug
      - user_reactions
      - author
      - id
    user_public:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - community
          - contributor
          - editor
        new_type:
          type: string
          enum:
          - community
          - contributor
          - editor
          - partner
          - external
        name:
          type: string
        slug:
          type: string
        occupation:
          type: string
        description:
          type: string
        image:
          $ref: '#/components/schemas/image'
        banner_image:
          $ref: '#/components/schemas/image'
        wide_banner_image:
          $ref: '#/components/schemas/image'
        website:
          type: string
          format: uri
        is_premium:
          type: boolean
        created:
          type: string
          format: date-time
      required:
      - type
      - new_type
      - name
      - id
    collection_category:
      type: object
      properties:
        title:
          type: string
        type:
          type: string
        subtitle:
          type: string
        featured_search:
          $ref: '#/components/schemas/search_category'
      required:
      - featured_search
      - type
      - title
    legacy_unit:
      type: object
      properties:
        id:
          type: string
        ingredient_pluralizable:
          type: boolean
        name:
          type: object
          properties:
            rendered:
              type: string
            one:
              type: string
            many:
              type: string
          required:
          - rendered
          additionalProperties: false
      required:
      - name
    meta:
      type: object
      properties:
        pagination:
          type: object
          properties:
            pages:
              type: number
            count:
              type: number
            page:
              type: number
          required:
          - page
          - pages
          - count
          additionalProperties: false
      required:
      - pagination
      additionalProperties: false
    article_proscons:
      type: object
      properties:
        type:
          type: string
        proscons:
          type: object
          properties:
            pros_title:
              type: string
            pros:
              type: string
            cons_title:
              type: string
            cons:
              type: string
          required:
          - pros
          - pros_title
          - cons
          - cons_title
      required:
      - type
      - proscons
    article_headline:
      type: object
      properties:
        type:
          type: string
        headline:
          type: object
          properties:
            level:
              type: number
            text:
              type: string
          required:
          - level
          - text
      required:
      - type
      - headline
      additionalProperties: false
    size:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        metric:
          type: string
        imperial:
          type: string
      required:
      - id
      additionalProperties: false
    additional_information:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
      required:
      - id
      - name
      additionalProperties: false
    content_meta_carousel:
      type: object
      properties:
        type:
          type: string
        title:
          type: string
        content_meta_carousel:
          type: array
          items:
            $ref: '#/components/schemas/content_meta'
      required:
      - type
      - content_meta_carousel
    path_item:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        slug:
          type: string
      required:
      - id
      - slug
      - title
    collection_shopping_tip:
      type: object
      properties:
        title:
          type: string
        type:
          type: string
        subtitle:
          type: string
        shopping_tip:
          $ref: '#/components/schemas/article'
        hide_for_web:
          type: boolean
        hide_for_app:
          type: boolean
      required:
      - type
      - shopping_tip
      - title
    feed_recipe_reduced:
      type: object
      properties:
        type:
          type: string
        recipe:
          $ref: '#/components/schemas/recipe_reduced'
        hide_for_web:
          type: boolean
        hide_for_app:
          type: boolean
      required:
      - type
      - recipe
    comment_image:
      type: object
      properties:
        comment:
          type: string
        author:
          $ref: '#/components/schemas/user_public'
        original_location:
          type: string
        image:
          $ref: '#/components/schemas/image'
        created:
          type: string
          format: date-time
      required:
      - author
      - created
      - image
      - original_location
      - comment
    article_recipes:
      type: object
      properties:
        type:
          type: string
        recipes:
          type: object
          properties:
            recipes:
              type: array
              items:
                $ref: '#/components/schemas/recipe_simplified'
          required:
          - recipes
      required:
      - recipes
      - type
    article_video:
      type: object
      properties:
        type:
          type: string
        video:
          type: object
          properties:
            video:
              $ref: '#/components/schemas/video'
            subtitle:
              type: string
          required:
          - video
      required:
      - type
      - video
    feed_voting:
      type: object
      properties:
        type:
          type: string
        voting:
          type: object
          properties:
            title:
              type: string
            poll:
              $ref: '#/components/schemas/poll'
          required:
          - poll
          additionalProperties: false
      required:
      - type
      - voting
    video:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        slug:
          type: string
        type:
          type: string
        content_id:
          type: string
        remote_id:
          type: string
        url:
          type: string
          format: uri
        recipe_url:
          type: string
          format: uri
        width:
          type: number
        height:
          type: number
        duration:
          type: number
        image:
          $ref: '#/components/schemas/image'
        meta:
          $ref: '#/components/schemas/wagtail_meta'
        publishing:
          type: object
          properties:
            created:
              type: string
              format: date-time
            updated:
              type: string
              format: date-time
            published:
              type: string
              format: date-time
            state:
              type: string
            playback-state:
              type: string
              enum:
              - not-playable
              - processing
              - ready
          required:
          - created
          - updated
          - state
          - playback-state
        user_reactions:
          type: object
          properties:
            view_count:
              type: number
          required:
          - view_count
      required:
      - content_id
      - duration
      - title
      - id
      - slug
      - meta
    feed_pagination:
      type: object
      properties:
        links:
          $ref: '#/components/schemas/links'
        meta:
          $ref: '#/components/schemas/meta'
        data:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/feed_collection'
            - $ref: '#/components/schemas/feed_automated'
            - $ref: '#/components/schemas/feed_player'
            - $ref: '#/components/schemas/feed_voting'
            - $ref: '#/components/schemas/feed_author_carousel'
            - $ref: '#/components/schemas/feed_link'
            - $ref: '#/components/schemas/youtube_player'
            - $ref: '#/components/schemas/categories_collection'
            - $ref: '#/components/schemas/link_collection'
      required:
      - data
      - links
      - meta
    recipe:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        slug:
          type: string
        type:
          type: string
        content_id:
          type: string
        difficulty:
          type: string
        chefs_note:
          type: string
        image:
          $ref: '#/components/schemas/image'
        author:
          $ref: '#/components/schemas/user_public'
        url:
          type: string
          format: uri
        duration:
          type:
          - object
          - 'null'
          properties:
            preparation:
              type: number
            baking:
              type: number
            resting:
              type: number
          required:
          - preparation
          - resting
          - baking
        user_reactions:
          type: object
          properties:
            rating:
              type: number
            rating_count:
              type: number
            images:
              type: array
              items:
                $ref: '#/components/schemas/comment_image'
              maxItems: 4
            comments_count:
              type: number
            images_count:
              type: number
            like_count:
              type: number
            quality:
              type: number
          required:
          - comments_count
          - images_count
          - like_count
          - quality
        servings:
          type: object
          properties:
            amount:
              type: number
            type:
              type: string
          required:
          - amount
          - type
        nutrition:
          type: object
          properties:
            calories:
              type: number
            fat:
              type: number
            protein:
              type: number
            carbohydrate:
              type: number
          required:
          - protein
          - fat
          - calories
          - carbohydrate
        publishing:
          type: object
          properties:
            created:
              type: string
              format: date-time
            updated:
              type: string
              format: date-time
            published:
              type: string
              format: date-time
            state:
              type: string
              enum:
              - draft
              - submitted
              - rejected
              - live
              - expired
              - scheduled
          required:
          - created
          - updated
          - state
        meta:
          $ref: '#/components/schemas/wagtail_meta'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/tag'
        content_meta:
          type: array
          items:
            $ref: '#/components/schemas/content_meta'
        categories:
          type: object
          properties:
            main:
              $ref: '#/components/schemas/category_simplified'
            additional:
              type: array
              items:
                $ref: '#/components/schemas/category_simplified'
        video:
          $ref: '#/components/schemas/video'
        howto_videos:
          type: array
          items:
            $ref: '#/components/schemas/video'
        steps:
          type: array
          items:
            $ref: '#/components/schemas/step'
        utensils:
          type: array
          items:
            $ref: '#/components/schemas/recipe_utensil'
        ingredients:
          type: array
          items:
            type: object
            properties:
              list:
                type: array
                items:
                  $ref: '#/components/schemas/recipe_ingredient'
            required:
            - list
            additionalProperties: false
      required:
      - content_id
      - type
      - publishing
      - title
      - steps
      - slug
      - url
      - user_reactions
      - author
      - servings
      - ingredients
      - id
    author_carousel_reduced:
      type: object
      properties:
        title:
          type: string
        content:
          type: array
          items:
            $ref: '#/components/schemas/author_reduced'
      required:
      - title
      - content
    recipe_ingredient:
      type: object
      properties:
        id:
          type: string
        name:
          type: object
          properties:
            rendered:
              type: string
            one:
              type: string
            many:
              type: string
          required:
          - rendered
          additionalProperties: false
        measurement:
          type: object
          properties:
            imperial:
              type: object
              properties:
                amount:
                  type: number
                unit:
                  oneOf:
                  - $ref: '#/components/schemas/legacy_unit'
                  - $ref: '#/components/schemas/unit'
              additionalProperties: false
            metric:
              type: object
              properties:
                amount:
                  type: number
                unit:
                  oneOf:
                  - $ref: '#/components/schemas/legacy_unit'
                  - $ref: '#/components/schemas/unit'
              additionalProperties: false
          additionalProperties: false
        characteristic:
          $ref: '#/components/schemas/characteristic'
        additional_information:
          $ref: '#/components/schemas/additional_information'
        is_divided:
          type: boolean
        is_partner:
          type: boolean
        is_searcheable:
          type: boolean
        url:
          type: string
      required:
      - name
    feed_collection_reduced:
      type: object
      properties:
        type:
          type: string
        collection:
          type: object
          properties:
            title:
              type: string
            content:
              type: array
              items:
                oneOf:
                - $ref: '#/components/schemas/collection_article_reduced'
                - $ref: '#/components/schemas/collection_recipe_reduced'
                - $ref: '#/components/schemas/collection_shopping_tip_reduced'
                - $ref: '#/components/schemas/collection_category'
            hide_for_web:
              type: boolean
            hide_for_app:
              type: boolean
          required:
          - title
          - content
          additionalProperties: false
      required:
      - type
      - collection
    poll_vote:
      type: object
      properties:
        id:
          type: string
        text:
          type: string
        image:
          $ref: '#/components/schemas/image'
        votes:
          type: number
      required:
      - id
      - votes
      - text
    categories_collection:
      type: object
      properties:
        type:
          type: string
        categories_collection:
          type: object
          properties:
            title:
              type: string
            content:
              type: array
              items:
                $ref: '#/components/schemas/collection_category'
          required:
          - title
          - content
          additionalProperties: false
      required:
      - categories_collection
      - type
    collection_recipe_reduced:
      type: object
      properties:
        title:
          type: string
        subtitle:
          type: string
        type:
          type: string
        recipe:
          $ref: '#/components/schemas/recipe_reduced'
        hide_for_web:
          type: boolean
        hide_for_app:
          type: boolean
      required:
      - type
      - title
      - recipe
    feed_author_carousel:
      type: object
      properties:
        type:
          type: string
        author_carousel:
          $ref: '#/components/schemas/author_carousel'
      required:
      - type
      - author_carousel
    search_category:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        slug:
          type: string
        content_id:
          type: string
        image:
          $ref: '#/components/schemas/image'
        icon:
          $ref: '#/components/schemas/image'
        description:
          type: string
        search:
          type: object
          properties:
            query:
              type: string
            filters:
              type: string
            index:
              type: string
        url:
          type: string
          format:

# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kitchenstories/refs/heads/main/openapi/kitchenstories-feed-api-openapi.yml