---
hide_title: false
hide_table_of_contents: false
pagination_next: null
pagination_prev: null
---
# Response()

The **`Response()`** constructor creates a new `Response` object.

## Syntax

```js
new Response()
new Response(body)
new Response(body, options)
```

### Parameters

- `body` _**optional**_

  - : An object defining a body for the response. This can be `null` (which is
    the default value), or one of:

    - [`ArrayBuffer`](../../globals/ArrayBuffer/ArrayBuffer.mdx)
    - `TypedArray`
    - [`DataView`](../../globals/DataView/DataView.mdx)
    - [`ReadableStream`](../../globals/ReadableStream/ReadableStream.mdx)
    - [`URLSearchParams`](../../globals/URLSearchParams/URLSearchParams.mdx)
    - [`String`](../../globals/String/String.mdx)
    - string literal
    - [`Blob`](../../globals/Blob/Blob.mdx)
    - [`FormData`](../../globals/FormData/FormData.mdx)

- `options` _**optional**_

  - : An options object containing any custom settings that you want to apply to the
    response, or an empty object (which is the default value). The possible options are:

    - `status`
      - : The status code for the response, e.g., `200`.
    - `statusText`
      - : The status message associated with the status code,
        e.g., `OK`.
    - `headers`
      - : Any headers you want to add to your response, contained
        within a [`Headers`](../../globals/Headers/Headers.mdx) object or object literal of
        [`String`](../../globals/String/String.mdx) key/value pairs.
    - `manualFramingHeaders`_: boolean_ _**optional**_ _**Fastly-specific**_
      - : The default value is `false`, which means that the framing headers are automatically created based on the message body.
        In "automatic" mode, a `Content-Length` is used when the size of the body can be determined before it is sent.
        Responses sent in streaming mode, where headers are sent immediately but the content of the body is streamed later, will receive a `Transfer-Encoding: chunked` to accommodate the dynamic generation of the body.
        In "manual" mode, any `Content-Length` or `Transfer-Encoding` headers will be honored.
        You must ensure that those headers have correct values permitted by the [HTTP/1.1 specification](https://datatracker.ietf.org/doc/html/rfc7230#section-3.3.1).
        If the provided headers are not permitted by the specification, the headers will revert to "automatic" mode and a diagnostic message will be logged about what was wrong.
        If a `Content-Length` is permitted by the specification, but the value does not match the size of the actual body, the body will either be truncated (if it is too long), or the connection will be hung up early (if it is too short).
