Server-sent events and streaming APIs
Use the response-stream key to model streaming endpoints
Fern Definition isn’t recommended for new customers and Fern isn’t accepting feature requests for this format. It remains supported for existing users.
Team and Enterprise feature
This feature is available only for the Team and Enterprise plans. To get started, reach out to support@buildwithfern.com.
Specifying response-stream on an endpoints allows you to represent endpoint responses that are streaming.
JSON streaming
If your API returns a series of newline-delimited JSON chunks, under application/json, application/x-ndjson, or any other *json content type, as seen below
then specify the response under response-stream for your endpoint, optionally with an explicit format: json. Only server-sent events are auto-detected from the content type, so a JSON stream requires response-stream.
Server-sent events
If your API returns server-sent-events, with the data and event keys as seen below
then include format: sse.
Generated SDKs expose each event’s metadata — event ID, event type, and retry interval to your end users.
Resumable streams
Set resumable: true on response-stream to opt an SSE endpoint into automatic reconnection. When the connection drops mid-stream, the generated SDK reconnects and resends the last event ID in the Last-Event-ID header, so a server that supports that header resumes where the stream left off.
Stream parameter
It has become common practice for endpoints to have a stream parameter that
controls whether the response is streamed or not. Fern supports this pattern in a first
class way.
Specify the stream-condition alongside the ordinary response and the streaming response: