Skip to main content

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, 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:

{
"title": "Dataset",
"type": "string",
"description": "Select a dataset",
"resourceType": "dataset"
}

Rendered input:

Apify Actor input schema dataset

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

Example of multiple datasets input:

{
"title": "Datasets",
"type": "array",
"description": "Select multiple datasets",
"resourceType": "dataset",
"resourcePermissions": ["READ"]
}

Rendered input:

Apify Actor input schema datasets

Single value properties

PropertyValueRequiredDescription
typestringYesSpecifies the type of input - string for single value.
editorOne of
  • resourcePicker
  • textfield
  • hidden
NoVisual editor used for
the input field. Defaults to resourcePicker.
resourceTypeOne of
  • dataset
  • keyValueStore
  • requestQueue
  • mcpConnector
YesType of Apify Platform resource. Use mcpConnector to accept an MCP connector as input.
resourcePermissionsArray of strings; allowed values:
  • READ
  • WRITE
Yes for storage resources; not used for mcpConnectorPermissions requested for the referenced resource. Use ["READ"] for read-only access, or ["READ", "WRITE"] to allow writes.
patternStringNoRegular expression that will be used to validate the input. If validation fails, the Actor will not run.
minLengthIntegerNoMinimum length of the string.
maxLengthIntegerNoMaximum length of the string.

Multiple values properties

PropertyValueRequiredDescription
typearrayYesSpecifies the type of input - array for multiple values.
editorOne of
  • resourcePicker
  • hidden
NoVisual editor used for
the input field. Defaults to resourcePicker.
resourceTypeOne of
  • dataset
  • keyValueStore
  • requestQueue
  • mcpConnector
YesType of Apify Platform resource. Use mcpConnector to accept MCP connectors as input.
resourcePermissionsArray of strings; allowed values:
  • READ
  • WRITE
Yes for storage resources; not used for mcpConnectorPermissions requested for the referenced resources. Use ["READ"] for read-only access, or ["READ", "WRITE"] to allow writes. Applies to each selected resource.
minItemsIntegerNoMinimum number of items the array can contain.
maxItemsIntegerNoMaximum 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 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.

MCP connector resource type

When resourceType is mcpConnector, the input field accepts one or more MCP connectors 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:

{
"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.