

# Wait workflow state
<a name="state-wait"></a>

**Managing state and transforming data**  
Learn about [Passing data between states with variables](workflow-variables.md) and [Transforming data with JSONata](transforming-data.md).

A `Wait` state (`"Type": "Wait"`) delays the state machine from continuing for a specified time. You can choose either a relative time, specified in seconds from when the state begins, or an absolute end time, specified as a timestamp.

In addition to the [common state fields](statemachine-structure.md#amazon-states-language-common-fields), `Wait` states have one of the following fields.

** `Seconds` **  
A time, in seconds, to wait before beginning the state specified in the `Next` field. You must specify time as an integer value from 0 to 99999999. In JSONata states, you can alternatively specify a JSONata expression which must evaluate to an integer in the stated range.

** `Timestamp` **  
An absolute time to wait until beginning the state specified in the `Next` field.  
Timestamps must conform to the RFC3339 profile of ISO 8601, with the further restrictions that an uppercase `T` must separate the date and time portions, and an uppercase `Z` must denote that a numeric time zone offset is not present, for example, `2024-08-18T17:33:00Z`.  
In JSONata states, you can specify a JSONata expression which results in a string that conforms to the previous requirements.  
Currently, if you specify the wait time as a timestamp, Step Functions considers the time value up to seconds and truncates milliseconds.

** `SecondsPath` (Optional, JSONPath only) **  
A [path](concepts-input-output-filtering.md) in the states input data to an integer value that specifies the time to wait, in seconds, before proceeding to the next state.

** `TimestampPath` (Optional, JSONPath only) **  
A [path](concepts-input-output-filtering.md) in the states input data to an absolute date and time (timestamp) to wait before proceeding to the next state.

**Note**  
You must specify exactly one of `Seconds`, `Timestamp`, `SecondsPath`, or `TimestampPath`. In addition, the maximum wait time that you can specify for Standard Workflows and Express workflows is one year and five minutes respectively.

## Wait State Examples
<a name="wait-state-example"></a>

The following `Wait` state introduces a 10-second delay into a state machine.

```
"wait_ten_seconds": {
  "Type": "Wait",
  "Seconds": 10,
  "Next": "NextState"
}
```

In the next example, the `Wait` state waits until an absolute time: March 14, 2024, at 1:59 AM UTC.

```
"wait_until" : {
  "Type": "Wait",
  "Timestamp": "2024-03-14T01:59:00Z",
  "Next": "NextState"
}
```

You don't have to hard-code the wait duration. For example, given the following input data:

```
{
  "expirydate": "2024-03-14T01:59:00Z"
}
```

You can select the value of "expirydate" from the input using a reference [path](concepts-input-output-filtering.md) to select it from the input data.

```
"wait_until" : {
    "Type": "Wait",
    "TimestampPath": "$.expirydate",
    "Next": "NextState"
}
```