# Built-in methods and variables n8n provides built-in methods and variables for working with data and accessing n8n data. This document provides a reference list of available methods and variables, with a short description, and whether they're available in the expressions editor, Function node, or both. ## Node input | Method | Description | Availability | | ------ | ----------- | ------------ | | `$binary` | Shorthand for `$input.item.binary`. Incoming binary data from a node | Expressions editor | | `$data` | Incoming raw data from a node. | Both | | `$input.item` | The paired item. This is the input item that the previous node used to produce this item. Refer to [Item linking](/data/data-mapping/data-item-linking/) for more information on paired items and item linking. | Expressions editor | | `$input.all()` | All input items. | Both | | `$input.first()` | First input item. | Both | | `$input.last()` | Last input item. | Both | | `$input.params` | Object containing the query settings of the previous node. This includes data such as the operation it ran, result limits, and so on. | Both | | `$json` | Shorthand for `$input.item.json`. Incoming JSON data from a node | Expressions editor | | `$input.context` | Only available when working with the Split in Batches node. Provides information about what's happening in the node, allowing you to see if the node is still processing items. | Both | ## Node output | Method | Description | Availability | | ------ | ----------- | ------------ | | `$("").all(branchIndex?, runIndex?)` | Returns all items from a given node. Replaces `$items`. | Both | | `$("").first(branchIndex?, runIndex?)` | The first item output by the given node | Both | | `$("").last(branchIndex?, run Index?)` | The last item output by the given node. | Both | | `$("").item` | The paired item. This is the input item that the previous node used to produce this item. Refer to [Item linking](/data/data-mapping/data-item-linking/) for more information on paired items and item linking. | Expressions editor | | `$("").params` | Object containing the query settings of the given node. This includes data such as the operation it ran, result limits, and so on. | Both | | `$("").context` | Only available when working with the Split in Batches node. Provides information about what's happening in the node, allowing you to see if the node is still processing items. | Both | ## Working with data | Method | Description | Availability | | ------ | ----------- | ------------ | | `$evaluateExpression` | Evaluates a string as an expression | Both | | `$jmespath()` | Perform a search on a JSON object using JMESPath. | Both | | `$now` | A Luxon object containing the current timestamp. Equivalent to `DateTime.now()`. | Both | | `$today` | A Luxon object containing the current timestamp, rounded down to the day. Equivalent to `DateTime.now().set({ hour: 0, minute: 0, second: 0, millisecond: 0 })`. | Both | ## n8n data This includes: * Access to n8n environment variables for self-hosted n8n. * Metadata about workflows, executions, and nodes. | Method | Description | Availability | | ------ | ----------- | ------------ | | `$env` | Contains [environment variables](/hosting/environment-variables/). | Both | | `$execution.id` | The unique ID of the current workflow execution. | Function node | | `$execution.mode` | Possible values are `test` and `production`. | Function node | | `$execution.resumeUrl` | The webhook URL to call to resume a waiting workflow. | Function node | | `$parameters` | Parameters of the current node. | Both | | `$position` | The index of an item in a list of items. | Both | | `$prevNode.name` | Note that `$prevNode` always takes the first input. This is important when using it in a node with multiple inputs, such as the Merge node. | Both | | `$prevNode.outputIndex` | Note that `$prevNode` always takes the first input. This is important when using it in a node with multiple inputs, such as the Merge node. | Both | | `$prevNode.runIndex` | Note that `$prevNode` always takes the first input. This is important when using it in a node with multiple inputs, such as the Merge node. | Both | | `$runIndex` | How many times n8n has executed the node. Zero-based (the first run is 0, the second is 1, and so on). | Both | | `$workflow.active` | Whether the workflow is active (true) or not (false). | Both | | `$workflow.id` | The workflow ID. | Both | | `$workflow.name` | The workflow name. | Both |