---
title: "Create scheduled command"
method: POST
path: "/instances/{instance}/scheduled-commands"
tags: ["Scheduled Commands"]
---

# Create scheduled command

`POST /instances/{instance}/scheduled-commands`

## Request

- Base URL: `https://cloud.laravel.com/api`
- URL: `https://cloud.laravel.com/api/instances/{instance}/scheduled-commands`
- Auth: HTTP bearer

Schedule a new command to run on an instance.

## Path parameters

- `instance` string, required

## Request body

- CreateScheduledCommandRequest
  - `name` string, nullable: A friendly name for the scheduled command.
  - `command` string, required: The command to run. Each command can only be scheduled once per instance.
  - `schedule` string, required: A five-field cron expression, evaluated in UTC. The @yearly, @annually, @monthly, @weekly, @daily, @midnight, and @hourly descriptors are also accepted.

## Response `201`

`ScheduledCommandResource`

- object
  - `data` ScheduledCommandResource, required
    - `id` string, required
    - `type` 'scheduled_commands', required
    - `attributes` object
      - `name` string, nullable, required
      - `command` string, required
      - `schedule` string, required: The cron expression the command runs on, evaluated in UTC.
      - `created_at` string, date-time, nullable, required
    - `relationships` object
      - `instance` object
        - `data` InstanceResourceIdentifier, required
          - `type` 'instances', required
          - `id` string, required
  - `included` InstanceResource[]
    - `id` string, required
    - `type` 'instances', required
    - `attributes` object
      - `name` string, required
      - `type` 'app' | 'service' | 'queue' | 'managed_queue', required
      - `size` 'flex-512mb' | 'flex-1gb' | 'flex-2gb' | 'flex.c-1vcpu-256mb' | 'flex.g-1vcpu-512mb' | 'flex.m-1vcpu-1gb' | 'flex.c-2vcpu-512mb' | 'flex.g-2vcpu-1gb' | 'flex.m-2vcpu-2gb' | 'flex.c-4vcpu-1gb' | 'flex.g-4vcpu-2gb' | 'flex.m-4vcpu-4gb' | 'flex.c-8vcpu-2gb' | 'flex.g-8vcpu-4gb' | 'flex.m-8vcpu-8gb' | 'pro.c-1vcpu-1gb' | 'pro.g-1vcpu-2gb' | 'pro.m-1vcpu-4gb' | 'pro.c-2vcpu-2gb' | 'pro.g-2vcpu-4gb' | 'pro.m-2vcpu-8gb' | 'pro.c-4vcpu-4gb' | 'pro.g-4vcpu-8gb' | 'pro.m-4vcpu-16gb' | 'pro.c-8vcpu-8gb' | 'pro.g-8vcpu-16gb' | 'pro.m-8vcpu-32gb' | 'dedicated.c-0.25vcpu-512mb' | 'dedicated.c-0.5vcpu-1gb' | 'dedicated.c-1vcpu-2gb' | 'dedicated.g-1vcpu-4gb' | 'dedicated.m-1vcpu-8gb' | 'dedicated.c-2vcpu-4gb' | 'dedicated.g-2vcpu-8gb' | 'dedicated.m-2vcpu-16gb' | 'dedicated.c-4vcpu-8gb' | 'dedicated.g-4vcpu-16gb' | 'dedicated.m-4vcpu-32gb' | 'dedicated.c-8vcpu-16gb' | 'dedicated.g-8vcpu-32gb' | 'dedicated.m-8vcpu-64gb' | 'mq-pro-256mb' | 'mq-pro-512mb' | 'mq-pro-1gb' | 'mq-pro-2gb' | 'mq-pro-4gb' | 'mq-pro-8gb' | 'mq-dedicated-256mb' | 'mq-dedicated-512mb' | 'mq-dedicated-1gb' | 'mq-dedicated-2gb' | 'mq-dedicated-4gb' | 'mq-dedicated-8gb' | 'mq-dedicated-16gb' | 'mq.flex.256mb' | 'mq.flex.512mb' | 'mq.flex.1gb' | 'mq.flex.2gb' | 'mq.pro.256mb' | 'mq.pro.512mb' | 'mq.pro.1gb' | 'mq.pro.2gb' | 'mq.pro.4gb' | 'mq.pro.8gb' | 'mq.dedicated.flex.256mb' | 'mq.dedicated.flex.512mb' | 'mq.dedicated.flex.1gb' | 'mq.dedicated.flex.2gb' | 'mq.dedicated.pro.256mb' | 'mq.dedicated.pro.512mb' | 'mq.dedicated.pro.1gb' | 'mq.dedicated.pro.2gb' | 'mq.dedicated.pro.4gb' | 'mq.dedicated.pro.8gb' | 'mq.dedicated.pro.16gb', required
      - `scaling_type` 'none' | 'custom' | 'auto', required
      - `min_replicas` integer, required
      - `max_replicas` integer, required
      - `queue_status` 'creating' | 'updating' | 'available' | 'deleting' | 'deleted' | 'unknown', required
      - `paused` boolean, nullable, required: Whether the managed queue is currently paused. Null for non-queue instances.
      - `retire_at` string, nullable, required: When the instance is scheduled to be retired because its size is being discontinued.
      - `retired_at` string, nullable, required: When the instance was retired because its size is no longer supported. Retired instances stop processing jobs until you upgrade.
      - `is_default` boolean, nullable, required: Whether this is the environment's default managed queue. Null for non-queue instances.
      - `visibility_timeout` integer, nullable, required: How long, in seconds (0–43200), a received job stays hidden from other workers before it becomes available again. Null for non-queue instances.
      - `polling_interval` integer, nullable, required: How often, in seconds (1–60), the queue is polled for new jobs. Null for non-queue instances.
      - `shutdown_timeout` integer, nullable, required
      - `uses_scheduler` boolean, required
      - `sleep_with_app` boolean, nullable, required
      - `hibernation_timeout` integer, nullable, required: Minutes of inactivity before the app hibernates. Null when hibernation is off, and for non-app instances.
      - `uses_octane` boolean, nullable, required: Whether the app is served by Laravel Octane. Null for non-app instances.
      - `uses_inertia_ssr` boolean, nullable, required: Whether the app runs an Inertia SSR server. Null for non-app instances.
      - `probes` object, nullable: Custom health checks for the app's web process, keyed by `startup`, `readiness`, and `liveness`. Unset checks and fields use the platform defaults. A path selects HTTP and a port alone selects TCP. Timing overrides without a path or port keep the default handler. Null when no custom checks are set, and for non-app instances.
        - `startup` object
          - `path` string
          - `port` integer
          - `delay` integer
          - `interval` integer
          - `timeout` integer
          - `tries` integer
        - `readiness` object
          - `path` string
          - `port` integer
          - `delay` integer
          - `interval` integer
          - `timeout` integer
          - `tries` integer
        - `liveness` object
          - `path` string
          - `port` integer
          - `delay` integer
          - `interval` integer
          - `timeout` integer
          - `tries` integer
      - `scaling_cpu_threshold_percentage` integer, nullable, required
      - `scaling_memory_threshold_percentage` integer, nullable, required
      - `created_at` string, date-time, nullable, required
    - `relationships` object
      - `environment` object
        - `data` EnvironmentResourceIdentifier, required
          - `type` 'environments', required
          - `id` string, required
      - `backgroundProcesses` object
        - `data` BackgroundProcessResourceIdentifier[], required
          - `type` 'background_processes', required
          - `id` string, required
      - `scheduledCommands` object
        - `data` ScheduledCommandResourceIdentifier[], required
          - `type` 'scheduled_commands', required
          - `id` string, required

## Other responses

- `403`: Authorization error
- `404`: Not found
- `422`: Validation error

---

[API](https://skmtc.dev/laravel/apis/laravel-cloud.md) - [All operations](https://skmtc.dev/laravel/apis/laravel-cloud/llms.txt) - [OpenAPI document](https://skmtc.dev/laravel/apis/laravel-cloud/revisions/af603f54ff33?raw)
