---
title: Resource input type
url: https://docs.apify.com/actors/development/actor-definition/input-schema/specification/v1/resource.md
parents:
  - [Apify documentation](https://docs.apify.com/llms.txt)
  - [Actors](https://docs.apify.com/actors.md)
  - [Develop](https://docs.apify.com/actors/development.md)
  - [Actor definition](https://docs.apify.com/actors/development/actor-definition.md)
  - [Actor input schema](https://docs.apify.com/actors/development/actor-definition/input-schema.md)
  - [Input schema specification](https://docs.apify.com/actors/development/actor-definition/input-schema/specification/v1.md)
previous: [Array](https://docs.apify.com/actors/development/actor-definition/input-schema/specification/v1/array.md)
next: [Secret input](https://docs.apify.com/actors/development/actor-definition/input-schema/secret-input.md)
---

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

# Resource input type

Resource type identifies what kind of Apify Platform object is referred to in the input field. For example, the Key-value store resource type can be referred to using a string ID.

Supported resource types are storage resources (dataset, key-value store, request queue) and [MCP connectors](https://docs.apify.com/integrations/mcp-connectors.md), which let an Actor call third-party MCP servers using credentials the user has authorized in their account.

For Actor developers, the resource input value is a string representing either the resource ID or (unique) name. The type of the property is either `string` or `array`. In case of `array` (for multiple resources) the return value is an array of IDs or names. In the user interface, a picker (`resourcePicker` editor) is provided for easy selection, where users can search and choose from their own resources or those they have access to.

Example of a Dataset input:


```json
{

    "title": "Dataset",

    "type": "string",

    "description": "Select a dataset",

    "resourceType": "dataset"

}
```


Rendered input:

![Apify Actor input schema dataset](/assets/images/input-schema-dataset-2c784c5238066c743fd2c4fb28d34fed.png)

The returned value is resource reference, in this example it's the dataset ID as can be seen in the JSON tab:

![Apify Actor input schema dataset](/assets/images/input-schema-dataset-json-1b7772d96d7ddb0a8be8604841754274.png)

Example of multiple datasets input:


```json
{

    "title": "Datasets",

    "type": "array",

    "description": "Select multiple datasets",

    "resourceType": "dataset",

    "resourcePermissions": ["READ"]

}
```


Rendered input:

![Apify Actor input schema datasets](/assets/images/input-schema-datasets-40376f5fbddb49389c41f2d34699de26.png)

## Single value properties

| Property              | Value                                                                  | Required                                               | Description                                                                                                                                       |
| --------------------- | ---------------------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `type`                | `string`                                                               | Yes                                                    | Specifies the type of input - `string` for single value.                                                                                          |
| `editor`              | One of - `resourcePicker` - `textfield` - `hidden`                     | No                                                     | Visual editor used for the input field. Defaults to `resourcePicker`.                                                                             |
| `resourceType`        | One of - `dataset` - `keyValueStore` - `requestQueue` - `mcpConnector` | Yes                                                    | Type of Apify Platform resource. Use `mcpConnector` to accept an [MCP connector](https://docs.apify.com/integrations/mcp-connectors.md) as input. |
| `resourcePermissions` | Array of strings; allowed values: - `READ` - `WRITE`                   | Yes for storage resources; not used for `mcpConnector` | Permissions requested for the referenced resource. Use \["READ"] for read-only access, or \["READ", "WRITE"] to allow writes.                     |
| `pattern`             | String                                                                 | No                                                     | Regular expression that will be used to validate the input. If validation fails, the Actor will not run.                                          |
| `minLength`           | Integer                                                                | No                                                     | Minimum length of the string.                                                                                                                     |
| `maxLength`           | Integer                                                                | No                                                     | Maximum length of the string.                                                                                                                     |

## Multiple values properties

| Property              | Value                                                                  | Required                                               | Description                                                                                                                                                       |
| --------------------- | ---------------------------------------------------------------------- | ------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `type`                | `array`                                                                | Yes                                                    | Specifies the type of input - `array` for multiple values.                                                                                                        |
| `editor`              | One of - `resourcePicker` - `hidden`                                   | No                                                     | Visual editor used for the input field. Defaults to `resourcePicker`.                                                                                             |
| `resourceType`        | One of - `dataset` - `keyValueStore` - `requestQueue` - `mcpConnector` | Yes                                                    | Type of Apify Platform resource. Use `mcpConnector` to accept [MCP connectors](https://docs.apify.com/integrations/mcp-connectors.md) as input.                   |
| `resourcePermissions` | Array of strings; allowed values: - `READ` - `WRITE`                   | Yes for storage resources; not used for `mcpConnector` | Permissions requested for the referenced resources. Use \["READ"] for read-only access, or \["READ", "WRITE"] to allow writes. Applies to each selected resource. |
| `minItems`            | Integer                                                                | No                                                     | Minimum number of items the array can contain.                                                                                                                    |
| `maxItems`            | Integer                                                                | No                                                     | Maximum number of items the array can contain.                                                                                                                    |

## Resource permissions

If your Actor runs with limited permissions, it must declare what access it needs to resources supplied via input. The `resourcePermissions` field defines which operations your Actor can perform on user-selected storages. This field is evaluated at run start and expands the Actor's [limited permissions](https://docs.apify.com/actors/development/permissions.md) scope to access resources sent via input.

* `["READ"]` - The Actor can read from the referenced resources.
* `["READ", "WRITE"]` - The Actor can read from and write to the referenced resources.

Runtime behavior

This setting defines runtime access only and doesn't change field visibility or whether the field is required in the UI. For array fields (`type: array`), the same permissions apply to each selected resource. Your Actor's run will fail with an insufficient-permissions error if it attempts an operation without the required permission, such as writing with read-only access. Users can see the required permissions in the [input field's tooltip](https://docs.apify.com/actors/running/permissions.md#view-permission-levels-in-apify-console-and-apify-store).

## MCP connector resource type

When `resourceType` is `mcpConnector`, the input field accepts one or more [MCP connectors](https://docs.apify.com/integrations/mcp-connectors.md) the user has authorized in their account. The Actor receives the connector ID (or an array of IDs) as the input value and connects to the upstream MCP server through the Apify MCP Proxy at runtime.

The `mcpConnector` resource type does not use `resourcePermissions`. Instead, eligibility and per-tool access are declared through a required `mcpServers` field, which lists the upstream MCP server URLs and tool constraints the Actor accepts:


```json
{

    "slackConnector": {

        "title": "Slack connector",

        "description": "Read-only access to your Slack workspace",

        "type": "string",

        "resourceType": "mcpConnector",

        "mcpServers": [

            {

                "url": "https://mcp.slack.com/mcp",

                "tools": {

                    "required": ["list_*", "get_*", "read_*"],

                    "readOnly": true

                }

            }

        ]

    }

}
```


The same declaration acts as both eligibility filter (the input picker only offers compatible connectors) and runtime ceiling (the proxy rejects tool calls outside the declared set). For the full `mcpServers` schema, behavioral hints, and code samples, see [Build Actors with MCP connectors](https://docs.apify.com/integrations/mcp-connectors/use-in-actors.md).
