Configure the real client-side surfaces.

OpenAPI Playground

Upload an OpenAPI document to try the renderer, Try It, and API Client in this browser. Runtime Intelligence and contract disagreement detection require FlexDoc to run with a supported backend and are not available in this browser-only Playground.

Configuration is local to this browser. Nothing is published from Playground.
Spec input

Upload a file above or paste OpenAPI 3.0/3.1 JSON/YAML here. Parsing happens locally in the browser.

Renderer configuration

Basic controls cover the common integration path. Advanced options exposes the client-owned renderer contract.

FlexDoc 3.5.0 demo
OpenAPI Playground · 32 renderer option groups · light
Browser Playground reference

What the browser Playground can configure

Playground has two tabs. Documentation renderer accepts OpenAPI 3.0/3.1 and exposes the practical client-side renderer contract. API Client mounts ApiClientWorkspace directly and lets you configure its initial request, workspace behavior, variables, scripts and server inputs. Applying API Client settings remounts that preview so initial props take effect immediately.

Runtime Intelligence and contract disagreement detection need FlexDoc running with a supported backend. They are not available in this browser-only Playground. For host execution, exact-origin allowlists, and the application security boundary, see the security model →.

Documentation renderer
  • FlexDoc host props: theme, manageTheme, and root customStyles
  • metadata/chrome: title, description, altDescription, version, locale, messages, tagGroups, favicon, logo, and footer
  • visibility/navigation: hideTopbar, hideDownloadButton, hideHostname, hideLoading, nativeScrollbars, and pathInMiddlePanel
  • expansion/schema presentation: expand, legacy expandResponses, defaultModelsExpandDepth, requiredPropsFirst, sortPropsAlphabetically, showExtensions, and showCommonExtensions
  • request/document display: showRequestHeaders, noAutoAuth, lazyRendering, scrollYOffset, suppressWarnings, and payloadSampleIdx
  • Try It: enabled, defaultServer, browser credentials, sibling API Client persistence key, and the React requestInterceptor hook
  • code samples: enablement plus ordered curl, javascript, python, go, and java languages
  • brand/styling: partial ThemeConfig, raw customCss, root customStyles, structured logo sizing/padding/background/clickability, footer links, and renderer message overrides
API Client workspace
  • ApiClientWorkspace: persistenceKey, pageMode, manageTheme, and controlled activeEnvironmentId
  • ApiClient: initialRequest, initialScripts, initial request/script tabs, theme, density, messages, and browser credentials
  • request bootstrap: method, URL, query rows, headers, content type/body, auth, and advanced body/request fields such as URL-encoded, multipart, binary and GraphQL state
  • variables: effective, collection, external, and environment maps
  • servers: OpenAPI serverOptions and initialServerUrl
  • React request interception represented in Playground as deterministic header injection
  • workspace persistence can be disabled entirely so applying initial configuration always starts from the configured state

Browser/backend boundary

  • runtimeIntelligence and hostExecution availability are backend-advertised capabilities. Playground does not invent endpoints, network reachability, or capabilities that the browser does not own.
  • An installed backend may prefer an advertised API host for ordinary interactive sends even when it reports capabilities: []. That preference applies only when a serving adapter exposes a real execute route.
  • customCss, root customStyles, and logo are browser-owned renderer inputs. customJs is executed by the generated/standalone host page, not eval'd by the React Playground.
  • callback props such as request/draft/script/execution callbacks, resolveAuth, workspace handoff callbacks and environment mutation callbacks are application integration hooks rather than static configuration values.
  • mTLS/certificate choices, host cookie jars, Digest/Hawk/OAuth1/AWS SigV4 and private-network reachability require a backend host that explicitly advertises the corresponding capability.

The Advanced options panels intentionally accept JSON for nested typed structures such as tag groups, messages, ThemeConfig, footer links, OpenAPI server choices, request auth and variable maps. Invalid JSON is rejected before the preview is changed.