Skip to content

OpenAPI 3.1.0 webhooks key not server-side rendered #5712

@RichardBray

Description

@RichardBray

Problem

Pages that reference an OpenAPI spec using the webhooks key (OpenAPI 3.1.0) are not server-side rendered. Only the paths key is serialized in both SSR and markdown content negotiation (Accept: text/markdown).

This means webhook API reference pages appear empty to LLMs, agents, and any non-browser client.

How to reproduce

# paths-based page — returns full spec ✅
curl -s -H "Accept: text/markdown" 'https://docs.firecrawl.dev/api-reference/endpoint/map' | head -30

# webhooks-based page — returns empty paths: {} ❌
curl -s -H "Accept: text/markdown" 'https://docs.firecrawl.dev/api-reference/endpoint/webhook-crawl-started' | head -30

The map page references an OpenAPI spec with paths, so the full schema is returned. The webhook page references a spec using the webhooks key, so the markdown response contains only paths: {}.

Impact

  • Webhook pages linked from auto-generated llms.txt are dead ends for agents
  • Content negotiation returns no useful content for these pages
  • Human visitors are unaffected (client-side JS renders the spec correctly)

Current workaround

We converted our webhook OpenAPI spec from the webhooks key to paths with OpenAPI 3.0.0 to get SSR working: firecrawl/firecrawl-docs#929

This is semantically incorrect (webhooks aren't API endpoints you call), but it's the only way to get Mintlify to render them server-side.

Expected behavior

The webhooks key in OpenAPI 3.1.0 specs should be rendered the same way paths is — both in SSR HTML and in Accept: text/markdown content negotiation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions