--- openapi: 3.1.0 info: title: Trigger.dev v3 REST API description: "The REST API lets you trigger and manage runs on Trigger.dev. You can trigger a run, get the status of a run, and get the results of a run. " version: 2024-04 license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html servers: - url: https://api.trigger.dev description: Trigger.dev API paths: "/api/v1/schedules": post: operationId: create_schedule_v1 summary: Create a schedule description: Create a new `IMPERATIVE` schedule based on the specified options. requestBody: required: true content: application/json: schema: "$ref": "#/components/schemas/CreateScheduleOptions" responses: "200": description: Schedule created successfully content: application/json: schema: "$ref": "#/components/schemas/ScheduleObject" "400": description: Invalid request parameters "401": description: Unauthorized "422": description: Unprocessable Entity tags: - schedules security: - secretKey: [] x-codeSamples: - lang: typescript source: |- import { schedules } from "@trigger.dev/sdk/v3"; const schedule = await schedules.create({ task: 'my-task', cron: '0 0 * * *' deduplicationKey: 'my-schedule', timezone: 'America/New_York' }); get: operationId: list_schedules_v1 summary: List all schedules description: List all schedules. You can also paginate the results. parameters: - in: query name: page schema: type: integer required: false description: Page number of the schedule listing - in: query name: perPage schema: type: integer required: false description: Number of schedules per page responses: "200": description: Successful request content: application/json: schema: "$ref": "#/components/schemas/ListSchedulesResult" "401": description: Unauthorized request tags: - schedules security: - secretKey: [] x-codeSamples: - lang: typescript source: |- import { schedules } from "@trigger.dev/sdk/v3"; const allSchedules = await schedules.list(); "/api/v1/schedules/{schedule_id}": get: operationId: get_schedule_v1 summary: Retrieve Schedule description: Get a schedule by its ID. parameters: - in: path name: schedule_id required: true schema: type: string description: The ID of the schedule. example: sched_1234 responses: "200": description: Successful request content: application/json: schema: "$ref": "#/components/schemas/ScheduleObject" "401": description: Unauthorized request "404": description: Resource not found tags: - schedules security: - secretKey: [] x-codeSamples: - lang: typescript source: |- import { schedules } from "@trigger.dev/sdk/v3"; const schedule = await schedules.retrieve(scheduleId); put: operationId: update_schedule_v1 summary: Update Schedule description: Update a schedule by its ID. This will only work on `IMPERATIVE` schedules that were created in the dashboard or using the imperative SDK functions like `schedules.create()`. parameters: - in: path name: schedule_id required: true schema: type: string description: The ID of the schedule. requestBody: required: true content: application/json: schema: "$ref": "#/components/schemas/UpdateScheduleOptions" responses: "200": description: Schedule updated successfully content: application/json: schema: "$ref": "#/components/schemas/ScheduleObject" "400": description: Invalid request parameters "401": description: Unauthorized "404": description: Resource not found "422": description: Unprocessable Entity tags: - schedules security: - secretKey: [] x-codeSamples: - lang: typescript source: |- import { schedules } from "@trigger.dev/sdk/v3"; const updatedSchedule = await schedules.update(scheduleId, { task: 'my-updated-task', cron: '0 0 * * *' }); delete: operationId: delete_schedule_v1 summary: Delete Schedule description: Delete a schedule by its ID. This will only work on `IMPERATIVE` schedules that were created in the dashboard or using the imperative SDK functions like `schedules.create()`. parameters: - in: path name: schedule_id required: true schema: type: string description: The ID of the schedule. responses: "200": description: Schedule deleted successfully "401": description: Unauthorized request "404": description: Resource not found tags: - schedules security: - secretKey: [] x-codeSamples: - lang: typescript source: |- import { schedules } from "@trigger.dev/sdk/v3"; await schedules.del(scheduleId); "/api/v1/schedules/{schedule_id}/deactivate": post: operationId: deactivate_schedule_v1 summary: Deactivate Schedule. description: Deactivate a schedule by its ID. This will only work on `IMPERATIVE` schedules that were created in the dashboard or using the imperative SDK functions like `schedules.create()`. parameters: - in: path name: schedule_id required: true schema: type: string description: The ID of the schedule. responses: "200": description: Schedule updated successfully content: application/json: schema: "$ref": "#/components/schemas/ScheduleObject" "401": description: Unauthorized request "404": description: Resource not found tags: - schedules security: - secretKey: [] x-codeSamples: - lang: typescript source: |- import { schedules } from "@trigger.dev/sdk/v3"; const schedule = await schedules.deactivate(scheduleId); "/api/v1/schedules/{schedule_id}/activate": post: operationId: activate_schedule_v1 summary: Activate Schedule description: Activate a schedule by its ID. This will only work on `IMPERATIVE` schedules that were created in the dashboard or using the imperative SDK functions like `schedules.create()`. parameters: - in: path name: schedule_id required: true schema: type: string description: The ID of the schedule. responses: "200": description: Schedule updated successfully content: application/json: schema: "$ref": "#/components/schemas/ScheduleObject" "401": description: Unauthorized request "404": description: Resource not found tags: - schedules security: - secretKey: [] x-codeSamples: - lang: typescript source: |- import { schedules } from "@trigger.dev/sdk/v3"; const schedule = await schedules.activate(scheduleId); "/api/v1/timezones": get: security: [] operationId: get_timezones_v1 summary: Get all supported timezones description: Get all supported timezones that schedule tasks support. parameters: - in: query name: excludeUtc schema: type: boolean required: false description: Defaults to false. Whether to include UTC in the results or not. responses: "200": description: Successful request content: application/json: schema: "$ref": "#/components/schemas/GetTimezonesResult" tags: - schedules x-codeSamples: - lang: typescript source: |- import { schedules } from "@trigger.dev/sdk/v3"; const { timezones } = await schedules.timezones(); "/api/v1/runs/{runId}/replay": parameters: - $ref: "#/components/parameters/runId" post: operationId: replay_run_v1 summary: Replay a run description: Creates a new run with the same payload and options as the original run. responses: "200": description: Successful request content: application/json: schema: type: object properties: id: type: string description: The ID of the new run. "400": description: Invalid request content: application/json: schema: type: object properties: error: type: string enum: - Invalid or missing run ID - Failed to create new run "401": description: Unauthorized request content: application/json: schema: type: object properties: error: type: string enum: - Invalid or Missing API key "404": description: Resource not found content: application/json: schema: type: object properties: error: type: string enum: - Run not found tags: - runs security: - secretKey: [] x-codeSamples: - lang: typescript source: |- import { runs } from "@trigger.dev/sdk/v3"; const handle = await runs.replay("run_1234"); "/api/v1/runs/{runId}/metadata": parameters: - $ref: "#/components/parameters/runId" put: operationId: update_run_metadata_v1 summary: Update run metadata description: Update the metadata of a run. requestBody: required: true content: application/json: schema: type: object properties: metadata: type: object description: The new metadata to set on the run. example: { key: "value" } responses: "200": description: Successful request content: application/json: schema: type: object properties: metadata: type: object description: The updated metadata of the run. "400": description: Invalid request content: application/json: schema: type: object properties: error: type: string enum: - Invalid or missing run ID - Invalid metadata "401": description: Unauthorized request content: application/json: schema: type: object properties: error: type: string enum: - Invalid or Missing API key "404": description: Resource not found content: application/json: schema: type: object properties: error: type: string enum: - Task Run not found tags: - runs security: - secretKey: [] x-codeSamples: - lang: typescript label: Save metadata source: |- import { metadata, task } from "@trigger.dev/sdk/v3"; export const myTask = task({ id: "my-task", run: async () => { await metadata.save({ key: "value" }); } }); "/api/v2/runs/{runId}/cancel": parameters: - $ref: "#/components/parameters/runId" post: operationId: cancel_run_v1 summary: Cancel a run description: Cancels an in-progress run. If the run is already completed, this will have no effect. responses: "200": description: Successful request content: application/json: schema: type: object properties: id: type: string description: The ID of the run that was canceled. example: run_1234 "400": description: Invalid request content: application/json: schema: type: object properties: error: type: string enum: - Invalid or missing run ID - Failed to create new run "401": description: Unauthorized request content: application/json: schema: type: object properties: error: type: string enum: - Invalid or Missing API key "404": description: Resource not found content: application/json: schema: type: object properties: error: type: string enum: - Run not found tags: - runs security: - secretKey: [] x-codeSamples: - lang: typescript source: |- import { runs } from "@trigger.dev/sdk/v3"; await runs.cancel("run_1234"); "/api/v1/runs/{runId}/reschedule": parameters: - $ref: "#/components/parameters/runId" post: operationId: reschedule_run_v1 summary: Rescheduled a delayed run description: Updates a delayed run with a new delay. Only valid when the run is in the DELAYED state. requestBody: required: true content: application/json: schema: "$ref": "#/components/schemas/RescheduleRunRequestBody" responses: "200": description: Successful request content: application/json: schema: "$ref": "#/components/schemas/RetrieveRunResponse" "400": description: Invalid request content: application/json: schema: type: object properties: error: type: string enum: - Invalid or missing run ID - Failed to create new run "401": description: Unauthorized request content: application/json: schema: type: object properties: error: type: string enum: - Invalid or Missing API key "404": description: Resource not found content: application/json: schema: type: object properties: error: type: string enum: - Run not found tags: - runs security: - secretKey: [] x-codeSamples: - lang: typescript source: |- import { runs } from "@trigger.dev/sdk/v3"; const handle = await runs.reschedule("run_1234", { delay: new Date("2024-06-29T20:45:56.340Z") }); "/api/v3/runs/{runId}": parameters: - $ref: "#/components/parameters/runId" get: operationId: retrieve_run_v1 summary: Retrieve a run description: | Retrieve information about a run, including its status, payload, output, and attempts. If you authenticate with a Public API key, we will omit the payload and output fields for security reasons. responses: "200": description: Successful request content: application/json: schema: "$ref": "#/components/schemas/RetrieveRunResponse" "400": description: Invalid request content: application/json: schema: type: object properties: error: type: string enum: - Invalid or missing run ID "401": description: Unauthorized request content: application/json: schema: type: object properties: error: type: string enum: - Invalid or Missing API key "404": description: Resource not found content: application/json: schema: type: object properties: error: type: string enum: - Run not found tags: - run security: - secretKey: [] x-codeSamples: - lang: typescript source: |- import { runs } from "@trigger.dev/sdk/v3"; const result = await runs.retrieve("run_1234"); // We include boolean helpers to check the status of the run // (isSuccess, isFailed, isCompleted, etc.) if (result.isSuccess) { console.log("Run was successful with output", result.output); } // You also have access to the run status that includes more granular information console.log("Run status:", result.status); // You can access the payload and output console.log("Payload:", result.payload); console.log("Output:", result.output); // You can also access the attempts, which will give you information about errors (if they exist) for (const attempt of result.attempts) { if (attempt.status === "FAILED") { console.log("Attempt failed with error:", attempt.error); } } "/api/v1/runs": get: operationId: list_runs_v1 summary: List runs description: List runs in a specific environment. You can filter the runs by status, created at, task identifier, version, and more. parameters: - $ref: "#/components/parameters/cursorPagination" - $ref: "#/components/parameters/runsFilter" responses: "200": description: Successful request content: application/json: schema: $ref: "#/components/schemas/ListRunsResult" "400": description: Invalid query parameters content: application/json: schema: $ref: "#/components/schemas/ErrorWithDetailsResponse" "401": description: Unauthorized request tags: - runs security: - secretKey: [] x-codeSamples: - lang: typescript label: List runs source: |- import { runs } from "@trigger.dev/sdk/v3"; // Get the first page of runs let page = await runs.list({ limit: 20 }); for (const run of page.data) { console.log(`Run ID: ${run.id}, Status: ${run.status}`); } // Convenience methods are provided for manually paginating: while (page.hasNextPage()) { page = await page.getNextPage(); // Do something with the next page of runs } // Auto-paginate through all runs const allRuns = []; for await (const run of runs.list({ limit: 20 })) { allRuns.push(run); } - lang: typescript label: Filter runs source: |- import { runs } from "@trigger.dev/sdk/v3"; const response = await runs.list({ status: ["QUEUED", "EXECUTING"], taskIdentifier: ["my-task", "my-other-task"], from: new Date("2024-04-01T00:00:00Z"), to: new Date(), }); for (const run of response.data) { console.log(`Run ID: ${run.id}, Status: ${run.status}`); } "/api/v1/projects/{projectRef}/runs": parameters: - $ref: "#/components/parameters/projectRef" get: operationId: list_project_runs_v1 summary: List project runs description: List runs in a project, across multiple environments, using Personal Access Token auth. You can filter the runs by status, created at, task identifier, version, and more. parameters: - $ref: "#/components/parameters/cursorPagination" - $ref: "#/components/parameters/runsFilterWithEnv" responses: "200": description: Successful request content: application/json: schema: $ref: "#/components/schemas/ListRunsResult" "400": description: Invalid request content: application/json: schema: $ref: "#/components/schemas/ErrorWithDetailsResponse" "401": description: Unauthorized request tags: - runs security: - personalAccessToken: [] x-codeSamples: - lang: typescript label: List runs source: |- import { runs, configure } from "@trigger.dev/sdk/v3"; configure({ accessToken: "tr_pat_1234" // always use an environment variable for this }); // Get the first page of runs let page = await runs.list("proj_1234", { limit: 20 }); for (const run of page.data) { console.log(`Run ID: ${run.id}, Status: ${run.status}`); } // Convenience methods are provided for manually paginating: while (page.hasNextPage()) { page = await page.getNextPage(); // Do something with the next page of runs } // Auto-paginate through all runs const allRuns = []; for await (const run of runs.list("proj_1234", { limit: 20 })) { allRuns.push(run); } - lang: typescript label: Filter runs source: |- import { runs, configure } from "@trigger.dev/sdk/v3"; configure({ accessToken: "tr_pat_1234" // always use an environment variable for this }); const response = await runs.list("proj_1234", { env: ["prod", "staging"], status: ["QUEUED", "EXECUTING"], taskIdentifier: ["my-task", "my-other-task"], from: new Date("2024-04-01T00:00:00Z"), to: new Date(), }); for (const run of response.data) { console.log(`Run ID: ${run.id}, Status: ${run.status}`); } "/api/v1/projects/{projectRef}/envvars/{env}": parameters: - $ref: "#/components/parameters/projectRef" - $ref: "#/components/parameters/env" get: operationId: list_project_envvars_v1 summary: List environment variables description: List all environment variables for a specific project and environment. responses: "200": description: Successful request content: application/json: schema: "$ref": "#/components/schemas/ListEnvironmentVariablesResponse" "400": description: Invalid request parameters or body content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" "401": description: Unauthorized request content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" "404": description: Resource not found content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" tags: - envvars security: - secretKey: [] - personalAccessToken: [] x-codeSamples: - lang: typescript label: Outside of a task source: |- import { envvars, configure } from "@trigger.dev/sdk/v3"; const variables = await envvars.list("proj_yubjwjsfkxnylobaqvqz", "dev"); for (const variable of variables) { console.log(`Name: ${variable.name}, Value: ${variable.value}`); } - lang: typescript label: Inside a task source: |- import { envvars, task } from "@trigger.dev/sdk/v3"; export const myTask = task({ id: "my-task", run: async () => { // projectRef and env are automatically inferred from the task context const variables = await envvars.list(); for (const variable of variables) { console.log(`Name: ${variable.name}, Value: ${variable.value}`); } } }) post: operationId: create_project_envvar_v1 summary: Create environment variable description: Create a new environment variable for a specific project and environment. requestBody: required: true content: application/json: schema: "$ref": "#/components/schemas/EnvVar" responses: "200": description: Environment variable created successfully content: application/json: schema: "$ref": "#/components/schemas/SucceedResponse" "400": description: Invalid request parameters or body content: application/json: schema: "$ref": "#/components/schemas/InvalidEnvVarsRequestResponse" "401": description: Unauthorized request content: application/json: schema: type: object properties: error: type: string "404": description: Resource not found content: application/json: schema: type: object properties: error: type: string tags: - envvars security: - secretKey: [] - personalAccessToken: [] x-codeSamples: - lang: typescript label: Outside of a task source: |- import { envvars } from "@trigger.dev/sdk/v3"; await envvars.create("proj_yubjwjsfkxnylobaqvqz", "dev", { name: "SLACK_API_KEY", value: "slack_123456" }); - lang: typescript label: Inside a task source: |- import { envvars, task } from "@trigger.dev/sdk/v3"; export const myTask = task({ id: "my-task", run: async () => { // projectRef and env are automatically inferred from the task context await envvars.create({ name: "SLACK_API_KEY", value: "slack_123456" }); } }) "/api/v1/projects/{projectRef}/envvars/{env}/import": parameters: - $ref: "#/components/parameters/projectRef" - $ref: "#/components/parameters/env" post: operationId: upload_project_envvars_v1 summary: Upload environment variables description: Upload mulitple environment variables for a specific project and environment. requestBody: required: true content: application/json: schema: type: object properties: variables: type: array items: "$ref": "#/components/schemas/EnvVar" override: type: boolean description: Whether to override existing variables or not default: false required: ["variables"] responses: "200": description: Environment variables imported successfully content: application/json: schema: "$ref": "#/components/schemas/SucceedResponse" "400": description: Invalid request parameters or body content: application/json: schema: "$ref": "#/components/schemas/InvalidEnvVarsRequestResponse" "401": description: Unauthorized request content: application/json: schema: type: object properties: error: type: string "404": description: Resource not found content: application/json: schema: type: object properties: error: type: string tags: - envvars security: - secretKey: [] - personalAccessToken: [] x-codeSamples: - lang: typescript label: Import variables from an array source: |- import { envvars } from "@trigger.dev/sdk/v3"; await envvars.upload("proj_yubjwjsfkxnylobaqvqz", "dev", { variables: { SLACK_API_KEY: "slack_key_1234" }, override: false }); "/api/v1/projects/{projectRef}/envvars/{env}/{name}": parameters: - $ref: "#/components/parameters/projectRef" - $ref: "#/components/parameters/env" - $ref: "#/components/parameters/envvarName" get: operationId: get_project_envvar_v1 summary: Retrieve environment variable description: Retrieve a specific environment variable for a specific project and environment. responses: "200": description: Successful request content: application/json: schema: "$ref": "#/components/schemas/EnvVarValue" "400": description: Invalid request parameters or body content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" "401": description: Unauthorized request content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" "404": description: Resource not found content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" tags: - envvars security: - secretKey: [] - personalAccessToken: [] x-codeSamples: - lang: typescript label: Outside of a task source: |- import { envvars } from "@trigger.dev/sdk/v3"; const variable = await envvars.retrieve("proj_yubjwjsfkxnylobaqvqz", "dev", "SLACK_API_KEY"); console.log(`Value: ${variable.value}`); - lang: typescript label: Inside a task source: |- import { envvars, task } from "@trigger.dev/sdk/v3"; export const myTask = task({ id: "my-task", run: async () => { // projectRef and env are automatically inferred from the task context const variable = await envvars.retrieve("SLACK_API_KEY"); console.log(`Value: ${variable.value}`); } }) delete: operationId: delete_project_envvar_v1 summary: Delete environment variable description: Delete a specific environment variable for a specific project and environment. responses: "200": description: Environment variable deleted successfully content: application/json: schema: "$ref": "#/components/schemas/SucceedResponse" "400": description: Invalid request parameters or body content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" "401": description: Unauthorized request content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" "404": description: Resource not found content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" tags: - envvars security: - secretKey: [] - personalAccessToken: [] x-codeSamples: - lang: typescript label: Outside of a task source: |- import { envvars } from "@trigger.dev/sdk/v3"; await envvars.del("proj_yubjwjsfkxnylobaqvqz", "dev", "SLACK_API_KEY"); - lang: typescript label: Inside a task source: |- import { envvars, task } from "@trigger.dev/sdk/v3"; export const myTask = task({ id: "my-task", run: async () => { // projectRef and env are automatically inferred from the task context await envvars.del("SLACK_API_KEY"); } }) put: operationId: update_project_envvar_v1 summary: Update environment variable description: Update a specific environment variable for a specific project and environment. requestBody: required: true content: application/json: schema: "$ref": "#/components/schemas/EnvVarValue" responses: "200": description: Environment variable updated successfully content: application/json: schema: "$ref": "#/components/schemas/SucceedResponse" "400": description: Invalid request parameters or body content: application/json: schema: "$ref": "#/components/schemas/InvalidEnvVarsRequestResponse" "401": description: Unauthorized request content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" "404": description: Resource not found content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" tags: - envvars security: - secretKey: [] - personalAccessToken: [] x-codeSamples: - lang: typescript label: Outside of a task source: |- import { envvars } from "@trigger.dev/sdk/v3"; await envvars.update("proj_yubjwjsfkxnylobaqvqz", "dev", "SLACK_API_KEY", { value: "slack_123456" }); - lang: typescript label: Inside a task source: |- import { envvars, task } from "@trigger.dev/sdk/v3"; export const myTask = task({ id: "my-task", run: async () => { // projectRef and env are automatically inferred from the task context await envvars.update("SLACK_API_KEY", { value: "slack_123456" }); } }) "/api/v1/tasks/{taskIdentifier}/trigger": parameters: - $ref: "#/components/parameters/taskIdentifier" post: operationId: trigger_task_v1 summary: Trigger a task description: Trigger a task by its identifier. requestBody: required: true content: application/json: schema: "$ref": "#/components/schemas/TriggerTaskRequestBody" responses: "200": description: Task triggered successfully content: application/json: schema: "$ref": "#/components/schemas/TriggerTaskResponse" "400": description: Invalid request parameters or body content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" "401": description: Unauthorized request content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" "404": description: Resource not found content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" tags: - tasks security: - secretKey: [] x-codeSamples: - lang: typescript source: |- import { task } from "@trigger.dev/sdk/v3"; export const myTask = await task({ id: "my-task", run: async (payload: { message: string }) => { console.log("Hello, world!"); } }); // Somewhere else in your code await myTask.trigger({ message: "Hello, world!" }, { idempotencyKey: "unique-key-123", concurrencyKey: "user123-task", queue: { name: "my-task-queue", concurrencyLimit: 5 }, }); - lang: curl source: |- curl -X POST "https://api.trigger.dev/api/v1/tasks/my-task/trigger" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tr_dev_1234" \ -d '{ "payload": { "message": "Hello, world!" }, "context": { "user": "user123" }, "options": { "queue": { "name": "default", "concurrencyLimit": 5 }, "concurrencyKey": "user123-task", "idempotencyKey": "unique-key-123" } }' - lang: python source: |- import requests url = "https://api.trigger.dev/api/v1/tasks/my-task/trigger" headers = { "Content-Type": "application/json", "Authorization": "Bearer tr_dev_1234" } data = { "payload": { "message": "Hello, world!" }, "context": { "user": "user123" }, "options": { "queue": { "name": "default", "concurrencyLimit": 5 }, "concurrencyKey": "user123-task", "idempotencyKey": "unique-key-123" } } response = requests.post(url, headers=headers, json=data) print(response.json()) "/api/v1/tasks/batch": post: operationId: batch_trigger_task_v1 summary: Batch trigger tasks description: Batch trigger tasks with up to 500 payloads. requestBody: required: true content: application/json: schema: "$ref": "#/components/schemas/BatchTriggerV2RequestBody" responses: "200": description: Task batch triggered successfully content: application/json: schema: "$ref": "#/components/schemas/BatchTriggerTaskResponse" "400": description: Invalid request parameters or body content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" "401": description: Unauthorized request content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" "404": description: Resource not found content: application/json: schema: "$ref": "#/components/schemas/ErrorResponse" tags: - tasks security: - secretKey: [] x-codeSamples: - lang: typescript source: |- import { task } from "@trigger.dev/sdk/v3"; export const myTask = await task({ id: "my-task", run: async (payload: { message: string }) => { console.log("Hello, world!"); } }); // Somewhere else in your code await myTask.batchTrigger([ { payload: { message: "Hello, world!" }, options: { idempotencyKey: "unique-key-123", concurrencyKey: "user-123-task", queue: { name: "my-task-queue", concurrencyLimit: 5 } } } ]); - lang: curl source: |- curl -X POST "https://api.trigger.dev/api/v1/tasks/batch" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tr_dev_1234" \ -d '{ "items": [ { "task": "my-task", "payload": { "message": "Hello, world!" }, "context": { "user": "user123" }, "options": { "queue": { "name": "default", "concurrencyLimit": 5 }, "concurrencyKey": "user123-task", "idempotencyKey": "unique-key-123" } } ] }' components: parameters: taskIdentifier: in: path name: taskIdentifier required: true schema: type: string description: The id of a task example: my-task runsFilterWithEnv: in: query name: filter style: deepObject explode: true description: | Use this parameter to filter the runs. You can filter by created at, environment, status, task identifier, and version. For array fields, you can provide multiple values to filter by using a comma-separated list. For example, to get QUEUED and EXECUTING runs, you can use `filter[status]=QUEUED,EXECUTING`. For object fields, you should use the "form" encoding style. For example, to filter by the period, you can use `filter[createdAt][period]=1d`. schema: allOf: - $ref: "#/components/schemas/CommonRunsFilter" - $ref: "#/components/schemas/EnvFilter" runsFilter: in: query name: filter style: deepObject explode: true description: | Use this parameter to filter the runs. You can filter by created at, status, task identifier, and version. For array fields, you can provide multiple values to filter by using a comma-separated list. For example, to get QUEUED and EXECUTING runs, you can use `filter[status]=QUEUED,EXECUTING`. For object fields, you should use the "form" encoding style. For example, to filter by the period, you can use `filter[createdAt][period]=1d`. schema: $ref: "#/components/schemas/CommonRunsFilter" cursorPagination: in: query name: page style: deepObject explode: true description: | Use this parameter to paginate the results. You can specify the number of runs per page, and the ID of the run to start the page after or before. For object fields like `page`, you should use the "form" encoding style. For example, to get the next page of runs, you can use `page[after]=run_1234`. schema: type: object properties: size: type: integer maximum: 100 minimum: 10 default: 25 description: Number of runs per page. Maximum is 100. after: type: string description: The ID of the run to start the page after. This will set the direction of the pagination to forward. before: type: string description: The ID of the run to start the page before. This will set the direction of the pagination to backward. runId: in: path name: runId required: true schema: type: string description: | The ID of an run, starts with `run_`. The run ID will be returned when you trigger a run on a task. example: run_1234 projectRef: in: path name: projectRef required: true schema: type: string description: The external ref of the project. You can find this in the project settings. Starts with `proj_`. example: proj_yubjwjsfkxnylobaqvqz env: in: path name: env required: true schema: type: string enum: [dev, staging, prod] description: The environment of the project to list variables for. example: dev envvarName: in: path name: name required: true schema: type: string description: The name of the environment variable. example: SLACK_API_KEY securitySchemes: secretKey: type: http scheme: bearer description: | Use your project-specific Secret API key. Will start with `tr_dev_`, `tr_prod`, `tr_stg`, etc. You can find your Secret API key in the API Keys section of your Trigger.dev project dashboard. Our TypeScript SDK will default to using the value of the `TRIGGER_SECRET_KEY` environment variable if it is set. If you are using the SDK in a different environment, you can set the key using the `configure` function. ```typescript import { configure } from "@trigger.dev/sdk/v3"; configure({ accessToken: "tr_dev_1234" }); ``` personalAccessToken: type: http scheme: bearer description: | Use your user-specific Personal Access Token, which you can generate from the Trigger.dev dashboard in your account settings. (It will start with `tr_pat_`.) Our TypeScript SDK will default to using the value of the `TRIGGER_ACCESS_TOKEN` environment variable if it is set. If you are using the SDK in a different environment, you can set the key using the `configure` function. ```typescript import { configure } from "@trigger.dev/sdk/v3"; configure({ accessToken: "tr_pat_1234" }); ``` schemas: TriggerTaskResponse: type: object properties: id: type: string description: The ID of the run that was triggered. example: run_1234 QueueOptions: type: object properties: name: type: string description: You can define a shared queue and then pass the name in to your task. concurrencyLimit: type: integer minimum: 0 maximum: 1000 description: An optional property that specifies the maximum number of concurrent run executions. If this property is omitted, the task can potentially use up the full concurrency of an environment. BatchTriggerRequestBody: type: object properties: items: type: array items: "$ref": "#/components/schemas/TriggerTaskRequestBody" description: An array of payloads to trigger the task with required: ["items"] BatchTriggerV2RequestBody: type: object properties: items: type: array items: "$ref": "#/components/schemas/BatchTriggerTaskRequestBodyItem" description: An array of payloads to trigger the task with required: ["items"] BatchTriggerTaskResponse: type: object required: ["batchId", "runs"] properties: batchId: type: string description: The ID of the batch that was triggered example: batch_1234 runs: type: array items: type: string description: An array of run IDs that were triggered BatchTriggerTaskRequestBodyItem: type: object allOf: - $ref: "#/components/schemas/TriggerTaskRequestBody" - type: object properties: task: type: string description: The task identifier to trigger. This is the `id` set in your `task()` functions. required: - task TriggerTaskRequestBody: type: object properties: payload: description: The payload can include any valid JSON context: description: The context can include any valid JSON options: type: object properties: queue: $ref: "#/components/schemas/QueueOptions" concurrencyKey: type: string description: Scope the concurrency limit to a specific key. idempotencyKey: type: string description: An optional property that specifies the idempotency key used to prevent creating duplicate runs. If you provide an existing idempotency key, we will return the existing run ID. ttl: $ref: "#/components/schemas/TTL" delay: $ref: "#/components/schemas/Delay" tags: type: - array - string example: ["user_123456", "product_4629101"] description: | Tags to attach to the run. Tags can be used to filter runs in the dashboard and using the SDK. You can set up to 5 tags per run, they must be less than 64 characters each. We recommend prefixing tags with a namespace using an underscore or colon, like `user_1234567` or `org:9876543`. Stripe uses underscores. items: type: string machine: type: string enum: - micro - small-1x - small-2x - medium-1x - medium-2x - large-1x - large-2x example: "small-2x" description: The machine preset to use for this run. This will override the task's machine preset and any defaults. TTL: type: - string - number description: "The time-to-live for this run. If the run is not executed within this time, it will be removed from the queue and never execute. You can use a string in this format: `1h`, `1m`, `1h42m` or a number of seconds (min. 1)." example: "1h42m" Delay: type: string description: | The delay before the task is executed. This can be a Date object, a string like `1h` or a date-time string. * "1h" - 1 hour * "30d" - 30 days * "15m" - 15 minutes * "2w" - 2 weeks * "60s" - 60 seconds * new Date("2025-01-01T00:00:00Z") EnvFilter: type: object properties: env: type: array items: type: string description: The environment of the project enum: - dev - staging - prod CommonRunsFilter: type: object properties: createdAt: type: object properties: from: type: string format: date-time description: The start date to filter the runs by to: type: string format: date-time description: The end date to filter the runs by period: type: string description: The period to filter the runs by example: 1d status: type: array items: type: string description: The status of the run enum: - PENDING_VERSION - QUEUED - EXECUTING - REATTEMPTING - FROZEN - COMPLETED - CANCELED - FAILED - CRASHED - INTERRUPTED - SYSTEM_FAILURE taskIdentifier: type: array items: type: string description: The identifier of the task that was run version: type: array items: type: string description: The version of the worker that executed the run bulkAction: type: string description: The bulk action ID to filter the runs by example: bulk_1234 schedule: type: string description: The schedule ID to filter the runs by example: schedule_1234 isTest: type: boolean description: Whether the run is a test run or not example: false tag: type: array items: type: string description: The tags that are attached to the run ListRunsResult: type: object properties: data: type: array items: "$ref": "#/components/schemas/ListRunItem" pagination: type: object properties: next: type: string description: The run ID to start the next page after. This should be used as the `page[after]` parameter in the next request. example: run_1234 previous: type: string description: The run ID to start the previous page before. This should be used as the `page[before]` parameter in the next request. example: run_5678 ListRunItem: type: object required: - id - status - taskIdentifier - createdAt - updatedAt - isTest - env properties: id: type: string description: The unique ID of the run, prefixed with `run_` example: run_1234 status: type: string description: The status of the run enum: - PENDING_VERSION - QUEUED - EXECUTING - REATTEMPTING - FROZEN - COMPLETED - CANCELED - FAILED - CRASHED - INTERRUPTED - SYSTEM_FAILURE taskIdentifier: type: string description: The identifier of the task that was run example: my-task version: type: string example: 20240523.1 description: The version of the worker that executed the run env: type: object description: The environment of the run required: - id - name properties: id: type: string description: The unique ID of the environment example: cl1234 name: type: string description: The name of the environment example: dev user: type: string description: If this is a dev environment, the username of the user represented by this environment example: Anna idempotencyKey: type: string description: The idempotency key used to prevent creating duplicate runs, if provided example: idempotency_key_1234 isTest: type: boolean description: Whether the run is a test run or not example: false createdAt: type: string format: date-time updatedAt: type: string format: date-time startedAt: type: string format: date-time description: The time the run started finishedAt: type: string format: date-time description: The time the run finished delayedUntil: type: string format: date-time description: If the run was triggered with a delay, this will be the time the run will be enqueued to execute ttl: $ref: "#/components/schemas/TTL" expiredAt: type: string format: date-time description: If the run had a TTL and that time has passed, when the run "expired". tags: type: array description: Tags can be attached to a run to make it easy to find runs (in the dashboard or using SDK functions like `runs.list`) example: ["user_5df987al13", "org_c6b7dycmxw"] items: type: string description: A tag must be between 1 and 64 characters, a run can have up to 5 tags attached to it. costInCents: type: number example: 0.00292 description: The compute cost of the run (so far) in cents. This cost does not apply to DEV runs. baseCostInCents: type: number example: 0.0025 description: The invocation cost of the run in cents. This cost does not apply to DEV runs. durationMs: type: number example: 491 description: The duration of compute (so far) in milliseconds. This does not include waits. InvalidEnvVarsRequestResponse: type: object properties: error: type: string issues: type: array items: type: object variableErrors: type: array items: type: object SucceedResponse: type: object properties: success: type: boolean required: ["success"] ErrorResponse: type: object properties: error: type: string example: Something went wrong required: ["error"] ErrorWithDetailsResponse: type: object properties: error: type: string example: Query Error details: type: array items: type: object required: - code - message properties: code: type: string description: The error code example: custom message: type: string description: The error message example: "Invalid status values: FOOBAR" path: type: array items: type: string description: The relevant path in the request example: ["filter[status]"] required: ["error"] ListEnvironmentVariablesResponse: type: array items: "$ref": "#/components/schemas/EnvVar" EnvVarValue: type: object properties: value: type: string example: slack_123456 required: ["value"] EnvVar: type: object properties: name: type: string example: SLACK_API_KEY value: type: string example: slack_123456 required: ["name", "value"] RescheduleRunRequestBody: type: object properties: delay: oneOf: - type: string description: The duration to delay the run by. The duration should be in the format of `1d`, `6h`, `10m`, `11s`, etc. example: 1hr - type: string format: date-time description: The Date to delay the run until, e.g. `new Date()` or `"2024-06-25T15:45:26Z"` example: 2024-06-25T15:45:26Z CommonRunObject: type: object required: - id - status - taskIdentifier - createdAt - updatedAt properties: id: type: string description: The unique ID of the run, prefixed with `run_` example: run_1234 status: type: string description: The status of the run enum: - PENDING_VERSION - DELAYED - QUEUED - EXECUTING - REATTEMPTING - FROZEN - COMPLETED - CANCELED - FAILED - CRASHED - INTERRUPTED - SYSTEM_FAILURE taskIdentifier: type: string description: The identifier of the task that was run example: my-task version: type: string example: 20240523.1 description: The version of the worker that executed the run idempotencyKey: type: string description: The idempotency key used to prevent creating duplicate runs, if provided example: idempotency_key_1234 createdAt: type: string format: date-time updatedAt: type: string format: date-time isTest: type: boolean description: Whether the run is a test run or not example: false startedAt: type: string format: date-time description: The time the run started finishedAt: type: string format: date-time description: The time the run finished delayedUntil: type: string format: date-time description: If the run was triggered with a delay, this will be the time the run will be enqueued to execute ttl: $ref: "#/components/schemas/TTL" expiredAt: type: string format: date-time description: If the run had a TTL and that time has passed, when the run "expired". tags: type: array description: Tags can be attached to a run to make it easy to find runs (in the dashboard or using SDK functions like `runs.list`) example: ["user_5df987al13", "org_c6b7dycmxw"] items: type: string description: A tag must be between 1 and 64 characters, a run can have up to 5 tags attached to it. metadata: type: object description: The metadata of the run. See [Metadata](/runs/metadata) for more information. example: { "foo": "bar" } costInCents: type: number example: 0.00292 description: The compute cost of the run (so far) in cents. This cost does not apply to DEV runs. baseCostInCents: type: number example: 0.0025 description: The invocation cost of the run in cents. This cost does not apply to DEV runs. durationMs: type: number example: 491 description: The duration of compute (so far) in milliseconds. This does not include waits. depth: type: integer example: 0 description: The depth of the run in the task run hierarchy. The root run has a depth of 0. batchId: type: string description: The ID of the batch that this run belongs to example: batch_1234 triggerFunction: type: string description: The name of the function that triggered the run enum: - trigger - triggerAndWait - batchTrigger - batchTriggerAndWait RetrieveRunResponse: allOf: - $ref: "#/components/schemas/CommonRunObject" - type: object required: - attempts properties: payload: type: object description: The payload that was sent to the task. Will be omitted if the request was made with a Public API key example: { "foo": "bar" } payloadPresignedUrl: type: string description: The presigned URL to download the payload. Will only be included if the payload is too large to be included in the response. Expires in 5 minutes. example: "https://r2.cloudflarestorage.com/packets/yubjwjsfkxnylobaqvqz/dev/run_p4omhh45hgxxnq1re6ovy/payload.json?X-Amz-Expires=300&X-Amz-Date=20240625T154526Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=10b064e58a0680db5b5e077be2be3b2a%2F20240625%2Fauto%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=88604cb993ffc151b4d73f2439da431d9928488e4b3dcfa4a7c8f1819" output: type: object description: The output of the run. Will be omitted if the request was made with a Public API key example: { "foo": "bar" } outputPresignedUrl: type: string description: The presigned URL to download the output. Will only be included if the output is too large to be included in the response. Expires in 5 minutes. example: "https://r2.cloudflarestorage.com/packets/yubjwjsfkxnylobaqvqz/dev/run_p4omhh45hgxxnq1re6ovy/payload.json?X-Amz-Expires=300&X-Amz-Date=20240625T154526Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=10b064e58a0680db5b5e077be2be3b2a%2F20240625%2Fauto%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=88604cb993ffc151b4d73f2439da431d9928488e4b3dcfa4a7c8f1819" relatedRuns: type: object properties: root: $ref: "#/components/schemas/CommonRunObject" description: The root run of the run hierarchy. Will be omitted if the run is the root run parent: $ref: "#/components/schemas/CommonRunObject" description: The parent run of the run. Will be omitted if the run is the root run children: description: The immediate children of the run. Will be omitted if the run has no children type: array items: $ref: "#/components/schemas/CommonRunObject" schedule: type: object description: The schedule that triggered the run. Will be omitted if the run was not triggered by a schedule required: - id - generator properties: id: type: string description: The unique ID of the schedule, prefixed with `sched_` example: sched_1234 externalId: type: string description: The external ID of the schedule. Can be anything that is useful to you (e.g., user ID, org ID, etc.) example: user_1234 deduplicationKey: type: string description: The deduplication key used to prevent creating duplicate schedules example: dedup_key_1234 generator: type: object properties: type: type: string enum: - CRON expression: type: string description: The cron expression used to generate the schedule example: 0 0 * * * description: type: string description: The description of the generator in plain english example: Every day at midnight attempts: type: array items: type: object required: - id - status - createdAt - updatedAt properties: id: type: string description: The unique ID of the attempt, prefixed with `attempt_` example: attempt_1234 status: type: string enum: - PENDING - EXECUTING - PAUSED - COMPLETED - FAILED - CANCELED error: $ref: "#/components/schemas/SerializedError" createdAt: type: string format: date-time updatedAt: type: string format: date-time startedAt: type: string format: date-time completedAt: type: string format: date-time CreateScheduleOptions: type: object properties: task: type: string cron: type: string deduplicationKey: type: string externalId: type: string timezone: type: string example: "America/New_York" description: Defaults to "UTC". In IANA format ("America/New_York"). If set then it will trigger at the CRON frequency in that timezone and respect daylight savings time. required: - task - cron - deduplicationKey UpdateScheduleOptions: type: object properties: task: type: string cron: type: string externalId: type: string timezone: type: string example: "America/New_York" description: Defaults to "UTC". In IANA format ("America/New_York"). If set then it will trigger at the CRON frequency in that timezone and respect daylight savings time. required: - task - cron ScheduleObject: type: object properties: id: type: string example: sched_1234 description: The unique ID of the schedule, prefixed with 'sched_' task: type: string example: my-scheduled-task description: The id of the scheduled task that will be triggered by this schedule "type": type: string example: IMPERATIVE description: The type of schedule, `DECLARATIVE` or `IMPERATIVE`. Declarative schedules are declared in your code by setting the `cron` property on a `schedules.task`. Imperative schedules are created in the dashboard or by using the imperative SDK functions like `schedules.create()`. active: type: boolean example: true description: Whether the schedule is active or not deduplicationKey: type: string example: dedup_key_1234 description: The deduplication key used to prevent creating duplicate schedules externalId: type: string example: user_1234 description: The external ID of the schedule. Can be anything that is useful to you (e.g., user ID, org ID, etc.) generator: type: object properties: type: type: string enum: - CRON expression: type: string description: The cron expression used to generate the schedule example: 0 0 * * * description: type: string description: The description of the generator in plain english example: Every day at midnight timezone: type: string example: "America/New_York" description: Defaults to UTC. In IANA format, if set then it will trigger at the CRON frequency in that timezone and respect daylight savings time. nextRun: type: string format: date-time description: The next time the schedule will run example: "2024-04-01T00:00:00Z" environments: type: array items: "$ref": "#/components/schemas/ScheduleEnvironment" ListSchedulesResult: type: object properties: data: type: array items: "$ref": "#/components/schemas/ScheduleObject" pagination: type: object properties: currentPage: type: integer totalPages: type: integer count: type: integer GetTimezonesResult: type: object properties: timezones: type: array items: type: string example: [ "UTC", "Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmera", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/La_Rioja", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Buenos_Aires", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Catamarca", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Ciudad_Juarez", "America/Coral_Harbour", "America/Cordoba", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Fort_Nelson", "America/Fortaleza", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Indianapolis", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Jujuy", "America/Juneau", "America/Kentucky/Monticello", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Louisville", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Mendoza", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Santa_Isabel", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Calcutta", "Asia/Chita", "Asia/Choibalsan", "Asia/Colombo", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Katmandu", "Asia/Khandyga", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Rangoon", "Asia/Riyadh", "Asia/Saigon", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faeroe", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/Perth", "Australia/Sydney", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Johnston", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Ponape", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Truk", "Pacific/Wake", "Pacific/Wallis", ] ScheduleEnvironment: type: object properties: id: type: string type: type: string userName: type: string SerializedError: type: object required: - message properties: message: type: string example: Something went wrong name: type: string example: Error stackTrace: type: string example: "Error: Something went wrong"