The user’s original prompt or conversation context. Improves classification accuracy — helps distinguish, for example, a comparison table from raw data.
When to include fallback markdown. "onFail" includes it only on component blocks; "always" includes it on every block; "never" omits fallback entirely.
The design field contains CSS custom properties from the design profile linked to your API key. Use these tokens to style rendered components consistently with your brand.
The raw API response uses compact single-character keys for bandwidth efficiency:
Wire key
Expanded key
Description
c
component
Component type key
v
version
Spec version
p
props
Component-specific data
m
meta
Optional metadata (confidence, title)
f
fallback
Fallback markdown text
The @outkit-dev/react SDK expands wire format automatically. If you integrate directly, you’ll receive the wire format. The examples in these docs show the expanded format for readability.
data: {"type":"meta","design":{"--outkit-primary":"#b30069","--outkit-bg":"#fbf9f8"}}data: {"component":"text","version":"1.0","props":{"content":"Here are the top 3 frameworks:","variant":"prose"}}data: {"component":"table","version":"1.0","props":{...}}data: {"component":"alert","version":"1.0","props":{...}}data: [DONE]
The first event is always a meta event containing design tokens for your profile. Component blocks follow in document order — text content arrives as component: "text" blocks, same as any other component. The stream ends with data: [DONE].
Filter out meta events before rendering — they contain configuration data, not content blocks.
The @outkit-dev/react SDK handles this automatically via feedChunk / feedMeta / feedDone — it accumulates raw chunks, parses partial JSON into renderable blocks, and shows skeleton placeholders while waiting for each component to complete. See the React SDK guide for the full integration pattern.
Your API key must stay on your server. Your backend should proxy the SSE stream to the browser — the React SDK handles parsing on the client side.
When your monthly render quota is exhausted, the API returns your original content as a single text component block instead of returning an error. The response includes mode: "passthrough" in the debug metadata:
Your application should handle passthrough gracefully — for example, by rendering the text as markdown. The @outkit-dev/react SDK handles this automatically.