---
title: Déclencher un déploiement de programme
description: Déclencher manuellement une planification pour créer et démarrer immédiatement un déploiement.
breadcrumbs: Documentation > API > Déclencher un déploiement de programme
---

> For the complete documentation index, see [llms.txt](https://dnd37xeb23o8n.cloudfront.net/jen.gilbert/astro-base/llms.txt).

# Déclencher un déploiement de programme

## v2 (latest)

{% alert level="warning" %}
This endpoint is in Preview and may introduce breaking changes.
If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help.md).
{% /alert %}

| Datadog site      | API endpoint                                                                 |
| ----------------- | ---------------------------------------------------------------------------- |
| app.datadoghq.com | POST https://api.datadoghq.com/api/unstable/fleet/schedules/{id}/trigger     |
| us3.datadoghq.com | POST https://api.us3.datadoghq.com/api/unstable/fleet/schedules/{id}/trigger |
| us5.datadoghq.com | POST https://api.us5.datadoghq.com/api/unstable/fleet/schedules/{id}/trigger |
| app.datadoghq.eu  | POST https://api.datadoghq.eu/api/unstable/fleet/schedules/{id}/trigger      |
| ap1.datadoghq.com | POST https://api.ap1.datadoghq.com/api/unstable/fleet/schedules/{id}/trigger |
| ap2.datadoghq.com | POST https://api.ap2.datadoghq.com/api/unstable/fleet/schedules/{id}/trigger |
| uk1.datadoghq.com | POST https://api.uk1.datadoghq.com/api/unstable/fleet/schedules/{id}/trigger |
| app.ddog-gov.com  | POST https://api.ddog-gov.com/api/unstable/fleet/schedules/{id}/trigger      |
| us2.ddog-gov.com  | POST https://api.us2.ddog-gov.com/api/unstable/fleet/schedules/{id}/trigger  |

### Overview

Déclencher manuellement une planification pour créer et démarrer immédiatement un déploiement.

Cet endpoint vous permet de lancer manuellement un déploiement à l'aide de la configuration de la planification, sans attendre la prochaine fenêtre de maintenance planifiée. Cette fonctionnalité est utile pour :

- Tester une planification avant qu'elle ne s'exécute automatiquement
- Effectuer une mise à jour d'urgence en dehors de la fenêtre de maintenance habituelle
- Créer un déploiement ad hoc avec les mêmes paramètres qu'une planification

Le déploiement est créé immédiatement avec :

- La même requête de filtre que la planification
- La version du package déterminée par la stratégie de version de la planification
- Tous les hosts correspondants comme cibles

Le déploiement déclenché manuellement est indépendant de la planification et n'affecte pas le modèle de récurrence normal de la planification.

This endpoint requires the `agent_upgrade_write` permission.

### Arguments

#### Path Parameters

| Field           | Type   | Description                                       |
| --------------- | ------ | ------------------------------------------------- |
| id [*required*] | string | The unique identifier of the schedule to trigger. |

### Response

{% tabs %}
{% tab label="201" %}
CREATED - Deployment successfully created and started.

{% tabs %}
{% tab label="Model" %}
Response containing a single deployment.

