Render a system screen in the selected member site's theme
Uses the same layout, settings, localization, and GlobalEmbeds pipeline as template previews. The screen body is sealed and never persisted. Unsaved shared settings and layout overrides are accepted; screen body, stylesheet, variables, resource and version overrides are rejected. The real SDK element uses read-only sample data in the builder without member credentials or live member API calls. The builder displays the response in its preview canvas.
curl --request POST \
--url https://api.fluid.app/api/application_theme_templates/render_page \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"system_screen_key": "orders",
"members_site_id": 6021,
"country_id": 214,
"preview_audience": {
"kind": "sample_member",
"member_type_id": "0f8e2c61-3a4b-4d7e-9b15-6c2a8d4e1f90"
}
}
'import requests
url = "https://api.fluid.app/api/application_theme_templates/render_page"
payload = {
"system_screen_key": "orders",
"members_site_id": 6021,
"country_id": 214,
"preview_audience": {
"kind": "sample_member",
"member_type_id": "0f8e2c61-3a4b-4d7e-9b15-6c2a8d4e1f90"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
system_screen_key: 'orders',
members_site_id: 6021,
country_id: 214,
preview_audience: {kind: 'sample_member', member_type_id: '0f8e2c61-3a4b-4d7e-9b15-6c2a8d4e1f90'}
})
};
fetch('https://api.fluid.app/api/application_theme_templates/render_page', 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/application_theme_templates/render_page",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'system_screen_key' => 'orders',
'members_site_id' => 6021,
'country_id' => 214,
'preview_audience' => [
'kind' => 'sample_member',
'member_type_id' => '0f8e2c61-3a4b-4d7e-9b15-6c2a8d4e1f90'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/application_theme_templates/render_page"
payload := strings.NewReader("{\n \"system_screen_key\": \"orders\",\n \"members_site_id\": 6021,\n \"country_id\": 214,\n \"preview_audience\": {\n \"kind\": \"sample_member\",\n \"member_type_id\": \"0f8e2c61-3a4b-4d7e-9b15-6c2a8d4e1f90\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fluid.app/api/application_theme_templates/render_page")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"system_screen_key\": \"orders\",\n \"members_site_id\": 6021,\n \"country_id\": 214,\n \"preview_audience\": {\n \"kind\": \"sample_member\",\n \"member_type_id\": \"0f8e2c61-3a4b-4d7e-9b15-6c2a8d4e1f90\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/application_theme_templates/render_page")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"system_screen_key\": \"orders\",\n \"members_site_id\": 6021,\n \"country_id\": 214,\n \"preview_audience\": {\n \"kind\": \"sample_member\",\n \"member_type_id\": \"0f8e2c61-3a4b-4d7e-9b15-6c2a8d4e1f90\"\n }\n}"
response = http.request(request)
puts response.read_body{
"liquid_content": "<main class=\"members-screen members-screen--orders\">\n <fluid-orders></fluid-orders>\n</main>",
"html_content": "<main class=\"members-screen members-screen--orders\">\n <fluid-orders></fluid-orders>\n</main>",
"page_stylesheet": ".members-screen { max-width: 960px; margin: 0 auto; }",
"template_stylesheet": "",
"preview_audience": {
"kind": "sample_member",
"member_type_id": "0f8e2c61-3a4b-4d7e-9b15-6c2a8d4e1f90",
"matched_site_id": 6021,
"selected_site_accessible": true
},
"preview_url": "https://dunder-mifflin.account.fluid.app/orders?member_preview_site_id=6021&preview=true",
"meta": {
"request_id": "4f1c2a9e-7b3d-4e8a-9c61-2d5f8a0b3e17",
"timestamp": "2026-09-22T15:04:12Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}Body
Render the page as a visitor from this active company country. Falls back to the company default when absent, unknown, inactive, or not enabled for the company. When preview_audience is supplied, an unavailable explicit country ID returns 404 instead; an omitted or null ID still uses the company default.
Render the page in this active company language. Falls back to the company default when absent, unknown, inactive, or not enabled for the company. When preview_audience is supplied, an unavailable explicit language ID returns 404 instead; an omitted or null ID still uses the company default. Content not yet translated for the selected language renders its English version.
Response
Rendered HTML and styles using the selected theme
curl --request POST \
--url https://api.fluid.app/api/application_theme_templates/render_page \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"system_screen_key": "orders",
"members_site_id": 6021,
"country_id": 214,
"preview_audience": {
"kind": "sample_member",
"member_type_id": "0f8e2c61-3a4b-4d7e-9b15-6c2a8d4e1f90"
}
}
'import requests
url = "https://api.fluid.app/api/application_theme_templates/render_page"
payload = {
"system_screen_key": "orders",
"members_site_id": 6021,
"country_id": 214,
"preview_audience": {
"kind": "sample_member",
"member_type_id": "0f8e2c61-3a4b-4d7e-9b15-6c2a8d4e1f90"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
system_screen_key: 'orders',
members_site_id: 6021,
country_id: 214,
preview_audience: {kind: 'sample_member', member_type_id: '0f8e2c61-3a4b-4d7e-9b15-6c2a8d4e1f90'}
})
};
fetch('https://api.fluid.app/api/application_theme_templates/render_page', 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/application_theme_templates/render_page",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'system_screen_key' => 'orders',
'members_site_id' => 6021,
'country_id' => 214,
'preview_audience' => [
'kind' => 'sample_member',
'member_type_id' => '0f8e2c61-3a4b-4d7e-9b15-6c2a8d4e1f90'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/application_theme_templates/render_page"
payload := strings.NewReader("{\n \"system_screen_key\": \"orders\",\n \"members_site_id\": 6021,\n \"country_id\": 214,\n \"preview_audience\": {\n \"kind\": \"sample_member\",\n \"member_type_id\": \"0f8e2c61-3a4b-4d7e-9b15-6c2a8d4e1f90\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fluid.app/api/application_theme_templates/render_page")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"system_screen_key\": \"orders\",\n \"members_site_id\": 6021,\n \"country_id\": 214,\n \"preview_audience\": {\n \"kind\": \"sample_member\",\n \"member_type_id\": \"0f8e2c61-3a4b-4d7e-9b15-6c2a8d4e1f90\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/application_theme_templates/render_page")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"system_screen_key\": \"orders\",\n \"members_site_id\": 6021,\n \"country_id\": 214,\n \"preview_audience\": {\n \"kind\": \"sample_member\",\n \"member_type_id\": \"0f8e2c61-3a4b-4d7e-9b15-6c2a8d4e1f90\"\n }\n}"
response = http.request(request)
puts response.read_body{
"liquid_content": "<main class=\"members-screen members-screen--orders\">\n <fluid-orders></fluid-orders>\n</main>",
"html_content": "<main class=\"members-screen members-screen--orders\">\n <fluid-orders></fluid-orders>\n</main>",
"page_stylesheet": ".members-screen { max-width: 960px; margin: 0 auto; }",
"template_stylesheet": "",
"preview_audience": {
"kind": "sample_member",
"member_type_id": "0f8e2c61-3a4b-4d7e-9b15-6c2a8d4e1f90",
"matched_site_id": 6021,
"selected_site_accessible": true
},
"preview_url": "https://dunder-mifflin.account.fluid.app/orders?member_preview_site_id=6021&preview=true",
"meta": {
"request_id": "4f1c2a9e-7b3d-4e8a-9c61-2d5f8a0b3e17",
"timestamp": "2026-09-22T15:04:12Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}