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 and ignore_parent_noindex. The page’s other fields, and every other page, keep their saved values. See which pages a hidden parent page covers with Get page visibility. Change a page’s title, description, or image with Update SEO settings, which can also set noindex on several pages in one call.
A successful call means the setting is saved. The live site can take a little while to catch up.
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>. Each operation lists the permission it needs: read_only or full_access. A full-access token can call every operation. A read-only token can call only the operations that list read_only; anything else returns 403 read_only_credential_route_not_allowed.
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 and returns the page's current settings.
true
Set to true to keep this page visible to search engines when a parent page is hidden (e.g. /units/:id while Units is hidden). It never overrides the page's own noindex.
true
Response
The page's settings after the change.
Settings saved for the page, or an empty object if the page has none and the call changes nothing.
Show child attributes
Show child attributes
Was this page helpful?