| Parent field      | Field                   | Type     | Description                                                                                                                                                                                                                                                                                                                                                                                                        |
| ----------------- | ----------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|                   | data                    | object   | A deployment that defines automated configuration changes for a fleet of hosts.                                                                                                                                                                                                                                                                                                                                    |
| data              | attributes [*required*] | object   | Attributes of a deployment in the response.                                                                                                                                                                                                                                                                                                                                                                        |
| attributes        | config_operations       | [object] | Ordered list of configuration file operations to perform on the target hosts.                                                                                                                                                                                                                                                                                                                                      |
| config_operations | file_op [*required*]    | enum     | Type of file operation to perform on the target configuration file. - `merge-patch`: Merges the provided patch data with the existing configuration file. Creates the file if it doesn't exist. - `delete`: Removes the specified configuration file from the target hosts. Allowed enum values: `merge-patch`, `delete`.                                                                                          |
| config_operations | file_path [*required*]  | string   | Absolute path to the target configuration file on the host.                                                                                                                                                                                                                                                                                                                                                        |
| config_operations | patch                   | object   | Patch data in JSON format to apply to the configuration file. When using `merge-patch`, this object is merged with the existing configuration, allowing you to add, update, or override specific fields without replacing the entire file. The structure must match the target configuration file format (for example, YAML structure for Datadog Agent config). Not applicable when using the `delete` operation. |
| attributes        | estimated_end_time_unix | int64    | Estimated completion time of the deployment as a Unix timestamp (seconds since epoch).                                                                                                                                                                                                                                                                                                                             |
| attributes        | filter_query            | string   | Query used to filter and select target hosts for the deployment. Uses the Datadog query syntax.                                                                                                                                                                                                                                                                                                                    |
| attributes        | high_level_status       | string   | Current high-level status of the deployment (for example, "pending", "running", "completed", "failed").                                                                                                                                                                                                                                                                                                            |
| attributes        | hosts                   | [object] | Paginated list of hosts in this deployment with their individual statuses. Only included when fetching a single deployment by ID. Use the `limit` and `page` query parameters to navigate through pages. Pagination metadata is included in the response `meta.hosts` field.                                                                                                                                       |
| hosts             | error                   | string   | Error message if the deployment failed on this host.                                                                                                                                                                                                                                                                                                                                                               |
| hosts             | hostname                | string   | The hostname of the agent.                                                                                                                                                                                                                                                                                                                                                                                         |
| hosts             | status                  | string   | Current deployment status for this specific host.                                                                                                                                                                                                                                                                                                                                                                  |
| hosts             | versions                | [object] | List of packages and their versions currently installed on this host.                                                                                                                                                                                                                                                                                                                                              |
| versions          | current_version         | string   | The current version of the package on the host.                                                                                                                                                                                                                                                                                                                                                                    |
| versions          | initial_version         | string   | The initial version of the package on the host before the deployment started.                                                                                                                                                                                                                                                                                                                                      |
| versions          | package_name            | string   | The name of the package.                                                                                                                                                                                                                                                                                                                                                                                           |
| versions          | target_version          | string   | The target version that the deployment is attempting to install.                                                                                                                                                                                                                                                                                                                                                   |
| attributes        | packages                | [object] | List of packages to deploy to target hosts. Present only for package upgrade deployments.                                                                                                                                                                                                                                                                                                                          |
| packages          | name [*required*]       | string   | The name of the package to deploy.                                                                                                                                                                                                                                                                                                                                                                                 |
| packages          | version [*required*]    | string   | The target version of the package to deploy.                                                                                                                                                                                                                                                                                                                                                                       |
| attributes        | total_hosts             | int64    | Total number of hosts targeted by this deployment.                                                                                                                                                                                                                                                                                                                                                                 |
| data              | id [*required*]         | string   | Unique identifier for the deployment.                                                                                                                                                                                                                                                                                                                                                                              |
| data              | type [*required*]       | enum     | The type of deployment resource. Allowed enum values: `deployment`. Default: `deployment`.                                                                                                                                                                                                                                                                                                                         |
|                   | meta                    | object   | Metadata for a single deployment response, including pagination information for hosts.                                                                                                                                                                                                                                                                                                                             |
| meta              | hosts                   | object   | Pagination details for the list of hosts in a deployment.                                                                                                                                                                                                                                                                                                                                                          |
| hosts             | current_page            | int64    | Current page index (zero-based).                                                                                                                                                                                                                                                                                                                                                                                   |
| hosts             | page_size               | int64    | Number of hosts returned per page.                                                                                                                                                                                                                                                                                                                                                                                 |
| hosts             | total_hosts             | int64    | Total number of hosts in this deployment.                                                                                                                                                                                                                                                                                                                                                                          |
| hosts             | total_pages             | int64    | Total number of pages available.                                                                                                                                                                                                                                                                                                                                                                                   |
{% /tab %}

{% tab label="Example" %}
```json
{
  "data": {
    "attributes": {
      "config_operations": [
        {
          "file_op": "merge-patch",
          "file_path": "/datadog.yaml",
          "patch": {
            "apm_config": {
              "enabled": true
            },
            "log_level": "debug",
            "logs_enabled": true
          }
        }
      ],
      "estimated_end_time_unix": 1699999999,
      "filter_query": "env:prod AND service:web",
      "high_level_status": "pending",
      "hosts": [
        {
          "error": "",
          "hostname": "web-server-01.example.com",
          "status": "succeeded",
          "versions": [
            {
              "current_version": "7.51.0",
              "initial_version": "7.51.0",
              "package_name": "datadog-agent",
              "target_version": "7.52.0"
            }
          ]
        }
      ],
      "packages": [
        {
          "name": "datadog-agent",
          "version": "7.52.0"
        }
      ],
      "total_hosts": 42
    },
    "id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
    "type": "deployment"
  },
  "meta": {
    "hosts": {
      "current_page": 0,
      "page_size": 50,
      "total_hosts": 150,
      "total_pages": 3
    }
  }
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="400" %}
Bad Request

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="401" %}
Unauthorized

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="403" %}
Forbidden

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="404" %}
Not Found

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="429" %}
Too many requests

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}
{% /tabs %}

### Code Example

{% tabs %}
{% tab label="Curl" %}
```bash
# Path parameters
export id="abc-def-ghi-123"

