Documentation

​
​

Development

User Acquisition

Monetization

Industry

Triggers

Triggers Admin API

Scheduler Admin API

Open Unity Dashboard

Triggers

LiveOps
​
​
Get started
  • Overview
  • Get started
  • Set up triggers example workflow
  • Authentication
Set up events
  • Understand and manage events
  • Schedule events
    • Schedule events with the Unity Dashboard
    • Schedule events with the CLI
    • Schedule events with the REST API
    • Manage your schedules
Define triggers
  • Define triggers
Configure actions
  • Use Cloud Code
  • Use webhooks
Manage and monitor
  • Use the dead letter queue (DLQ)
  • Limits
  • Failure handling
Examples and reference
  • Use case samples
  1. Triggers
  2. Schedule events

HTTP APIs

Create and manage schedule configurations that emit events at set or recurring moments using the REST API.
Read time 4 minutes
Last updated 12 days ago

You can use the raw HTTP APIs to manage schedule configurations. Deploying a schedule configuration creates a schedule that emits events at a set or recurring moment in time.
Important
You can't change a schedule after you create it. To change a schedule, delete it and create a new one.

Using the API

The Scheduler Admin API documentation contains a detailed description of admin operations, such as creating, reading, and deleting schedules.
The documents include information on authentication, endpoints, and request and response formats, along with examples. You can download them in OpenAPI format and use them to set up your own automation.
To use the API, authenticate using a Service Account.

Authorization header

To authenticate the requests, use Basic Authentication. Create a service account and base64 encode the
<KEY_ID>:<SECRET_KEY>
and use it as the value of the
Authorization
header.
--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>' \

Deploy schedules

You can deploy a recurring schedule configuration to the remote environment by sending the following request:
curl 'https://services.api.unity.com/scheduler/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/configs' \--header 'Content-Type: application/json' \--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>' \--data '{ "name": "Example Recurring every hour", "eventName": "example-event", "type": "recurring", "schedule": "0 * * * *", "payloadVersion": 1, "payload": "{}"}'
To deploy an interval schedule instead, set
type
to
interval
and
schedule
to a duration, for example:
curl 'https://services.api.unity.com/scheduler/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/configs' \--header 'Content-Type: application/json' \--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>' \--data '{ "name": "Example Interval every 2 weeks", "eventName": "example-event", "type": "interval", "schedule": "2w", "payloadVersion": 1, "payload": "{}"}'
A successful response contains the schedule ID. For example:
{ "id": "f58a376c-2d4d-50a9-a231-61477fdaf5da"}
You can use this ID to retrieve the schedule configuration or to delete it.
Once you have deployed the schedule configuration, it's automatically triggered at the specified time, and sends an event to the Triggers service.

Retrieve schedules

You can inspect the schedule you deployed by sending the following request:
curl 'https://services.api.unity.com/scheduler/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/configs/<CONFIG_ID>' \--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>'
The response could look as follows:
{ "id": "string", "name": "Example Recurring every hour", "eventName": "example-event", "type": "recurring", "schedule": "0 * * * *", "payloadVersion": 1, "payload": "{}"}
The response contains the following fields:
  • id
    : The schedule configuration ID.
  • name
    : The schedule configuration name.
  • eventName
    : The name of the event that is emitted when the schedule is triggered.
  • type
    : The type of the schedule configuration. Can be
    recurring
    ,
    interval
    , or
    one-time
    .
  • schedule
    : The schedule configuration, which depends on the
    type
    field. For
    recurring
    , a cron expression in UTC. For
    one-time
    , an RFC3339 timestamp. For
    interval
    , a duration in
    <number><unit>
    form, where the unit is
    m
    (minutes),
    h
    (hours),
    d
    (days), or
    w
    (weeks), such as
    2w
    or
    6h
    . Interval fires align to UTC boundaries measured from a fixed epoch (January 1, 1970 at 12:00 AM UTC).
  • payloadVersion
    : The version of the payload.
  • payload
    : The
    JSON
    object that is used as the event payload to forward parameters to Cloud Code script or module.
To preview all the schedules you have deployed, send the following request:
curl 'https://services.api.unity.com/scheduler/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/configs' \--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>'
The response could look as follows:
{ "configs": [ { "id": "a0fa56fd-9763-5590-9452-769be3e6c5bb", "name": "Example One Time 2", "eventName": "example-event", "type": "one-time", "schedule": "2024-01-14T07:20:50Z", "payloadVersion": 1, "payload": "{}" }, { "id": "f58a376c-2d4d-50a9-a231-61477fdaf5da", "name": "Example Recurring every hour", "eventName": "example-event", "type": "recurring", "schedule": "0 * * * *", "payloadVersion": 1, "payload": "{}" }, { "id": "fb3e6636-1a99-5a82-97b4-74b5f6678bb2", "name": "Example One Time", "eventName": "example-event", "type": "one-time", "schedule": "2024-01-12T07:20:50Z", "payloadVersion": 1, "payload": "{}" } ], "after": ""}
You can also use pagination by setting query parameters. For example, to get the first two configurations, send the following request:
curl 'https://services.api.unity.com/scheduler/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/configs?limit=2' \--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>'
The response would then be:
{ "configs": [ { "id": "f58a376c-2d4d-50a9-a231-61477fdaf5da", "name": "Example Recurring every hour", "eventName": "example-event", "type": "recurring", "schedule": "0 * * * *", "payloadVersion": 1, "payload": "{}" }, { "id": "a0fa56fd-9763-5590-9452-769be3e6c5bb", "name": "Example One Time 2", "eventName": "example-event", "type": "one-time", "schedule": "2024-01-14T07:20:50Z", "payloadVersion": 1, "payload": "{}" } ], "after": "<TOKEN>"}
Using the
after
token, you can get the next page of results. For example:
curl 'https://services.api.unity.com/scheduler/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/configs?limit=2&after=<TOKEN>' \--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>'
The last schedule is returned:
{ "configs": [ { "id": "fb3e6636-1a99-5a82-97b4-74b5f6678bb2", "name": "Example One Time", "eventName": "example-event", "type": "one-time", "schedule": "2024-01-12T07:20:50Z", "payloadVersion": 1, "payload": "{}" } ], "after": ""}

Delete schedules

You can delete the schedule configuration by sending the following request:
curl --request DELETE 'https://services.api.unity.com/scheduler/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/configs/<CONFIG_ID>' \--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>'
An empty response indicates a successful deletion.

Copyright © 2026 Unity Technologies
LegalPrivacy PolicyCookiesDocumentation Terms of UseDo Not Sell or Share My Personal InformationYour Privacy Choices (Cookie Settings)

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S and elsewhere (more info here). Other names or brands are trademarks of their respective owners.

Some pages are machine-translated for convenience, and may contain inaccuracies. In the event of conflicting information, the English version is authoritative.

  • On this page
    • Using the API

      • Authorization header

      • Deploy schedules

      • Retrieve schedules

      • Delete schedules


Report a problem with this page