Update SEO settings

Changed on

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Saves SEO settings for the app and returns the settings as they now stand.

This is a partial update. Keys you leave out of settings keep their saved values. The same is true one level deeper for pages. A page absent from your pages object keeps its existing overrides, and within a page you do include, any field you leave out keeps its saved value. For example, sending only a page's title changes that field alone. Its description and every other page stay as they were. To hide or show a single page, Update page SEO settings changes just its noindex without sending the rest of the settings.

You can't remove a page or a page override through this endpoint. An empty pages object changes nothing, and a null page entry is rejected. To stop a page overriding a tag, send an empty string as that field's value instead.

A successful call means the settings are saved. The live site can take a little while to catch up, so confirm with Get SEO settings rather than treating the published pages as proof.

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time. Send only the fields documented here. Other request fields are not supported and their behavior can change.</Warning>

put/api/apps/{app_id}/seo/settings

Request

  • Base URL: https://app.base44.com
  • URL: https://app.base44.com/api/apps/{app_id}/seo/settings
  • Auth: HTTP bearer

Path parameters

app_idstring required

ID of the app whose SEO settings you want.

Request body

Example request

{
  "settings": {
    "platform_meta_injection_enabled": true,
    "platform_jsonld_injection_enabled": true,
    "robots_txt_enabled": true,
    "sitemap_xml_enabled": true,
    "ai_crawlers_enabled": true,
    "synthesized_breadcrumb_enabled": true,
    "canonical_url": "https://acme.com",
    "content_query_params": [
      "article"
    ],
    "custom_json_ld": [
      {
        "confidence": "0.85",
        "entity_name": "Product",
        "field_mapping": {
          "name": "title"
        },
        "json_ld_template": {
          "@context": "https://schema.org",
          "@type": "Product",
          "name": "Acme CRM"
        },
        "schema_type": "Product"
      }
    ],
    "website_schema": {
      "@context": "https://schema.org",
      "@type": "WebSite",
      "name": "Acme CRM",
      "url": "https://acme.com"
    },
    "organization_schema": {
      "@context": "https://schema.org",
      "@type": "Organization",
      "name": "Acme",
      "url": "https://acme.com"
    },
    "breadcrumb_schema": {
      "@context": "https://schema.org",
      "@type": "BreadcrumbList",
      "itemListElement": []
    },
    "faq_schema": {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "mainEntity": []
    },
    "pages": {
      "Home": {
        "description": "Track leads and deals in one place.",
        "og_image": "https://cdn.example.com/acme-og.png",
        "title": "Acme CRM"
      }
    }
  }
}

Response

The settings as they stand after the merge.

Example response

{
  "result": {
    "platform_meta_injection_enabled": true,
    "platform_jsonld_injection_enabled": true,
    "robots_txt_enabled": true,
    "sitemap_xml_enabled": true,
    "ai_crawlers_enabled": true,
    "synthesized_breadcrumb_enabled": true,
    "canonical_url": "https://acme.com",
    "content_query_params": [
      "article"
    ],
    "custom_json_ld": [
      {
        "confidence": "0.85",
        "entity_name": "Product",
        "field_mapping": {
          "name": "title"
        },
        "json_ld_template": {
          "@context": "https://schema.org",
          "@type": "Product",
          "name": "Acme CRM"
        },
        "schema_type": "Product"
      }
    ],
    "website_schema": {
      "@context": "https://schema.org",
      "@type": "WebSite",
      "name": "Acme CRM",
      "url": "https://acme.com"
    },
    "organization_schema": {
      "@context": "https://schema.org",
      "@type": "Organization",
      "name": "Acme",
      "url": "https://acme.com"
    },
    "breadcrumb_schema": {
      "@context": "https://schema.org",
      "@type": "BreadcrumbList",
      "itemListElement": []
    },
    "faq_schema": {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "mainEntity": []
    },
    "pages": {
      "Home": {
        "description": "Track leads and deals in one place.",
        "og_image": "https://cdn.example.com/acme-og.png",
        "title": "Acme CRM"
      }
    }
  }
}

Changes

    • info

      the endpoint scheme security PersonalAccessTokenAuth was added to the API

    • info

      added the new optional request property ///

    • info

      added the optional property /// to the response with the status