curl --request PUT \
--url https://api.extole.io/v7/report-runners/{reportRunnerId} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"component_ids": [
"component_id"
],
"component_references": [
{
"component_id": "component_id",
"socket_names": [
"socket_name"
]
}
],
"deliver_empty_reports_to_sftp": true,
"enabled": true,
"execution_policy": "AWAIT_DATA",
"expiration_ms": 1,
"formats": [
"CSV"
],
"merging_configuration": {
"deliverable_type": "deliverable_type",
"formats": [
"CSV"
],
"sort_by": [
"sort_by"
],
"unique_by": [
"unique_by"
]
},
"name": "name",
"parameters": {
"parameters_key": "parameters_key"
},
"pause_info": {
"description": "description",
"paused": true
},
"report_name_pattern": "report_name_pattern",
"report_type": "report_type",
"scopes": [
"CLIENT_ADMIN"
],
"sftp_report_name_pattern": "sftp_report_name_pattern",
"sftp_server_id": "sftp_server_id",
"tags": [
"tag"
],
"type": "REFRESHING"
}
'import requests
url = "https://api.extole.io/v7/report-runners/{reportRunnerId}"
payload = {
"component_ids": ["component_id"],
"component_references": [
{
"component_id": "component_id",
"socket_names": ["socket_name"]
}
],
"deliver_empty_reports_to_sftp": True,
"enabled": True,
"execution_policy": "AWAIT_DATA",
"expiration_ms": 1,
"formats": ["CSV"],
"merging_configuration": {
"deliverable_type": "deliverable_type",
"formats": ["CSV"],
"sort_by": ["sort_by"],
"unique_by": ["unique_by"]
},
"name": "name",
"parameters": { "parameters_key": "parameters_key" },
"pause_info": {
"description": "description",
"paused": True
},
"report_name_pattern": "report_name_pattern",
"report_type": "report_type",
"scopes": ["CLIENT_ADMIN"],
"sftp_report_name_pattern": "sftp_report_name_pattern",
"sftp_server_id": "sftp_server_id",
"tags": ["tag"],
"type": "REFRESHING"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
component_ids: ['component_id'],
component_references: [{component_id: 'component_id', socket_names: ['socket_name']}],
deliver_empty_reports_to_sftp: true,
enabled: true,
execution_policy: 'AWAIT_DATA',
expiration_ms: 1,
formats: ['CSV'],
merging_configuration: {
deliverable_type: 'deliverable_type',
formats: ['CSV'],
sort_by: ['sort_by'],
unique_by: ['unique_by']
},
name: 'name',
parameters: {parameters_key: 'parameters_key'},
pause_info: {description: 'description', paused: true},
report_name_pattern: 'report_name_pattern',
report_type: 'report_type',
scopes: ['CLIENT_ADMIN'],
sftp_report_name_pattern: 'sftp_report_name_pattern',
sftp_server_id: 'sftp_server_id',
tags: ['tag'],
type: 'REFRESHING'
})
};
fetch('https://api.extole.io/v7/report-runners/{reportRunnerId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.extole.io/v7/report-runners/{reportRunnerId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'component_ids' => [
'component_id'
],
'component_references' => [
[
'component_id' => 'component_id',
'socket_names' => [
'socket_name'
]
]
],
'deliver_empty_reports_to_sftp' => true,
'enabled' => true,
'execution_policy' => 'AWAIT_DATA',
'expiration_ms' => 1,
'formats' => [
'CSV'
],
'merging_configuration' => [
'deliverable_type' => 'deliverable_type',
'formats' => [
'CSV'
],
'sort_by' => [
'sort_by'
],
'unique_by' => [
'unique_by'
]
],
'name' => 'name',
'parameters' => [
'parameters_key' => 'parameters_key'
],
'pause_info' => [
'description' => 'description',
'paused' => true
],
'report_name_pattern' => 'report_name_pattern',
'report_type' => 'report_type',
'scopes' => [
'CLIENT_ADMIN'
],
'sftp_report_name_pattern' => 'sftp_report_name_pattern',
'sftp_server_id' => 'sftp_server_id',
'tags' => [
'tag'
],
'type' => 'REFRESHING'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.extole.io/v7/report-runners/{reportRunnerId}"
payload := strings.NewReader("{\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"deliver_empty_reports_to_sftp\": true,\n \"enabled\": true,\n \"execution_policy\": \"AWAIT_DATA\",\n \"expiration_ms\": 1,\n \"formats\": [\n \"CSV\"\n ],\n \"merging_configuration\": {\n \"deliverable_type\": \"deliverable_type\",\n \"formats\": [\n \"CSV\"\n ],\n \"sort_by\": [\n \"sort_by\"\n ],\n \"unique_by\": [\n \"unique_by\"\n ]\n },\n \"name\": \"name\",\n \"parameters\": {\n \"parameters_key\": \"parameters_key\"\n },\n \"pause_info\": {\n \"description\": \"description\",\n \"paused\": true\n },\n \"report_name_pattern\": \"report_name_pattern\",\n \"report_type\": \"report_type\",\n \"scopes\": [\n \"CLIENT_ADMIN\"\n ],\n \"sftp_report_name_pattern\": \"sftp_report_name_pattern\",\n \"sftp_server_id\": \"sftp_server_id\",\n \"tags\": [\n \"tag\"\n ],\n \"type\": \"REFRESHING\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.extole.io/v7/report-runners/{reportRunnerId}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"deliver_empty_reports_to_sftp\": true,\n \"enabled\": true,\n \"execution_policy\": \"AWAIT_DATA\",\n \"expiration_ms\": 1,\n \"formats\": [\n \"CSV\"\n ],\n \"merging_configuration\": {\n \"deliverable_type\": \"deliverable_type\",\n \"formats\": [\n \"CSV\"\n ],\n \"sort_by\": [\n \"sort_by\"\n ],\n \"unique_by\": [\n \"unique_by\"\n ]\n },\n \"name\": \"name\",\n \"parameters\": {\n \"parameters_key\": \"parameters_key\"\n },\n \"pause_info\": {\n \"description\": \"description\",\n \"paused\": true\n },\n \"report_name_pattern\": \"report_name_pattern\",\n \"report_type\": \"report_type\",\n \"scopes\": [\n \"CLIENT_ADMIN\"\n ],\n \"sftp_report_name_pattern\": \"sftp_report_name_pattern\",\n \"sftp_server_id\": \"sftp_server_id\",\n \"tags\": [\n \"tag\"\n ],\n \"type\": \"REFRESHING\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.extole.io/v7/report-runners/{reportRunnerId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"deliver_empty_reports_to_sftp\": true,\n \"enabled\": true,\n \"execution_policy\": \"AWAIT_DATA\",\n \"expiration_ms\": 1,\n \"formats\": [\n \"CSV\"\n ],\n \"merging_configuration\": {\n \"deliverable_type\": \"deliverable_type\",\n \"formats\": [\n \"CSV\"\n ],\n \"sort_by\": [\n \"sort_by\"\n ],\n \"unique_by\": [\n \"unique_by\"\n ]\n },\n \"name\": \"name\",\n \"parameters\": {\n \"parameters_key\": \"parameters_key\"\n },\n \"pause_info\": {\n \"description\": \"description\",\n \"paused\": true\n },\n \"report_name_pattern\": \"report_name_pattern\",\n \"report_type\": \"report_type\",\n \"scopes\": [\n \"CLIENT_ADMIN\"\n ],\n \"sftp_report_name_pattern\": \"sftp_report_name_pattern\",\n \"sftp_server_id\": \"sftp_server_id\",\n \"tags\": [\n \"tag\"\n ],\n \"type\": \"REFRESHING\"\n}"
response = http.request(request)
puts response.read_body{
"component_ids": [
"<string>"
],
"component_references": [
{
"component_id": "<string>",
"socket_names": [
"<string>"
]
}
],
"created_date": "2025-10-24T02:00:00-07:00",
"deliver_empty_reports_to_sftp": true,
"enabled": true,
"formats": [],
"id": "<string>",
"merging_configuration": {
"formats": [],
"sort_by": [
"<string>"
],
"unique_by": [
"<string>"
]
},
"name": "<string>",
"parameters": {},
"pause_info": {
"description": "<string>",
"updated_date": "2025-10-24T09:00:00.000Z",
"user_id": "<string>"
},
"paused": {
"description": "<string>",
"updated_date": "2025-10-24T09:00:00.000Z",
"user_id": "<string>"
},
"report_name_pattern": "<string>",
"report_type": "<string>",
"report_type_name": "<string>",
"scopes": [],
"sftp_report_name_pattern": "<string>",
"sftp_server_id": "<string>",
"tags": [
"<string>"
],
"type": "REFRESHING",
"updated_date": "2025-10-24T02:00:00-07:00",
"user_id": "<string>",
"expiration_ms": 123
}Update a report runner
Applies a partial update to the supplied report runner. Only the fields present in the body are changed; omitted fields are left intact. Returns the persisted report runner after the update. Returns 404 report_runner_not_found if the id does not exist. Locked runners (report_runner_locked) must be updated via deployment tooling.
curl --request PUT \
--url https://api.extole.io/v7/report-runners/{reportRunnerId} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"component_ids": [
"component_id"
],
"component_references": [
{
"component_id": "component_id",
"socket_names": [
"socket_name"
]
}
],
"deliver_empty_reports_to_sftp": true,
"enabled": true,
"execution_policy": "AWAIT_DATA",
"expiration_ms": 1,
"formats": [
"CSV"
],
"merging_configuration": {
"deliverable_type": "deliverable_type",
"formats": [
"CSV"
],
"sort_by": [
"sort_by"
],
"unique_by": [
"unique_by"
]
},
"name": "name",
"parameters": {
"parameters_key": "parameters_key"
},
"pause_info": {
"description": "description",
"paused": true
},
"report_name_pattern": "report_name_pattern",
"report_type": "report_type",
"scopes": [
"CLIENT_ADMIN"
],
"sftp_report_name_pattern": "sftp_report_name_pattern",
"sftp_server_id": "sftp_server_id",
"tags": [
"tag"
],
"type": "REFRESHING"
}
'import requests
url = "https://api.extole.io/v7/report-runners/{reportRunnerId}"
payload = {
"component_ids": ["component_id"],
"component_references": [
{
"component_id": "component_id",
"socket_names": ["socket_name"]
}
],
"deliver_empty_reports_to_sftp": True,
"enabled": True,
"execution_policy": "AWAIT_DATA",
"expiration_ms": 1,
"formats": ["CSV"],
"merging_configuration": {
"deliverable_type": "deliverable_type",
"formats": ["CSV"],
"sort_by": ["sort_by"],
"unique_by": ["unique_by"]
},
"name": "name",
"parameters": { "parameters_key": "parameters_key" },
"pause_info": {
"description": "description",
"paused": True
},
"report_name_pattern": "report_name_pattern",
"report_type": "report_type",
"scopes": ["CLIENT_ADMIN"],
"sftp_report_name_pattern": "sftp_report_name_pattern",
"sftp_server_id": "sftp_server_id",
"tags": ["tag"],
"type": "REFRESHING"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
component_ids: ['component_id'],
component_references: [{component_id: 'component_id', socket_names: ['socket_name']}],
deliver_empty_reports_to_sftp: true,
enabled: true,
execution_policy: 'AWAIT_DATA',
expiration_ms: 1,
formats: ['CSV'],
merging_configuration: {
deliverable_type: 'deliverable_type',
formats: ['CSV'],
sort_by: ['sort_by'],
unique_by: ['unique_by']
},
name: 'name',
parameters: {parameters_key: 'parameters_key'},
pause_info: {description: 'description', paused: true},
report_name_pattern: 'report_name_pattern',
report_type: 'report_type',
scopes: ['CLIENT_ADMIN'],
sftp_report_name_pattern: 'sftp_report_name_pattern',
sftp_server_id: 'sftp_server_id',
tags: ['tag'],
type: 'REFRESHING'
})
};
fetch('https://api.extole.io/v7/report-runners/{reportRunnerId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.extole.io/v7/report-runners/{reportRunnerId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'component_ids' => [
'component_id'
],
'component_references' => [
[
'component_id' => 'component_id',
'socket_names' => [
'socket_name'
]
]
],
'deliver_empty_reports_to_sftp' => true,
'enabled' => true,
'execution_policy' => 'AWAIT_DATA',
'expiration_ms' => 1,
'formats' => [
'CSV'
],
'merging_configuration' => [
'deliverable_type' => 'deliverable_type',
'formats' => [
'CSV'
],
'sort_by' => [
'sort_by'
],
'unique_by' => [
'unique_by'
]
],
'name' => 'name',
'parameters' => [
'parameters_key' => 'parameters_key'
],
'pause_info' => [
'description' => 'description',
'paused' => true
],
'report_name_pattern' => 'report_name_pattern',
'report_type' => 'report_type',
'scopes' => [
'CLIENT_ADMIN'
],
'sftp_report_name_pattern' => 'sftp_report_name_pattern',
'sftp_server_id' => 'sftp_server_id',
'tags' => [
'tag'
],
'type' => 'REFRESHING'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.extole.io/v7/report-runners/{reportRunnerId}"
payload := strings.NewReader("{\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"deliver_empty_reports_to_sftp\": true,\n \"enabled\": true,\n \"execution_policy\": \"AWAIT_DATA\",\n \"expiration_ms\": 1,\n \"formats\": [\n \"CSV\"\n ],\n \"merging_configuration\": {\n \"deliverable_type\": \"deliverable_type\",\n \"formats\": [\n \"CSV\"\n ],\n \"sort_by\": [\n \"sort_by\"\n ],\n \"unique_by\": [\n \"unique_by\"\n ]\n },\n \"name\": \"name\",\n \"parameters\": {\n \"parameters_key\": \"parameters_key\"\n },\n \"pause_info\": {\n \"description\": \"description\",\n \"paused\": true\n },\n \"report_name_pattern\": \"report_name_pattern\",\n \"report_type\": \"report_type\",\n \"scopes\": [\n \"CLIENT_ADMIN\"\n ],\n \"sftp_report_name_pattern\": \"sftp_report_name_pattern\",\n \"sftp_server_id\": \"sftp_server_id\",\n \"tags\": [\n \"tag\"\n ],\n \"type\": \"REFRESHING\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.extole.io/v7/report-runners/{reportRunnerId}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"deliver_empty_reports_to_sftp\": true,\n \"enabled\": true,\n \"execution_policy\": \"AWAIT_DATA\",\n \"expiration_ms\": 1,\n \"formats\": [\n \"CSV\"\n ],\n \"merging_configuration\": {\n \"deliverable_type\": \"deliverable_type\",\n \"formats\": [\n \"CSV\"\n ],\n \"sort_by\": [\n \"sort_by\"\n ],\n \"unique_by\": [\n \"unique_by\"\n ]\n },\n \"name\": \"name\",\n \"parameters\": {\n \"parameters_key\": \"parameters_key\"\n },\n \"pause_info\": {\n \"description\": \"description\",\n \"paused\": true\n },\n \"report_name_pattern\": \"report_name_pattern\",\n \"report_type\": \"report_type\",\n \"scopes\": [\n \"CLIENT_ADMIN\"\n ],\n \"sftp_report_name_pattern\": \"sftp_report_name_pattern\",\n \"sftp_server_id\": \"sftp_server_id\",\n \"tags\": [\n \"tag\"\n ],\n \"type\": \"REFRESHING\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.extole.io/v7/report-runners/{reportRunnerId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"component_ids\": [\n \"component_id\"\n ],\n \"component_references\": [\n {\n \"component_id\": \"component_id\",\n \"socket_names\": [\n \"socket_name\"\n ]\n }\n ],\n \"deliver_empty_reports_to_sftp\": true,\n \"enabled\": true,\n \"execution_policy\": \"AWAIT_DATA\",\n \"expiration_ms\": 1,\n \"formats\": [\n \"CSV\"\n ],\n \"merging_configuration\": {\n \"deliverable_type\": \"deliverable_type\",\n \"formats\": [\n \"CSV\"\n ],\n \"sort_by\": [\n \"sort_by\"\n ],\n \"unique_by\": [\n \"unique_by\"\n ]\n },\n \"name\": \"name\",\n \"parameters\": {\n \"parameters_key\": \"parameters_key\"\n },\n \"pause_info\": {\n \"description\": \"description\",\n \"paused\": true\n },\n \"report_name_pattern\": \"report_name_pattern\",\n \"report_type\": \"report_type\",\n \"scopes\": [\n \"CLIENT_ADMIN\"\n ],\n \"sftp_report_name_pattern\": \"sftp_report_name_pattern\",\n \"sftp_server_id\": \"sftp_server_id\",\n \"tags\": [\n \"tag\"\n ],\n \"type\": \"REFRESHING\"\n}"
response = http.request(request)
puts response.read_body{
"component_ids": [
"<string>"
],
"component_references": [
{
"component_id": "<string>",
"socket_names": [
"<string>"
]
}
],
"created_date": "2025-10-24T02:00:00-07:00",
"deliver_empty_reports_to_sftp": true,
"enabled": true,
"formats": [],
"id": "<string>",
"merging_configuration": {
"formats": [],
"sort_by": [
"<string>"
],
"unique_by": [
"<string>"
]
},
"name": "<string>",
"parameters": {},
"pause_info": {
"description": "<string>",
"updated_date": "2025-10-24T09:00:00.000Z",
"user_id": "<string>"
},
"paused": {
"description": "<string>",
"updated_date": "2025-10-24T09:00:00.000Z",
"user_id": "<string>"
},
"report_name_pattern": "<string>",
"report_type": "<string>",
"report_type_name": "<string>",
"scopes": [],
"sftp_report_name_pattern": "<string>",
"sftp_server_id": "<string>",
"tags": [
"<string>"
],
"type": "REFRESHING",
"updated_date": "2025-10-24T02:00:00-07:00",
"user_id": "<string>",
"expiration_ms": 123
}Authorizations
Path Parameters
The Extole unique report runner identifier.
Body
- REFRESHING
- SCHEDULED
Body of a PUT /v7/report-runners/{reportRunnerId} request.
REFRESHING Show child attributes
Show child attributes
AWAIT_DATA, IMMEDIATE CSV, HEADLESS_CSV, HEADLESS_PSV, JSON, JSONL, PSV, XLSX Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Choose between static or dynamic report name pattern
CLIENT_ADMIN, CLIENT_SUPERUSER, CONSUMER_PUBLIC Choose between static or dynamic sftp report name pattern
Response
Updated report runner.
- REFRESHING
- SCHEDULED
Show child attributes
Show child attributes
RFC 3339 or RFC 9557 date-time with a numeric UTC offset and an optional IANA time-zone suffix in square brackets. Precision up to milliseconds.
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$"2025-10-24T02:00:00-07:00"
AWAIT_DATA, IMMEDIATE CSV, HEADLESS_CSV, HEADLESS_PSV, JSON, JSONL, PSV, XLSX Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The report name pattern as configured: a literal value, or an expression (type:string) when defined dynamically.
CLIENT_ADMIN, CLIENT_SUPERUSER, CONSUMER_PUBLIC The sftp report name pattern as configured: a literal value, or an expression (type:string) when defined dynamically.
REFRESHING RFC 3339 or RFC 9557 date-time with a numeric UTC offset and an optional IANA time-zone suffix in square brackets. Precision up to milliseconds.
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$"2025-10-24T02:00:00-07:00"
