createUIMessageStreamResponse

API Reference for createUIMessageStreamResponse.

The createUIMessageStreamResponse function creates a Response object that streams UI messages to the client.

Import

import { createUIMessageStreamResponse } from "ai"

Example

import {
  createUIMessageStream,
  createUIMessageStreamResponse,
  streamText,
} from 'ai';

const response = createUIMessageStreamResponse({
  status: 200,
  statusText: 'OK',
  headers: {
    'Custom-Header': 'value',
  },
  stream: createUIMessageStream({
    execute({ writer }) {
      // Write custom data
      writer.write({
        type: 'data',
        value: { message: 'Hello' },
      });

      // Write text content
      writer.write({
        type: 'text',
        value: 'Hello, world!',
      });

      // Write source information
      writer.write({
        type: 'source-url',
        value: {
          type: 'source',
          id: 'source-1',
          url: 'https://example.com',
          title: 'Example Source',
        },
      });

      // Merge with LLM stream
      const result = streamText({
        model: "anthropic/claude-sonnet-5.5",
        prompt: 'Say hello',
      });

      writer.merge(result.toUIMessageStream());
    },
  }),
});

API Signature

Parameters

stream:

ReadableStream<UIMessageChunk>
The UI message stream to send to the client.

status?:

number
The status code for the response. Defaults to 200.

statusText?:

string
The status text for the response.

headers?:

Headers | Record<string, string>
Additional headers for the response.

Returns

Response

A Response object that streams UI message chunks with the specified status, headers, and content.