curl --request PATCH \
--url https://app.base44.com/api/apps/{app_id}/seo/page-settings/{page_name} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"noindex": true
}
'import requests
url = "https://app.base44.com/api/apps/{app_id}/seo/page-settings/{page_name}"
payload = { "noindex": True }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({noindex: true})
};
fetch('https://app.base44.com/api/apps/{app_id}/seo/page-settings/{page_name}', 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.base44.com/api/apps/{app_id}/seo/page-settings/{page_name}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'noindex' => true
]),
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://app.base44.com/api/apps/{app_id}/seo/page-settings/{page_name}"
payload := strings.NewReader("{\n \"noindex\": true\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://app.base44.com/api/apps/{app_id}/seo/page-settings/{page_name}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"noindex\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/seo/page-settings/{page_name}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"noindex\": true\n}"
response = http.request(request)
puts response.read_body{
"result": {
"title": "Acme CRM",
"description": "Track leads and deals in one place.",
"og_image": "https://cdn.example.com/acme-og.png",
"noindex": false
}
}Update page SEO settings
Hides one page from search engines or makes it visible again, and returns that page’s settings as they now stand.
This endpoint changes only noindex. The page’s other fields, and every other page, keep their saved values. Change a page’s title, description or image with Update SEO settings, which can also set noindex on several pages in one call.
The page has to be one of the app’s pages or already have saved SEO settings. Any other name is rejected rather than added. A body that sets nothing, either an empty object or noindex set to null, changes nothing and returns the page’s current settings.
Saving itself is immediate. The live site is served from a separate copy, which is updated right after, but that update isn’t guaranteed to happen in the same moment and can lag. A successful call means the setting is stored, not that the live site has caught up.
This is limited to 30 requests a minute per caller for each app, shared with the app’s other SEO endpoints. Some workspaces have a different limit.
curl --request PATCH \
--url https://app.base44.com/api/apps/{app_id}/seo/page-settings/{page_name} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"noindex": true
}
'import requests
url = "https://app.base44.com/api/apps/{app_id}/seo/page-settings/{page_name}"
payload = { "noindex": True }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({noindex: true})
};
fetch('https://app.base44.com/api/apps/{app_id}/seo/page-settings/{page_name}', 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.base44.com/api/apps/{app_id}/seo/page-settings/{page_name}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'noindex' => true
]),
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://app.base44.com/api/apps/{app_id}/seo/page-settings/{page_name}"
payload := strings.NewReader("{\n \"noindex\": true\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://app.base44.com/api/apps/{app_id}/seo/page-settings/{page_name}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"noindex\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/seo/page-settings/{page_name}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"noindex\": true\n}"
response = http.request(request)
puts response.read_body{
"result": {
"title": "Acme CRM",
"description": "Track leads and deals in one place.",
"og_image": "https://cdn.example.com/acme-og.png",
"noindex": false
}
}Authorizations
Personal access token, sent as Authorization: Bearer <token>.
Path Parameters
Name of the page, the same key it has in pages in Get SEO settings. That's the page's component name as it appears in the app's code, with any folder under pages in front of it, such as About or services/HouseWashing. The home page goes by its own name, such as Home, not /. The name is case-sensitive, and you can send its slashes as they are or encoded as %2F.
ID of the app whose SEO settings you want.
Body
Set to true to hide the page from search engines, or false to make it visible again. Leaving it out or sending null keeps the saved value.
true
Response
The page's settings after the change.
One page's SEO settings.
The page's settings after the change. This is an empty object for a page with no saved settings when the call changes nothing.
Show child attributes
Show child attributes
Was this page helpful?