Droplets
Read a droplet installation's status
One installation’s Mist deployments, install status and lifecycle webhook deliveries in one read, addressed by the installation’s own uuid so an uninstalled installation answers its own data. Each section is read on its own. Needs the developer.view and droplets.view permissions.
GET
/
api
/
company
/
v2026-10
/
droplet-installations
/
{uuid}
/
status
Read a droplet installation's status
curl --request GET \
--url https://api.fluid.app/api/company/v2026-10/droplet-installations/{uuid}/status \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/company/v2026-10/droplet-installations/{uuid}/status"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/company/v2026-10/droplet-installations/{uuid}/status', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/company/v2026-10/droplet-installations/{uuid}/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/company/v2026-10/droplet-installations/{uuid}/status"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fluid.app/api/company/v2026-10/droplet-installations/{uuid}/status")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/company/v2026-10/droplet-installations/{uuid}/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"droplet_status": {
"generated_at": "2026-10-18T15:32:08Z",
"installation": {
"uuid": "dri_7hq2mxk4bnv8rlp3ctw6yzd1fgs9aje5",
"status": "active",
"droplet": {
"uuid": "drp_4tq8nxw2kfl9mrv3bpz6cyh1jds7age5",
"name": "Taxify"
},
"created_at": "2026-10-01T09:00:00Z",
"updated_at": "2026-10-01T09:00:00Z"
},
"history": null,
"sections": {
"deployment": {
"available": true,
"error": null,
"data": {
"hosted": false,
"deployments": []
}
},
"install_status": {
"available": true,
"error": null,
"data": {
"status": "active",
"delivery_state": "delivered"
}
},
"lifecycle": {
"available": true,
"error": null,
"data": {
"deliveries": []
}
},
"reconcile": {
"available": false,
"error": null,
"data": null
},
"connect": {
"available": false,
"error": null,
"data": null
}
}
},
"status": 200,
"meta": {
"request_id": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-18T15:32:08Z"
}
}{
"message": "Invalid credentials."
}{
"message": "Not authorized."
}{
"error": {
"message": "Droplet not found",
"details": {}
},
"status": 404,
"meta": {
"request_id": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-18T15:32:08Z"
}
}Authorizations
A company admin credential for your company. Droplet installation tokens are refused.
Path Parameters
The installation's uuid, from uuid on an installation.
Response
The installation's status.
⌘I
Read a droplet installation's status
curl --request GET \
--url https://api.fluid.app/api/company/v2026-10/droplet-installations/{uuid}/status \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/company/v2026-10/droplet-installations/{uuid}/status"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/company/v2026-10/droplet-installations/{uuid}/status', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/company/v2026-10/droplet-installations/{uuid}/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/company/v2026-10/droplet-installations/{uuid}/status"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fluid.app/api/company/v2026-10/droplet-installations/{uuid}/status")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/company/v2026-10/droplet-installations/{uuid}/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"droplet_status": {
"generated_at": "2026-10-18T15:32:08Z",
"installation": {
"uuid": "dri_7hq2mxk4bnv8rlp3ctw6yzd1fgs9aje5",
"status": "active",
"droplet": {
"uuid": "drp_4tq8nxw2kfl9mrv3bpz6cyh1jds7age5",
"name": "Taxify"
},
"created_at": "2026-10-01T09:00:00Z",
"updated_at": "2026-10-01T09:00:00Z"
},
"history": null,
"sections": {
"deployment": {
"available": true,
"error": null,
"data": {
"hosted": false,
"deployments": []
}
},
"install_status": {
"available": true,
"error": null,
"data": {
"status": "active",
"delivery_state": "delivered"
}
},
"lifecycle": {
"available": true,
"error": null,
"data": {
"deliveries": []
}
},
"reconcile": {
"available": false,
"error": null,
"data": null
},
"connect": {
"available": false,
"error": null,
"data": null
}
}
},
"status": 200,
"meta": {
"request_id": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-18T15:32:08Z"
}
}{
"message": "Invalid credentials."
}{
"message": "Not authorized."
}{
"error": {
"message": "Droplet not found",
"details": {}
},
"status": 404,
"meta": {
"request_id": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-18T15:32:08Z"
}
}