---
title: "ResourceFilter"
description: "what a read may download and what it must not: resource types allowed and denied, size caps, address patterns, and whether to render"
section: concepts
address: /concepts/resourcefilter
contract: 0476e35e6e275db5
---

# ResourceFilter

what a read may download and what it must not: resource types allowed and denied, size caps, address patterns, and whether to render

[figure: ResourceFilter is a value at none scope. The drawing shows its fields and the objects that they point at.]

| property | value |
|---|---|
| kind | value |
| scope | none |
| key | none |
| store | none |
| family | sources |



## Fields


| field | type | required | note |
|---|---|---|---|
| `allow_types` | `[one of document \| script \| stylesheet \| font \| image \| video \| audio \| media \| xhr \| websocket \| other]` | yes |  |
| `deny_types` | `[one of document \| script \| stylesheet \| font \| image \| video \| audio \| media \| xhr \| websocket \| other]` | yes | denied wins |
| `max_bytes_per_resource` | `count` | no |  |
| `max_bytes_total` | `count` | no |  |
| `allow_patterns` | `[text]` | yes | address patterns |
| `deny_patterns` | `[text]` | yes |  |
| `render` | `one of static \| auto \| rendered` | yes | static fetches the document alone; auto renders only when the static read looks thin, as CrawlKit's extractor does; rendered always uses the browser |



## Routes that use it
No route takes or returns ResourceFilter directly. The record holds it, and the objects that point at it reach it.
