Legacy (v0)
List legacy themes
Lists the company’s public legacy MySite themes (the ones shown in the member theme picker), newest first, each with its template. Themes created with public set to false are not listed. Filter by name with search_query. Page-number paginated with page and per_page (default 25); totals are in meta.pagination. Requires a company admin Bearer token; admin users, company API tokens, and partner tokens also need the my_site_themes view permission.
GET
/
api
/
legacy_themes
List legacy themes
curl --request GET \
--url https://api.fluid.app/api/legacy_themes \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/legacy_themes"
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/legacy_themes', 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/legacy_themes",
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/legacy_themes"
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/legacy_themes")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/legacy_themes")
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{
"legacy_themes": [
{
"id": 3187,
"name": "Scranton Classic",
"description": "Clean white layout with the Dunder Mifflin logo and a featured paper product.",
"image_url": "https://cdn.fluid.app/themes/dunder-mifflin/scranton-classic.png",
"public": true,
"company_id": 1405,
"template": {
"id": 55210,
"name": "Scranton Classic",
"content": "<section class=\"hero\"><h1>{{ member.full_name }}</h1><p>Your Dunder Mifflin paper rep</p></section>",
"stylesheet": ".hero { background: #ffffff; color: #1d3c6e; }",
"head": "<link rel=\"preconnect\" href=\"https://cdn.fluid.app\">",
"status": "active"
}
},
{
"id": 3174,
"name": "Schrute Farms",
"description": null,
"image_url": null,
"public": true,
"company_id": 1405,
"template": null
}
],
"meta": {
"pagination": {
"current_page": 1,
"per_page": 25,
"total_count": 2,
"total_pages": 1
},
"request_id": "5e0b3a79-c1d4-4f28-9a67-2d8e4b1f6c03",
"timestamp": "2026-09-22T10:15:44Z"
}
}{
"message": "<string>"
}Query Parameters
⌘I
List legacy themes
curl --request GET \
--url https://api.fluid.app/api/legacy_themes \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/legacy_themes"
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/legacy_themes', 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/legacy_themes",
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/legacy_themes"
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/legacy_themes")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/legacy_themes")
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{
"legacy_themes": [
{
"id": 3187,
"name": "Scranton Classic",
"description": "Clean white layout with the Dunder Mifflin logo and a featured paper product.",
"image_url": "https://cdn.fluid.app/themes/dunder-mifflin/scranton-classic.png",
"public": true,
"company_id": 1405,
"template": {
"id": 55210,
"name": "Scranton Classic",
"content": "<section class=\"hero\"><h1>{{ member.full_name }}</h1><p>Your Dunder Mifflin paper rep</p></section>",
"stylesheet": ".hero { background: #ffffff; color: #1d3c6e; }",
"head": "<link rel=\"preconnect\" href=\"https://cdn.fluid.app\">",
"status": "active"
}
},
{
"id": 3174,
"name": "Schrute Farms",
"description": null,
"image_url": null,
"public": true,
"company_id": 1405,
"template": null
}
],
"meta": {
"pagination": {
"current_page": 1,
"per_page": 25,
"total_count": 2,
"total_pages": 1
},
"request_id": "5e0b3a79-c1d4-4f28-9a67-2d8e4b1f6c03",
"timestamp": "2026-09-22T10:15:44Z"
}
}{
"message": "<string>"
}