# Set your Datadog site and credentials
export DD_SITE="datadoghq.com" # Or us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ap1.datadoghq.com, ap2.datadoghq.com, uk1.datadoghq.com, ddog-gov.com, us2.ddog-gov.com
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

curl -X POST "https://api.${DD_SITE}/api/unstable/fleet/schedules/${id}/trigger" \
-H "Accept: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}"
```
{% /tab %}

{% tab label="Go" %}
```go
// Trigger a schedule deployment returns "CREATED - Deployment successfully created and started." response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)

func main() {
	ctx := datadog.NewDefaultContext(context.Background())
	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
	configuration := datadog.NewConfiguration()
	configuration.SetUnstableOperationEnabled("v2.TriggerFleetSchedule", true)
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewFleetAutomationApi(apiClient)
	resp, r, err := api.TriggerFleetSchedule(ctx, "id")

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `FleetAutomationApi.TriggerFleetSchedule`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `FleetAutomationApi.TriggerFleetSchedule`:\n%s\n", responseContent)
}
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=go) and then save the example to `main.go` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"
```
{% /tab %}

{% tab label="Java" %}
```java
// Trigger a schedule deployment returns "CREATED - Deployment successfully created and started."
// response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.FleetAutomationApi;
import com.datadog.api.client.v2.model.FleetDeploymentResponse;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
    defaultClient.setUnstableOperationEnabled("v2.triggerFleetSchedule", true);
    FleetAutomationApi apiInstance = new FleetAutomationApi(defaultClient);

    try {
      FleetDeploymentResponse result = apiInstance.triggerFleetSchedule("abc-def-ghi-123");
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling FleetAutomationApi#triggerFleetSchedule");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=java) and then save the example to `Example.java` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"
```
{% /tab %}

{% tab label="Python" %}
```python
"""
Trigger a schedule deployment returns "CREATED - Deployment successfully created and started." response
"""

from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.fleet_automation_api import FleetAutomationApi

configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
configuration.unstable_operations["trigger_fleet_schedule"] = True
with ApiClient(configuration) as api_client:
    api_instance = FleetAutomationApi(api_client)
    response = api_instance.trigger_fleet_schedule(
        id="id",
    )

    print(response)
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=python) and then save the example to `example.py` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"
```
{% /tab %}

{% tab label="Ruby" %}
```ruby
# Trigger a schedule deployment returns "CREATED - Deployment successfully created and started." response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.access_token = ENV["DD_BEARER_TOKEN"]
  config.unstable_operations["v2.trigger_fleet_schedule".to_sym] = true
end
api_instance = DatadogAPIClient::V2::FleetAutomationAPI.new
p api_instance.trigger_fleet_schedule("id")
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=ruby) and then save the example to `example.rb` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"
```
{% /tab %}

{% tab label="Rust" %}
```rust
// Trigger a schedule deployment returns "CREATED - Deployment successfully
// created and started." response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_fleet_automation::FleetAutomationAPI;

#[tokio::main]
async fn main() {
    let mut configuration = datadog::Configuration::new();
    configuration.set_unstable_operation_enabled("v2.trigger_fleet_schedule", true);
    let api = FleetAutomationAPI::with_config(configuration);
    let resp = api.trigger_fleet_schedule("id".to_string()).await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=rust) and then save the example to `src/main.rs` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
```
{% /tab %}

{% tab label="TypeScript" %}
```typescript
/**
 * Trigger a schedule deployment returns "CREATED - Deployment successfully created and started." response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration({
  authMethods: {
    AuthZ: {
      accessToken: process.env.DD_BEARER_TOKEN as string,
    },
  },
});
configuration.unstableOperations["v2.triggerFleetSchedule"] = true;
const apiInstance = new v2.FleetAutomationApi(configuration);

const params: v2.FleetAutomationApiTriggerFleetScheduleRequest = {
  id: "id",
};

apiInstance
  .triggerFleetSchedule(params)
  .then((data: v2.FleetDeploymentResponse) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=typescript) and then save the example to `example.ts` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"
```
{% /tab %}
{% /tabs %}
