Kitchen Stories · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Kitchen Stories Internal API

8 actions 8 updates documentation extends ../openapi/kitchenstories-internal-openapi.json
Derived by API Evangelist Built from the contracts Kitchen Stories publishes. Kitchen Stories did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

descriptionx-api-evangelist-notex-api-evangelist-sourcex-api-evangelist-capturedx-audiencex-reachablex-api-evangelist-conventionsx-api-evangelist-artifacts

Targets 8

$.info
$.info.license
$.servers[2]
$.components.securitySchemes.bearerAuth
$.components.securitySchemes.ApiKeyAuth
$
$.paths..responses
$.paths['/users/me/likes/'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Kitchen Stories Internal API
  version: 1.0.0
extends: ../openapi/kitchenstories-internal-openapi.json
x-generated: '2026-07-19'
x-method: generated
x-source: >-
  Derived from openapi/kitchenstories-internal-openapi.json and from live behaviour observed on
  https://api.kitchenstories.io/api/ on 2026-07-19. This overlay records API Evangelist
  enhancements only; the original spec is never mutated.
actions:
- target: $.info
  description: >-
    Record the provider-published description URL and clarify that this is a first-party internal
    API with no public developer program.
  update:
    description: >-
      The Kitchen Stories content and community REST API ("Ultron"), which powers the Kitchen
      Stories apps and website. This is a first-party internal API: there is no public developer
      program, no self-service credential issuance and no published SDK. The provider serves this
      OpenAPI 3.0.0 document itself at https://api.kitchenstories.io/api/.
    x-api-evangelist-source: https://api.kitchenstories.io/api/
    x-api-evangelist-captured: '2026-07-19'
    x-audience: internal
- target: $.info.license
  description: >-
    Flag that the Apache 2.0 licence in info.license is spec-template boilerplate and should not
    be read as a licence grant over the API or its recipe content.
  update:
    x-api-evangelist-note: >-
      Boilerplate from the specification template. Kitchen Stories publishes no API licence; the
      site terms at https://www.kitchenstories.com/en/terms govern use of its content.
- target: $.servers[2]
  description: Mark the localhost entry as a developer-local server, not a reachable environment.
  update:
    x-reachable: false
    x-api-evangelist-note: Developer-local server; not a usable environment for API consumers.
- target: $.components.securitySchemes.bearerAuth
  description: Document how the bearer token is actually obtained.
  update:
    description: >-
      JWT bearer token obtained from POST /authenticate/credentials/ (email and password), POST
      /authenticate/ (anonymous or device), or the social endpoints
      /authenticate/appleid/, /authenticate/google/ and /authenticate/facebook/. Present as
      `Authorization: Bearer <token>`. A missing or invalid token yields 401 with
      `WWW-Authenticate: Bearer` and body {"detail": "Authentication credentials were not provided."}.
- target: $.components.securitySchemes.ApiKeyAuth
  description: Clarify the vendor user-identity header.
  update:
    description: >-
      Vendor-specific user-identity header (X-Ultron-User). Not a self-service API key; issued
      internally and not available through any public developer program.
- target: $
  description: >-
    Record the cross-cutting runtime semantics observed live but absent from the specification:
    media-type versioning, page-number pagination, ETag caching, and the absence of an
    idempotency contract and of any documented rate limit.
  update:
    x-api-evangelist-conventions:
      versioning:
        style: media-type
        current: '3'
        request_header: 'Accept: application/vnd.ajns.kitchenstories+json; version=3'
        response_header: x-ultron-api-version
      pagination:
        style: page-number
        request_param: page
        envelope:
          data: array
          links: first, last, next, prev
          meta.pagination: page, pages, count
      caching:
        etag: true
        cache_control: 'public, max-age=5400'
        vary: Accept, Accept-Language, Accept-Encoding, Authorization, Origin
      idempotency:
        supported: false
      rate_limits:
        documented: false
      request_id:
        supported: false
      trailing_slash:
        required: true
        exception: GET /users/validate/email
    x-api-evangelist-artifacts:
      authentication: ../authentication/kitchenstories-authentication.yml
      conventions: ../conventions/kitchenstories-conventions.yml
      errors: ../errors/kitchenstories-problem-types.yml
      lifecycle: ../lifecycle/kitchenstories-lifecycle.yml
      data_model: ../data-model/kitchenstories-data-model.yml
      conformance: ../conformance/kitchenstories-conformance.yml
      mcp: ../mcp/kitchenstories-mcp.yml
      skills: ../skills/_index.yml
- target: $.paths..responses
  description: >-
    Add the 401 response the live API returns for a missing or invalid credential. The published
    spec declares only 403 and 404 client errors, but every operation is globally secured, so 401
    is reachable on all 157 operations.
  update:
    '401':
      description: >-
        Authentication credentials were not provided, or the bearer token is invalid or expired.
      content:
        application/vnd.ajns.kitchenstories+json:
          schema:
            type: object
            required:
            - detail
            properties:
              detail:
                type: string
                example: Authentication credentials were not provided.
- target: $.paths['/users/me/likes/'].get
  description: >-
    Flag the legacy likes endpoint, which is superseded by /users/me/likes/feed-items/ by naming
    (operationId likes-list-old) but carries no formal deprecation marker in the spec.
  update:
    x-api-evangelist-legacy: true
    x-superseded-by: /users/me/likes/feed-items/
    x-api-evangelist-note: >-
      Signposted as legacy by its operationId only. Kitchen Stories publishes no deprecation
      policy and emits no Sunset or Deprecation headers, so no removal date can be stated.

Work with this as data

Every overlay 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 openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • 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 overlay
curl "https://apis.io/api/v1/overlays/kitchenstories-internal-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.