Get a theme
curl --request GET \
--url https://app.loops.so/api/v1/themes/{themeId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.loops.so/api/v1/themes/{themeId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.loops.so/api/v1/themes/{themeId}', 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://app.loops.so/api/v1/themes/{themeId}",
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://app.loops.so/api/v1/themes/{themeId}"
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://app.loops.so/api/v1/themes/{themeId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.loops.so/api/v1/themes/{themeId}")
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{
"id": "<string>",
"name": "<string>",
"styles": {
"backgroundColor": "<string>",
"backgroundXPadding": 123,
"backgroundYPadding": 123,
"bodyColor": "<string>",
"bodyXPadding": 123,
"bodyYPadding": 123,
"bodyFontFamily": "<string>",
"bodyFontCategory": "<string>",
"borderColor": "<string>",
"borderWidth": 123,
"borderRadius": 123,
"buttonBodyColor": "<string>",
"buttonBodyXPadding": 123,
"buttonBodyYPadding": 123,
"buttonBorderColor": "<string>",
"buttonBorderWidth": 123,
"buttonBorderRadius": 123,
"buttonTextColor": "<string>",
"buttonTextFormat": 123,
"buttonTextFontSize": 123,
"dividerColor": "<string>",
"dividerBorderWidth": 123,
"textBaseColor": "<string>",
"textBaseFontSize": 123,
"textBaseLineHeight": 123,
"textBaseLetterSpacing": 123,
"textLinkColor": "<string>",
"heading1Color": "<string>",
"heading1FontSize": 123,
"heading1LineHeight": 123,
"heading1LetterSpacing": 123,
"heading2Color": "<string>",
"heading2FontSize": 123,
"heading2LineHeight": 123,
"heading2LetterSpacing": 123,
"heading3Color": "<string>",
"heading3FontSize": 123,
"heading3LineHeight": 123,
"heading3LetterSpacing": 123
},
"isDefault": true,
"createdAt": "<string>",
"updatedAt": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Themes
Get a theme
Retrieve a single theme by ID.
GET
/
v1
/
themes
/
{themeId}
Get a theme
curl --request GET \
--url https://app.loops.so/api/v1/themes/{themeId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.loops.so/api/v1/themes/{themeId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.loops.so/api/v1/themes/{themeId}', 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://app.loops.so/api/v1/themes/{themeId}",
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://app.loops.so/api/v1/themes/{themeId}"
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://app.loops.so/api/v1/themes/{themeId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.loops.so/api/v1/themes/{themeId}")
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{
"id": "<string>",
"name": "<string>",
"styles": {
"backgroundColor": "<string>",
"backgroundXPadding": 123,
"backgroundYPadding": 123,
"bodyColor": "<string>",
"bodyXPadding": 123,
"bodyYPadding": 123,
"bodyFontFamily": "<string>",
"bodyFontCategory": "<string>",
"borderColor": "<string>",
"borderWidth": 123,
"borderRadius": 123,
"buttonBodyColor": "<string>",
"buttonBodyXPadding": 123,
"buttonBodyYPadding": 123,
"buttonBorderColor": "<string>",
"buttonBorderWidth": 123,
"buttonBorderRadius": 123,
"buttonTextColor": "<string>",
"buttonTextFormat": 123,
"buttonTextFontSize": 123,
"dividerColor": "<string>",
"dividerBorderWidth": 123,
"textBaseColor": "<string>",
"textBaseFontSize": 123,
"textBaseLineHeight": 123,
"textBaseLetterSpacing": 123,
"textLinkColor": "<string>",
"heading1Color": "<string>",
"heading1FontSize": 123,
"heading1LineHeight": 123,
"heading1LetterSpacing": 123,
"heading2Color": "<string>",
"heading2FontSize": 123,
"heading2LineHeight": 123,
"heading2LetterSpacing": 123,
"heading3Color": "<string>",
"heading3FontSize": 123,
"heading3LineHeight": 123,
"heading3LetterSpacing": 123
},
"isDefault": true,
"createdAt": "<string>",
"updatedAt": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The ID of the theme.
Response
Successful.
The ID of the theme.
The name of the theme.
Flat map of style attributes, matching the attribute names accepted by the LMX <Style /> tag.
Show child attributes
Show child attributes
Whether this theme is the team's default.
ISO 8601 timestamp for when the theme was created.
ISO 8601 timestamp for when the theme was last updated.
Last modified on July 20, 2026
Was this page helpful?
⌘I

