> ## 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.

# Remove values

> Removes values from the data based on patterns.

export const FormField = ({property, label, required = false, diType, uiPatterns, children}) => {
  const patterns = Array.isArray(uiPatterns) ? uiPatterns : uiPatterns ? [uiPatterns] : [];
  return <div style={{
    margin: '1.5rem 0'
  }}>
      <div style={{
    display: 'flex',
    alignItems: 'baseline',
    flexWrap: 'wrap',
    gap: '0.5rem',
    marginBottom: '0.25rem'
  }}>
        <strong>{label}</strong>
        <span style={{
    fontSize: '0.7rem',
    fontWeight: 600,
    textTransform: 'uppercase',
    letterSpacing: '0.04em',
    color: required ? '#6241f5' : '#6b7280'
  }}>
          {required ? 'Required' : 'Optional'}
        </span>
      </div>

      <div>{children}</div>

      {diType || patterns.length > 0 ? <p style={{
    fontSize: '0.85rem',
    color: '#6b7280',
    marginBottom: 0
  }}>
          {diType ? <>
              See the <a href={`/references/${diType}`}>{diType}</a> reference.{' '}
            </> : null}
          {patterns.length > 0 ? <>
              Accepts a <a href={`/documentation/placeholders-and-patterns/patterns#${patterns[0]}`}>pattern</a>.
            </> : null}
        </p> : null}
    </div>;
};

Deletes values from your data by naming where they sit. You list one or more paths, and everything at those paths is removed. This is the straightforward way to strip out fields you do not want to pass on, such as an internal note or a temporary helper value. Unlike removing by condition, this always removes whatever a path points at, without testing the value first.

This documentation describes: [Schema](/schemas/transformer/value-remover)

## Fields

<FormField property="patterns" label="Patterns">
  The list of paths to remove. Add a row for each path; you need at least one. Each row points at the data to delete, so add as many as you need to clear out several fields in one step.
</FormField>

<FormField property="patterns[].key" label="Key" required>
  The path to remove, in dot notation, for example `product.price`. Use `*` to match every item in a list, so `products.*.price` removes the price from every product. The path also supports placeholders such as `&{...}`, so the path to remove can be built from other data. See [Placeholders](/references/placeholders) for the syntax.
</FormField>

## Sample data

| Field | Value           |
| ----- | --------------- |
| Key   | `internal_note` |
| Key   | `supplier_cost` |

Input:

```json theme={null}
{
    "sku": "A-100",
    "name": "Wool scarf",
    "internal_note": "do not ship",
    "supplier_cost": 4.5
}
```

Output:

```json theme={null}
{
    "sku": "A-100",
    "name": "Wool scarf"
}
```

```json Configuration theme={null}
{
  "prototype": "value-remover",
  "parameters": {
    "patterns": [
      { "key": "internal_note" },
      { "key": "supplier_cost" }
    ]
  }
}
```
