Installations
List installed droplets
Every droplet your company has installed, ordered by title, with only the installation’s and droplet’s identifiers, title and logo. Use it for navigation menus and other places shown on every page: it is one small response, not paginated, where listing the catalog with filter[ownership]=installed returns each droplet’s full listing. Installations being removed are left out.
GET
/
api
/
company
/
v2026-10
/
droplet-installations
List installed droplets
curl --request GET \
--url https://api.fluid.app/api/company/v2026-10/droplet-installations \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/company/v2026-10/droplet-installations"
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', 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",
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"
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")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/company/v2026-10/droplet-installations")
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_installations": [
{
"uuid": "dri_7Hc2kWq9mNz4pLx8",
"droplet": {
"uuid": "drp_4tq8nxw2kfl9mrv3bpz6cyh1jds7age5",
"title": "Order Sync",
"logo_url": "https://ik.imagekit.io/fluid/droplets/order-sync/logo.png"
}
},
{
"uuid": "dri_2Rk8vYb5cTq1wMe6",
"droplet": {
"uuid": "drp_9xk2mt7pq4rz1bwc8hd5nfy3jvs6ale0",
"title": "Wholesale Pricing",
"logo_url": null
}
}
],
"status": 200,
"meta": {
"request_id": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-20T15:32:08Z"
}
}{
"message": "Invalid credentials."
}{
"message": "Not authorized."
}Authorizations
A company admin credential for your company. Droplet installation tokens are refused.
Response
The installed droplets.
⌘I
List installed droplets
curl --request GET \
--url https://api.fluid.app/api/company/v2026-10/droplet-installations \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/company/v2026-10/droplet-installations"
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', 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",
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"
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")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/company/v2026-10/droplet-installations")
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_installations": [
{
"uuid": "dri_7Hc2kWq9mNz4pLx8",
"droplet": {
"uuid": "drp_4tq8nxw2kfl9mrv3bpz6cyh1jds7age5",
"title": "Order Sync",
"logo_url": "https://ik.imagekit.io/fluid/droplets/order-sync/logo.png"
}
},
{
"uuid": "dri_2Rk8vYb5cTq1wMe6",
"droplet": {
"uuid": "drp_9xk2mt7pq4rz1bwc8hd5nfy3jvs6ale0",
"title": "Wholesale Pricing",
"logo_url": null
}
}
],
"status": 200,
"meta": {
"request_id": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-20T15:32:08Z"
}
}{
"message": "Invalid credentials."
}{
"message": "Not authorized."
}