> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alumio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Form URL encoded

> Read a stream as form encoded data.

Reads an incoming body as form URL encoded data, the `key=value&other=value` format that web forms and many webhooks send. It splits the body on the `&` separators, decodes the percent-escapes in each value, and hands back the keys and values as structured data you can map. Use this when a webhook or HTTP request arrives with a form-encoded body rather than JSON or XML.

This is a stream parser, so it is set as the response parser on the step that reads the body. It does not run on its own against a single value.

This documentation describes: [Schema](/schemas/stream-deserializer/form-urlencoded)

## Fields

**Pattern to items**

Optional

A dot-notated path to the list inside the decoded data that holds the items you want to process. The parser reads that list and hands you one item at a time. Leave it empty to treat the whole body as a single item. Do not use `*`; the parser steps through the list for you.

**Input stream is not UTF-8 encoded**

Optional

Turn this on when the body is in a character set other than UTF-8, so accented and special characters come through correctly. It is off by default. Turning it on reveals the encoding and conversion options below.

**Input encoding**

Optional

The character set the body is currently in. Choose from UTF-16, ISO-8859-1, or Windows-1252. Only shown when the encoding option above is on.

**On unconvertible characters**

Optional

How to handle characters that cannot be converted to UTF-8: leave it as NONE to fail on an unconvertible character, IGNORE to drop it, or TRANSLIT to replace it with the closest available character. Only shown when the encoding option is on.

## Sample data

A form-encoded body is read as part of a step that receives a request, so it cannot be run on its own against a single value. With the pattern left empty, the whole body becomes one entity whose fields are the decoded key/value pairs.

Input (request body):

```text theme={null}
sku=A1&name=Wool%20scarf&price=19.99
```

Output (the whole body as one entity):

```json theme={null}
{
    "sku": "A1",
    "name": "Wool scarf",
    "price": "19.99"
}
```

Each `key=value` pair becomes a field, and percent-escapes such as `%20` are decoded back to readable text.

```json Configuration theme={null}
{
  "prototype": "form-urlencoded",
  "parameters": {}
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.