MCP App Store
by KeenEthics
Business & Operations
BrightSite icon

BrightSite

by BrightSite, Inc.

Overview

BrightSite is a website platform for small businesses and the agencies that serve them. This connector gives Claude direct access to the sites in your BrightSite account, so you can build and maintain them through conversation instead of clicking through a dashboard. Ask Claude to draft and publish a blog post, add a landing page, rewrite the copy on an existing one, upload and organize media, edit SEO titles and meta descriptions, set up redirects, build reusable components and layouts, manage products and collections for a storefront, read form submissions, check analytics, or review who has access to an account. Edits are staged by default. Claude can prepare a change and show you what it did, and nothing reaches your live website until a publish tool is called. Every account keeps full version history, so a change can be rolled back after the fact. The connector authenticates with OAuth 2.1. Claude never receives your BrightSite password, permissions follow the role you already hold in each account, and you can revoke access at any time from your BrightSite settings. Agencies with several client accounts choose the account for each request, so work on one client's site cannot silently affect another. Included on every BrightSite plan at no extra cost.

Tools

add_domain

ChatGPT
Connect a custom domain to the account. The account's FIRST domain becomes its primary (canonical) domain; every later one becomes an alias that 301-redirects to the primary — useful for owning misspellings, alternate TLDs, or migrating from an old domain without losing SEO. Returns the DNS records the customer must create at their DNS provider; provisioning completes in the background once DNS is pointed. Pass a bare registrable domain (e.g. example.com — no scheme, no www).

add_email_contacts

ChatGPT
Add up to 100 contacts to the account's email list. Only add people who agreed to receive email from the business, and say how in consent (required, stored with each contact as their consent record). Existing contacts get the tags merged and blank names filled; their status never changes. Addresses that bounced, complained or unsubscribed before are skipped. Contacts are added as subscribed. Returns a result per address (created, updated, unchanged, skipped, duplicate or error). The plan's contact limit applies.

add_email_sending_domain

ChatGPT
Add a domain to send campaigns from and start setting it up with the email provider. Its DNS records appear within a minute: then call list_email_sending_domains and add them at the domain's DNS host. Free mail domains and domains another account claimed are refused.

add_product_option

ChatGPT
Add an option (an axis of variation such as Size or Color) and its values to a product. At most 3 options per product. Adding an option creates no variants: call generate_variants next to create the sellable combinations.

add_products_to_collection

ChatGPT
Add one or more products to a collection, appended in the order given. Products already in the collection are skipped, so re-running an import does not duplicate them.

add_rank_keywords

ChatGPT
Track more keywords in a project. Write them as people search ("roof repair portland"); matching ignores case and keywords already tracked are skipped. Keywords are checked on mobile; pass desktop true to check them on desktop too (each then counts twice against the limit). Each new keyword gets its first check now (a paid search), with results within a few minutes, then on the project's schedule. The account has a keyword limit across all projects (usage in get_rank_tracker_summary).

admin_create_announcement

ChatGPT
Platform-admin tool. Create a product announcement for the "What's new" section of every user's Updates menu (the bell). Without published_at it is a draft nobody sees; a future published_at schedules it. Users see a dot on the bell for anything published since they last opened it.

admin_delete_announcement

ChatGPT
Platform-admin tool. Delete an announcement for good. To hide it but keep it, use admin_update_announcement with an empty published_at instead.

admin_list_announcements

ChatGPT
Platform-admin tool. List announcements, newest first (up to 100). Only published ones unless include_drafts is true, which adds drafts and scheduled ones (drafts first).

admin_local_search_campaigns

ChatGPT
Platform-admin tool. Local search campaigns across every account, newest first: business, grid, keywords, schedule, paused state, and scans and spend in the period.

admin_local_search_overview

ChatGPT
Platform-admin tool. Local search (Google Maps rank tracking) across every account: DataForSEO spend against the daily cap, spend by trigger (scheduled, manual, initial, added, business_search, deleted_scan), scans by status, the accounts using it with campaigns, limits and spend, and recent failed scans. Spend is charged when a scan finishes. Pass account_id to narrow spend, accounts and failures to one account.

admin_local_search_scans

ChatGPT
Platform-admin tool. Local search scans across every account, newest first: keyword, status, trigger, points resolved, average rank, cost and any error.

admin_update_announcement

ChatGPT
Platform-admin tool. Update an announcement. Only the fields passed change. Pass an empty string to clear body, link_url or image_url; an empty published_at turns it back into a draft (unpublishes it).

attach_product_media

ChatGPT
Add an image from the media library to a product's gallery (upload it first with request_upload). Images show in position order; pass variant_id to tie one to a variant (a color swatch) so the gallery switches to it when a buyer picks that option. featured_image_id on the product is the main image and is set separately.

cancel_email_campaign

ChatGPT
Cancel a scheduled, sending or paused email campaign. Emails already sent stay sent; the rest never go out. A canceled campaign cannot be sent again (duplicate_email_campaign copies it into a new draft).

cancel_fulfillment

ChatGPT
Cancel a shipment recorded by mistake. Its items become unshipped again, the order's fulfillment status is recomputed, and the cancellation is logged on the order's timeline.

cancel_invitation

ChatGPT
Cancel (rescind) a pending team invitation by email. See list_pending_invitations.

cancel_social_post

ChatGPT
Cancel a draft, scheduled or publishing social post. Accounts it has not reached yet are canceled; accounts it already published to stay published (BrightSite cannot remove a live post from the platforms). A canceled post cannot be edited or scheduled again.

check_email_sending_domain

ChatGPT
Check a sending domain's DNS records with the email provider now (they are also checked automatically). With add_records, first add the records for you when the domain uses BrightSite DNS (managed_dns).

complete_onboarding

ChatGPT
Mark an account as onboarded, skipping the guided setup wizard. Call this FIRST when importing a site into a brand-new account: until an account is onboarded, opening the dashboard runs the setup wizard, which seeds the starter template over whatever is already there. An account that is already onboarded is left alone, so this is safe to call more than once.

complete_upload

ChatGPT
Complete a file upload after PUTting the file to the presigned URL from request_upload. Step 2 of 2: creates the media record in the database.

create_collection

ChatGPT
Create a product collection — a merchandising group with its own storefront page at /collections/{slug}. Use it for the categories a WooCommerce or Shopify catalog already has.

create_component

ChatGPT
Create a reusable component. Embed in pages/layouts via component("slug") or component("slug", %{prop: value}). Both live and staged fields start with the same content.

create_discount

ChatGPT
Create a discount code. percentage and fixed_amount take money off the goods: the whole cart, or only the lines of product_ids and collection_ids. free_shipping zeroes the chosen shipping rate, optionally only in shipping_zone_ids, for shipping_method_ids, or for rates up to max_shipping_amount. A cart holds one code unless every code on it has combines_with_others; stacked codes apply in the order added and each is itemized on the order. usage_limit caps total uses and usage_limit_per_customer uses per shopper; a use is counted when an order is placed, not when the code is applied.

create_dns_record

ChatGPT
Add a DNS record to a custom domain's BrightSite-managed zone — an MX record to route the domain's email, a TXT record for SPF/DKIM or a site verification, a CNAME for a subdomain, and so on. Only works for domains with managed_dns: true. The name is relative to the domain: "@" or an empty name is the domain itself, "mail" becomes mail.example.com. Records at the apex, www, or an _acme-challenge name are refused, because BrightSite owns those.

create_doc_page

ChatGPT
Create a documentation page. Content is raw HTML (not HEEx — template helpers like media() are not available). Pass parent_id to nest it under another page; the URL path is derived from the parent chain plus the slug.

create_email_campaign

ChatGPT
Create an email campaign as a draft. Nothing is sent: check preflight in the result, then call schedule_email_campaign. Content comes from blocks, from_post_id ("latest" for the newest blog post), html (a code email: your own full HTML document, such as a Mailchimp export) or, with none, a starter email. Sender fields default to the account's Email settings.

create_email_segment

ChatGPT
Create a segment: a saved audience of contacts by tags and source. A campaign to it goes to its subscribed contacts.

create_error_page

ChatGPT
Create a custom error page for a given HTTP status code (404, 500, 4xx, 5xx, etc.). Each status_code is unique per org. Call publish_error_page to make it active.

create_form

ChatGPT
Create a form

create_google_review_widget

ChatGPT
Create a saved Google Reviews widget: a named display config a page places with its own helper (reviews_hero_badge() for the slug hero-badge), so one placement can look different from the Default (for example a compact badge in the hero and a masonry wall on the reviews page). It starts from the Default widget's config; pass only the fields that should differ. The slug is derived from the name when left out ("Hero badge" becomes hero-badge, or hero-badge-2 when taken). Returns the widget with its snippet to put in the page HEEx.

create_layout

ChatGPT
Create a page layout that wraps pages with shared structure (header, nav, footer). Both live and staged fields start with the same content.

create_local_search_campaign

ChatGPT
Create a local search campaign: one business, the grid of points scanned around it, its keywords and its scan schedule (weekly by default). Take place_id, cid, business_name, business_address, business_lat and business_lng from a find_local_search_business result. The area defaults to the city preset (7x7 points, 1 mile apart) centered on the business; points on water are switched off automatically. The first scan of every keyword starts right away unless run_first_scan is false: that is one paid Google Maps search per point per keyword, and results arrive within a couple of minutes (read them with get_local_search_scan). An account has a limited number of campaigns (max_campaigns in get_local_search_summary).

create_media_folder

ChatGPT
Create a media folder for organizing uploaded files

create_org_role

ChatGPT
Create a custom team role from a set of permissions. Requires a plan with custom roles.

create_page

ChatGPT
Create a CMS page. Assign a layout_id to wrap with shared header/nav/footer. Both live and staged fields start with the same content. Call publish_page to make it appear on the live site.

create_post

ChatGPT
Create a blog post. Content is raw HTML (not HEEx — template helpers like media() are not available). Both live and staged fields start with the same content.

create_product

ChatGPT
Create a catalog product. Every product gets a default variant automatically — pass price_amount (and optionally sku, inventory_quantity) to seed it, which is all a simple single-price product needs. Products start as draft; call set_product_status to activate, which requires at least one active variant with a price. For a product with real options (size, color) create it first, then add_product_option and generate_variants.

create_redirect

ChatGPT
Create a URL redirect (301 permanent or 302 temporary). Source path is relative (e.g. /old-page), target can be relative or absolute URL.

create_review

ChatGPT
Record a product review. Use it to import reviews from an existing store, or to accept one from a form. A review is created pending — call set_review_status to approve it, or it will not appear on the storefront. The verified-purchase badge is resolved from paid orders by customer_id or author_email (import_orders_csv brings old orders in). When importing a review the old store had already verified and its order is not being migrated, pass verified_purchase: true.

create_shipping_method

ChatGPT
Add a shipping method (rate) to a zone: flat_rate, free, weight_based or price_based (banded by parcel weight or by subtotal after discount, via rate_tiers). minimum_order_amount hides it below a subtotal; free_over_amount makes it free above one. Every active method the basket qualifies for in the winning zone is offered.

create_shipping_zone

ChatGPT
Create a shipping zone: countries, optionally narrowed to regions and postcodes, or a rest-of-world catch-all. Only one zone's methods are offered for an address: the most specific matching zone wins (postcode match, then region, then country, then rest of world), and equally specific zones are settled by position (lower first, see move_shipping_zone). A zone with no active method is skipped. A new zone goes to the end of the list. Add rates to it with create_shipping_method.

create_social_post

ChatGPT
Save a new social post as a draft. It is not published or scheduled: check get_social_post's issues, then call schedule_social_post or publish_social_post_now. Connect accounts in the BrightSite dashboard first; list them with list_social_accounts. Pick accounts with social_account_ids, or with targets to also set per-account text or platform options. Media comes from the media library (list_media, or request_upload + complete_upload); images and video only, in order. Platform limits: Instagram and TikTok need an image or a video. Instagram allows at most 5 hashtags. X allows 280 characters. Google Business allows 1500 characters and one image. LinkedIn allows 3000 characters. Use a target body to give one platform shorter text. Target options by platform (string keys; omit a key for its default): - any platform, posts with images: aspect_ratio (original default, 1:1, 4:5 or 16:9) crops every image to that shape; with original, images Instagram cannot take (outside 4:5 to 1.91:1) are cropped to the nearest shape. - instagram: collaborators (up to 3 usernames, no @), location_id (Facebook place id), share_to_feed (Reels only, default true), user_tags (list of {username, x, y} with x and y from 0 to 1, single image only). - facebook: none. - google_business: topic_type (STANDARD default, EVENT or OFFER), cta_type (LEARN_MORE, the default when the post has a link, BOOK, ORDER, SHOP, SIGN_UP or CALL; CALL needs no link), event_title, event_start and event_end (ISO 8601, required for EVENT and OFFER), offer_coupon_code, offer_redeem_url, offer_terms. - linkedin: visibility (PUBLIC default, or CONNECTIONS; member posts only). - x: none. - tiktok: privacy_level (REQUIRED, one of the creator's privacy_level_options from get_social_account), disable_comment, disable_duet, disable_stitch (default false), brand_content_toggle (paid partnership for a third party), brand_organic_toggle (promoting the creator's own business), is_aigc, title (photo posts, max 90 characters), auto_add_music (photo posts).

create_staging_site

ChatGPT
Create a staging site by cloning the account's live site (content + media). Runs synchronously and returns the new staging site (with its preview_url). Once created, author into it by passing site: "staging" (or the returned site ID) to any content tool — create_page, update_page, update_layout, update_global_code, request_upload, etc. — then staging_diff to review and promote_staging to make it live. The live site is untouched until you promote. Plan-gated — fails if staging isn't available on the account's plan or the staging limit is reached, or if a staging site already exists. name is optional and must be unique among the account's sites; when omitted it defaults to "{live site name} (Staging)". Note: the returned preview_url requires a logged-in org member — unauthenticated requests (e.g. a headless screenshot without the session cookie) get a 404 by design, so the staging host's existence isn't revealed.

create_tax_rate

ChatGPT
Add a manual tax rate for a country, or for one state or province within it. Used when tax_mode is manual.

create_template_from_account

ChatGPT
Platform-admin tool. Create a site template from an account's live site. Build the site in that account and review it first: the whole live site (layouts, pages, components, forms, blog, docs, media, global code, site identity, redirects, storefront templates and the product catalog) is exported into the template zip. New templates start disabled so they can be reviewed before sites can pick them; enable one with update_template. Features are derived from the exported zip. The preview is the media file given as preview_file_id, else the home page screenshot in the export, if any.

delete_ai_search_campaign

ChatGPT
Delete an AI visibility campaign with its questions and every check it ran. This cannot be undone. Automatic checks stop, and the account can create another campaign in its place.

delete_component

ChatGPT
Delete a reusable component

delete_discount

ChatGPT
Delete a discount code. Orders that used it keep their record of the discount.

delete_dns_record

ChatGPT
Permanently delete a DNS record from a custom domain's BrightSite-managed zone. Get the record_id from list_dns_records. Records BrightSite manages (protected: true) are refused, since removing them would take the site offline or stop its SSL certificate renewing.

delete_doc_page

ChatGPT
Delete a documentation page. Refused if the page has children — move or delete them first. Deleting never cascades, because a silent subtree delete destroys content.

delete_email_campaign

ChatGPT
Delete an email campaign and its report. A sending campaign must be paused or canceled first.

delete_email_contact

ChatGPT
Delete a contact and their history. An address that unsubscribed, bounced or complained stays on the suppression list, so it is never emailed again.

delete_email_segment

ChatGPT
Delete a segment. Contacts are not affected. Refused while a draft, scheduled, sending or paused campaign uses it; the error names those campaigns.

delete_error_page

ChatGPT
Delete an error page

delete_file

ChatGPT
Delete a media file. Removes both the DB record and the underlying storage. Refuses if the file is referenced anywhere (template usages, post feature/og images, page og images, site logo/icon) — remove all references first, then retry. There is no force option; the user must clear references manually so they don't leave dangling references behind.

delete_form

ChatGPT
Delete a form

delete_google_review_widget

ChatGPT
Delete a saved Google Reviews widget. Pages that still place it (reviews_<slug>() or reviews(%{widget: "slug"})) keep working but render with the Default widget's config, so remove or change those calls too. The Default widget cannot be deleted.

delete_layout

ChatGPT
Delete a page layout

delete_local_search_campaign

ChatGPT
Delete a campaign with its keywords and every scan it ever ran. This cannot be undone. The automatic scans stop, and the account can create another campaign in its place.

delete_media_folder

ChatGPT
Delete a media folder. Refuses if the folder contains any files or subfolders — empty the folder first by moving or deleting its contents, then retry. There is no force/recursive option.

delete_org

ChatGPT
Platform-admin tool. Deletes an account. Irreversible: its site goes offline and its members lose access at once, then its Stripe subscription and customer, store Stripe account, domains, content and files are deleted in the background. Only call this when the user has explicitly asked to delete this account after seeing preview_org_deletion, and pass the slug the USER typed as confirm_slug; never fill it in yourself. The platform's own accounts cannot be deleted.

delete_org_role

ChatGPT
Delete a custom team role. Blocked while any member is assigned to it — reassign those members first (update_member_role).

delete_page

ChatGPT
Delete a CMS page

delete_post

ChatGPT
Delete a blog post

delete_redirect

ChatGPT
Delete a URL redirect

delete_review

ChatGPT
Delete a review permanently. To hide one without losing it, set its status to rejected instead.

delete_shipping_method

ChatGPT
Delete a shipping method from its zone.

delete_shipping_zone

ChatGPT
Delete a shipping zone and all its methods. Shoppers it covered can no longer check out unless another zone covers them.

delete_social_post

ChatGPT
Delete a social post from BrightSite. Posts already published stay live on the platforms; this only removes the record here. A post that is publishing right now cannot be deleted; cancel it first or wait.

delete_tax_rate

ChatGPT
Delete a manual tax rate.

delete_template

ChatGPT
Platform-admin tool. Permanently delete a site template. Sites created from it keep their content. The default template cannot be deleted: make another template the default first. Pass confirm: true.

deliver_held_order

ChatGPT
Deliver an order whose delivery is held (get_order shows delivery_held_at): it was paid, but its gift card share could not be taken from the card, so its gift cards, downloads and no-shipping items were not delivered. Issues them and emails the gift cards. Confirm with the user first, then pass confirm: true.

detach_product_file

ChatGPT
Remove a downloadable file from a digital product. The file stays in the media library, and buyers who already paid keep their links.

detach_product_media

ChatGPT
Remove an image from a product's gallery. The file stays in the media library.

disable_commerce

ChatGPT
Platform-admin tool. Turn commerce off for one account. Its store screens, storefront and checkout stop working, but nothing is deleted: products, orders and settings come back if commerce is enabled again.

disable_gift_card

ChatGPT
Disable a gift card (lost, refunded, abused): it stops being accepted at checkout. Its balance is kept, and enable_gift_card undoes this.

discard_staging_site

ChatGPT
Permanently delete the account's staging site and its content without promoting. Frees the staging slot. The live site is unaffected.

duplicate

ChatGPT
Duplicate an entity. Creates a new draft copy with a unique slug and "— Copy" appended to the title/name. Staged and live fields are synced; the copy is unpublished. Supports: page, post, component, layout, form. (Error pages, global_code, and blog design singletons are not duplicable.)

duplicate_email_campaign

ChatGPT
Copy an email campaign of any status into a new draft named "Copy of ...", with the same content, sender and audience.

enable_gift_card

ChatGPT
Re-enable a disabled gift card so it is accepted at checkout again.

export_orders_csv

ChatGPT
Every order as CSV, the same files the orders screen exports. shape=orders (default): one row per order with customer name, statuses, amounts in major units with a currency column, discount code, shipping method, the items and their SKUs, flattened billing_ and shipping_ address columns, and whether it was imported. shape=lines: one row per line item with the order number, date, customer, SKU, title, variant, quantity, unit price and line total. Takes the same filters as list_orders.

export_products_csv

ChatGPT
Every product as CSV, one row per variant, in the same shape import_products_csv reads. Use it to back up a catalog, to edit many products at once in a spreadsheet, or to see the exact column format before writing an import file.

find_ai_search_business

ChatGPT
Find the business's Google Maps listing to set up AI visibility, so you need not know its latitude and longitude. Search by the business name and town ("Northwind Heat Pumps Gray ME") or by its street address; the search covers the US. Each listing comes with business_name, lat, lng, city, region, cid, place_id and its website domain: pass the right one's to create_ai_search_campaign (the domain in domains). Each call is a paid search and an account gets a limited number a day, so search once with a precise query.

find_google_reviews_business

ChatGPT
Find the business on Google whose reviews the widget should show, the first step of connecting Google Reviews. query is the business name and town ("Joe's Pizza Austin TX"), a Google Maps link (including maps.app.goo.gl short links) or a place ID. A link or place ID resolves to that one listing for free; a name runs a paid Google Maps search, and an account gets a limited number a day, so search once with the name and town. Pass the chosen result to connect_google_reviews.

find_local_search_business

ChatGPT
Find the business's Google Maps listing, the first step of setting up a campaign. Searches Google Maps for a business name near a point and returns the listings found; pass the right one's place_id, cid, name, address, lat and lng to create_local_search_campaign. With no arguments it searches for the business the account already told us about (its Site Identity and Google Business Profile connection); suggested_place_id marks the listing that connection points to. Each call is a paid search and an account gets a limited number a day, so search once with a good name and location.

generate_variants

ChatGPT
Create a variant for each combination of a product's option values (add the options first with add_product_option). Omit combinations to generate every combination; existing combinations are skipped, so re-running after adding a value only creates the new ones. The price and other fields given here apply to every new variant: set per-variant prices or SKUs afterwards with update_variant. The product's original optionless default variant is archived once the new variants exist, so buyers only see real options.

get_active_visitors

ChatGPT
Get currently active visitors on the site (last 5 minutes)

get_ai_search_gaps

ChatGPT
What to fix to be named more in AI answers, from the campaign's latest completed check. prompt_gaps: questions where an assistant named other businesses and never this one, with who it named instead. source_gaps: sites the answers cited only when they did not name the business, with a next step (often getting listed there); no page was opened, so check the listing first. site_checks: checks of the account's own site (AI crawler access, business details, the home page, city and category named, the name matching) with where in the dashboard to fix each. Site checks are returned even before the first check completes.

get_analytics

ChatGPT
Get site analytics. Choose a metric: - summary: unique visitors, page views, sessions, bounce rate, avg session duration, views/visit - top_pages: most-viewed pages (uses limit) - top_referrers: top traffic sources (uses limit) - top_utm_sources: top first-touch campaign sources from utm_source (uses limit) - top_campaigns: top (source, medium, campaign) tuples from UTM params (uses limit) - visits_over_time: time series of views + unique visitors (uses interval) - device_breakdown: desktop / mobile / tablet - browser_breakdown: Chrome / Safari / Firefox / etc. - country_breakdown: visitor countries - active_visitors: currently active visitors (last 5 minutes; ignores period)

get_analytics_summary

ChatGPT
Get analytics summary with key metrics: unique visitors, page views, sessions, bounce rate, avg session duration, views per visit

get_blog_listing_design

ChatGPT
Get the blog listing page design (the index page that shows all posts). Returns both live and staged fields.

get_blog_post_card_design

ChatGPT
Get the blog post card design (how each post appears in the listing grid). Returns both live and staged fields.

get_blog_settings

ChatGPT
Get blog-wide settings: whether the blog is enabled, the listing URL, posts-per-page, comment/social/SEO toggles, layout assignments, and display options. There is only one record per site — no ID needed.

get_blog_template

ChatGPT
Get the blog post template (the layout that wraps individual blog posts). Returns both live and staged fields. There is only one per site — no ID needed.

get_browser_breakdown

ChatGPT
Get visitor browser breakdown

get_commerce_template

ChatGPT
Get one storefront page template (HEEx, CSS, JS) with both live and staged fields. Templates place platform blocks such as {cart()} or {sign_in_form(heading: "Welcome back")} and site components such as component("account-sign-in"); shopper data (@product, @collection, @cart, @customer, @orders, @order) arrives as runtime assigns.

get_component

ChatGPT
Get a reusable component by ID. Returns both live and staged content fields.

get_country_breakdown

ChatGPT
Get visitor country breakdown

get_customer

ChatGPT
Get one customer with lifetime figures, saved addresses and their orders (slim rows).

get_design

ChatGPT
Get the site's structured design record: the colors, typefaces, shape, depth, spacing and flags every page, layout, component, blog, docs page and storefront block reads. Returns the staged record, the published one, and the record with derived colors filled in. Returns nulls for a legacy site whose theme is still a hand-written Tailwind config (see get_global_code).

get_device_breakdown

ChatGPT
Get visitor device type breakdown (desktop, mobile, tablet)

get_discount

ChatGPT
Get one discount code.

get_dns_instructions

ChatGPT
Get the DNS records a customer must create at their DNS provider for one of the account's custom domains — the CNAME pair pointing the domain at BrightSite plus the two _acme-challenge CNAMEs that let SSL certificates issue and renew automatically. Useful when a domain is stuck in provisioning or its ssl_status is pending/failed. Not needed for domains on BrightSite-managed DNS (managed_dns: true), where records are created automatically.

get_doc_page

ChatGPT
Get a documentation page by ID. Returns both live (content) and staged (content_staged) fields.

get_docs_article_design

ChatGPT
Get the docs article design — the HEEx skin wrapped around every individual documentation page's body. Returns both live and staged fields.

get_docs_index_design

ChatGPT
Get the docs landing page design — the page served at the docs base_url itself, listing the documentation. Returns both live and staged fields.

get_docs_search_design

ChatGPT
Get the docs search results design — the page at /docs-search that lists the doc pages matching a visitor's query, rendered inside the site layout. Returns both live and staged fields.

get_docs_settings

ChatGPT
Get the documentation settings: whether docs are switched on, the URL prefix they live under, how the docs index describes itself for search and social sharing, and which navigation elements are shown.

get_email_campaign

ChatGPT
One email campaign with its content (mode blocks: its blocks; mode code: its HTML document in html) and, while it is a draft or scheduled, its preflight check: errors that block sending (no subject, no mailing address in Email settings, no recipients, a free-mail From address, the monthly allowance used up, a code email with no HTML) and warnings that do not (for code emails: unknown merge tags, what the sanitizer removed, a size Gmail clips, http:// images).

get_email_campaign_report

ChatGPT
An email campaign's results: recipients, sent, delivered, bounced, complained, unsubscribed, opened and clicked, with rates from 0 to 1 over delivered emails, the most clicked links, and why people unsubscribed (the optional reason picked on the unsubscribe page; share is 0 to 1 of everyone who unsubscribed). Opens are approximate (many inboxes block images and Apple Mail loads them all); clicks are reliable.

get_email_sending_status

ChatGPT
Whether the account can send email now (status ready, disabled, not_configured or paused with the reason) and its usage: contacts and emails this month against the plan, and today's sending cap. The cap is lower while no sending domain is verified.

get_email_settings

ChatGPT
The account's Email settings: default sender name, From and Reply-To addresses, the mailing address every campaign footer needs, double opt-in, and the Sent with BrightSite referral badge (shown now, and whether the plan lets the account remove it).

get_error_page

ChatGPT
Get an error page by ID. Returns both live and staged content fields.

get_form

ChatGPT
Get a form by ID. Returns both live and staged content fields.

get_form_delivery

ChatGPT
Get one notification delivery with its attempt timeline: each attempt's request (method, URL, headers, body) and response (status, body) or error. Secrets in URLs and headers are stored masked.

get_form_submission

ChatGPT
Get one form submission: its values, status, the page it came from, the spam check's verdict, and every notification it sent (emails and webhooks) with each delivery's status.

get_gift_card

ChatGPT
Get one gift card with its balance history (issued, spent on orders, refunded, adjusted).

get_global_code

ChatGPT
Get global CSS, JavaScript, and Tailwind theme config that applies to all pages and layouts. Returns both live and staged fields. Update with update_global_code, then publish_global_code to push live.

get_google_reviews_settings

ChatGPT
Get the account's Google Reviews widget settings: the connected Google business (place_id, business_name, business_address), whether a pull is in progress (syncing), the widget's display config (layout, theme, colors, card style, min rating, reviews-per-page, require_text, max_lines, show_owner_replies, toast and marquee options), the 'Review us on Google' call-to-action, the sync and approval settings (sync_frequency, approval_mode, auto_approve_min_rating), how many new reviews wait for approval (pending_count), and the last sync. These settings are the Default widget, placed on pages via the reviews() (review wall) and review_badge() (compact rating badge) template helpers. Saved widgets (list_google_review_widgets) each have their own display config and are placed with their own helper: the widget with slug hero-badge is reviews_hero_badge(). For the rating in a design's own markup, templates read review_stats.rating_text, review_stats.count, review_stats.write_review_url and review_stats.review_url. If connected is false, connect a business first (see the returned instructions).

get_google_reviews_status

ChatGPT
Check whether a Google business is connected for the account's reviews, which one (place_id, business_name, business_address), how many reviews it has, whether a pull is in progress (syncing), the last sync, the sync and approval settings, and how many new reviews wait for approval (pending_count; they are approved in Social > Google Reviews). Use this before configuring the widget, and after connect_google_reviews or sync_google_reviews to see the result. When not connected, returns connect_instructions.

get_indexnow_settings

ChatGPT
Get the account's Instant Indexing (IndexNow) state: whether automatic submission is on, the public URL of the verification key file, and whether submissions actually reach search engines right now. IndexNow notifies Bing, Yandex and other participating engines the moment a page, post or redirect changes. eligible is false — and nothing is submitted — until the account has a live custom domain, because platform preview subdomains (*.onbrightsite.com) are never indexed. The key file stays served even while automatic submission is off, so third-party tools can keep submitting on the site's behalf.

get_layout

ChatGPT
Get a page layout by ID. Returns both live and staged content fields.

get_local_search_scan

ChatGPT
One local search scan: the business's rank at every grid point as compact rows (north first, west to east; '-' not in the top 20, 'x' failed, '.' not checked yet, '_' not part of the scan), the metrics and their change, the competitors that rank best over the area, and the keyword's recent scans. Pass scan_id (from get_local_search_summary or list_local_search_scans), or keyword for that keyword's latest completed scan (with campaign_id when the account has more than one campaign). Pass competitor to also get that business's own grid, and row and col to see which listings came back at one point.

get_local_search_summary

ChatGPT
How the business ranks in Google Maps searches around it, and what changed. Local search scans a grid of points around the business for each tracked keyword on a schedule (weekly, every other week or monthly), and records the business's rank at each point. Returns every campaign (or one, with campaign_id) with each keyword's latest numbers: average_rank (mean over the grid, 21 = not in the top 20, lower is better), top3_percent and found_percent (share of points in the top 3 and top 20), the change since the scan before, changes (one plain sentence per keyword) and settings (the grid and schedule). Start here; use get_local_search_scan to see one keyword's map and competitors. With no campaigns, create one with find_local_search_business and create_local_search_campaign.

get_order

ChatGPT
Get one order: totals, addresses, notes, the discount codes applied with what each took off the goods and shipping, its lines (with SKU, each line's discount share, and how many units are shipped and refunded), its shipments and its refunds.

get_page

ChatGPT
Get a CMS page by ID. Returns both live (heex/css/js) and staged (heex_staged/css_staged/js_staged) content. Staged fields contain unpublished edits.

get_page_speed

ChatGPT
Page speed of the live site from Google PageSpeed Insights (Lighthouse lab tests). Every published page, blog post, the blog index and one sample product and collection page (at most 500 per site, home page and busiest pages first) is tested on mobile and desktop on the account's schedule (weekly by default; set in the app's Page speed settings, which can also pause it), and again about ten minutes after a page is published unless that is turned off. Without path: a summary (median score 0-100, LCP, CLS and TBT per strategy, with counts of good / needs_improvement / poor pages) and the pages worst first, each with its latest mobile and desktop result. With path: that page's latest result per strategy with the biggest opportunities in plain English (brightsite_note says where BrightSite already handles part of the fix), real-visitor field data when Google has enough traffic for it, and the score history. Google's ratings: score 90+ good, 50-89 needs improvement, under 50 poor; LCP 2.5s / 4s; CLS 0.1 / 0.25; TBT 200ms / 600ms. status "running" means tests are waiting; call again in a few minutes. Start a test with run_page_speed.

get_post

ChatGPT
Get a blog post by ID. Returns both live (content/excerpt) and staged (content_staged/excerpt_staged) fields.

get_product

ChatGPT
Get one catalog product with its variants, options, media, and (for a digital product) its downloadable files.

get_rank_tracker_summary

ChatGPT
Where the site ranks in Google's organic search results, and what changed. The rank tracker checks each tracked keyword on the project's schedule (daily, or weekly on one day) from the project's location (a country, state, city or ZIP code) (top 50 results, on mobile and desktop; the numbers reported are mobile). Returns every project (or one, with project_id) with visibility (the percent of possible clicks its keywords get), average_position (of the keywords that rank; lower is better), estimated monthly traffic, keywords in the top 10, each with its change over the last 7 days, counts by position range, and changes (sentences on the biggest moves). usage shows the account's keyword and project limits. Start here; use list_rank_keywords for every keyword's position. Projects are created in the dashboard under SEO > Rank tracker.

get_sales_report

ChatGPT
Sales for the last days (default 30) against the period before: order count, gross and net revenue, refunds and average order, best sellers by units sold (with their revenue), orders by payment status, and the work waiting (orders to ship, payment issues, low-stock variants). The same figures as the store's Reports page and dashboard; use it for revenue and best-seller questions rather than adding up list_orders. Amounts are in minor units, with a formatted copy under display. Test orders are excluded.

get_site_identity

ChatGPT
Get site identity and structured data settings. Includes site title, tagline, business info (type, description, phone, email, address, coordinates), social profiles, opening hours, and price range. These fields power the site-wide Organization/LocalBusiness JSON-LD that's emitted on every page. For per-page schema (FAQPage, Article, Product, raw JSON-LD), see the structured_data key inside params_schema_staged on update_page.

get_social_account

ChatGPT
Get one connected social account with live account_info from the platform. For TikTok, account_info is the creator info: creator_nickname, privacy_level_options, comment_disabled, duet_disabled, stitch_disabled and max_video_post_duration_sec. A TikTok post must set options.privacy_level to one of privacy_level_options (there is no default), must not turn on an interaction the creator has disabled, and its video must fit the max duration. Other platforms return an empty account_info. account_info is null and account_info_error says why when the platform cannot be reached or the account needs reconnecting.

get_social_post

ChatGPT
Get one social post in full: body, link, media, each account's target (text override, platform options, status, live URL, last error) and, while the post is editable, its validation issues per account. Fix every issue with level error before schedule_social_post; warnings do not block.

get_staging_status

ChatGPT
Get the account's staging status: whether a staging site exists, the live and staging sites, and whether the most recent promotion can be undone by restoring the previous site.

get_store

ChatGPT
Get the account's store: name, country, currency, whether checkout is on, and the steps still needed before it can take orders. store is null when the account has none yet (setup_store creates it).

get_tax_settings

ChatGPT
Get how the store collects tax: the mode (none or manual rates; Stripe Tax is not available with BrightSite's checkout for now, and a store left on it takes no orders), whether prices include tax, and whether tax is ready for checkout. list_tax_rates returns the manual rates.

get_template

ChatGPT
Platform-admin tool. Get one site template by ID or slug, including where its zip is stored.

get_top_pages

ChatGPT
Get top pages by views

get_top_referrers

ChatGPT
Get top traffic referrers/sources

get_tracking_settings

ChatGPT
Get the account's analytics, tag-management, and search-console integration IDs: Google Analytics 4 (GA4), Google Tag Manager (GTM), Facebook Pixel, and Google/Bing site-verification codes. These are account-scoped (one set per account, shared across all of the account's sites and preserved across staging→live promotes) and are injected into the <head> of every published page. Tracking is suppressed on staging previews and in non-production environments, so it only fires on the live site.

get_version

ChatGPT
Get a specific version's full content. Use list_versions first to see available versions.

get_visits_over_time

ChatGPT
Get visits over time as a time series (views and unique visitors per interval)

import_customers_csv

ChatGPT
Import a store's past customers from CSV, e.g. a Shopify customer export or a WooCommerce customer export. Columns are read loosely: Email (required), Name or First Name + Last Name, Phone, Accepts Marketing / Accepts Email Marketing, and an address under Default Address (Shopify), billing_/shipping_ (WooCommerce) or unprefixed (Address1, City, State/Province, Zip/Postcode, Country). Customers are matched by email, never duplicated: an existing customer only has a blank name or phone filled in, their marketing choice is never changed, and an address already saved is not added twice. An unusable address is a warning and the customer is imported without it. Nothing is written unless every row is valid.

import_email_contacts_csv

ChatGPT
Import contacts from CSV text with a header row, the same as the dashboard's import: at most 5 MB and 50,000 rows, the plan's contact limit, and a few imports an hour. Only import people who agreed to receive email, and say how in consent (required). New contacts are added as subscribed; existing ones keep their status and get tags merged and blank names filled; addresses that unsubscribed, bounced or complained are skipped. Columns are detected from the headers unless mapping names them.

import_orders_csv

ChatGPT
Import a store's past orders from CSV so customer history, spend and verified-purchase review badges carry over. Reads a WooCommerce order export (Order Number, Order Status, Order Date, SKU, Item Name, Quantity, Item Cost, Address 1&2 (Billing)... or WooCommerce's line_items column), a Shopify orders export, or our export_orders_csv shape=lines. One row per line item, grouped by order number. Imported orders keep their original number and date, are marked imported, and send no email, move no stock, charge nothing and fire no events. Lines are linked to products by SKU (then by title); customers are found or created by email. Statuses: completed = paid and fulfilled, processing = paid, on-hold/pending = pending, cancelled, refunded; no status column means paid. An order number already imported is skipped, so a file can be re-imported; a number used by an order placed in this store is an error. Needs the store set up (its currency is the default). Nothing is written unless every row is valid.

invite_team_member

ChatGPT
Invite someone to join the account's team by email. Role can be a built-in role (admin, member, viewer) or a custom role's name — see list_org_roles.

list_accounts

ChatGPT
List all accounts/organizations you have access to. Use the returned IDs as account_id in other tools.

list_ai_search_runs

ChatGPT
A campaign's AI visibility checks, newest first, in every status (pending, running, completed, failed). Use it for the history of the numbers over time or to find a check that failed. Read one in full with get_ai_search_run.

list_collection_products

ChatGPT
List the products in a collection, in their merchandised order.

list_collections

ChatGPT
List the store's product collections.

list_commerce_templates

ChatGPT
List the storefront templates (one per kind: styles, product, collection, cart, checkout, checkout_return, sign_in, register, forgot_password, reset_password, account, order) with their publish state. Use get_commerce_template for the HEEx/CSS. The styles kind is the store styles stylesheet: CSS only, loaded on every storefront page, styling the cart, checkout and account blocks through their bs- classes (bs-button--primary, bs-form__input, bs-cart__summary, ...) and the --bs-store-* variables at its top.

list_components

ChatGPT
List all reusable components. Embed in pages/layouts via component("slug") in HEEx templates.

list_customers

ChatGPT
List the store's customers (shoppers who registered or checked out), newest first, with their order count and spend.

list_discounts

ChatGPT
List the store's discount codes, newest first, with how many times each has been used and their scope, limits and stacking.

list_dns_records

ChatGPT
List every DNS record in a custom domain's BrightSite-managed zone (A, CNAME, MX, TXT and the rest) — the same records shown on the Domains page. Only works for domains with managed_dns: true; for domains on a customer's own DNS provider, use get_dns_instructions instead. Records flagged protected: true are managed by BrightSite (the apex/www CNAMEs and the _acme-challenge delegations) and cannot be changed.

list_doc_pages

ChatGPT
List all documentation pages in sidebar order. Doc pages form a tree — use parent_id and position to understand the hierarchy.

list_domains

ChatGPT
List the account's custom domains: the primary (canonical) domain and any alias domains that 301-redirect to it. Shows each domain's lifecycle status (provisioning/active/removing), SSL certificate state across its apex+www pair, whether an alias is currently redirecting, and whether BrightSite manages its DNS zone. An account with no custom domains serves from its BrightSite subdomain.

list_email_campaigns

ChatGPT
Email campaigns send marketing email to the business's subscribed contacts. Workflow: list_email_segments to pick an audience, create_email_campaign (from blocks, from_post_id "latest" for a newsletter around the newest blog post, or html for a code email), check preflight in the result, fix issues with update_email_campaign, then schedule_email_campaign. Read results with get_email_campaign_report. Lists campaigns, newest first, with counts per status.

list_email_contacts

ChatGPT
List the account's email contacts, newest first, with counts per status and the plan's contact limit. Only subscribed and pending contacts count toward the limit, and campaigns go to subscribed contacts only. Filter by search (email or name), status, tag or segment_id.

list_email_segments

ChatGPT
List the account's segments (saved filters over contacts by tags and source), each with how many subscribed contacts a campaign to it would reach, plus all_subscribed for a campaign to everyone. Pass a segment's id as segment_id to create_email_campaign. Change segments with create_email_segment, update_email_segment and delete_email_segment.

list_email_sending_domains

ChatGPT
The account's sending domains, each with its status and the DNS records to add at its DNS host (DKIM CNAMEs, MAIL FROM MX and SPF, and DMARC when missing). Until a domain is verified, campaigns go from a shared BrightSite address.

list_error_pages

ChatGPT
List all error pages with their publish status

list_form_deliveries

ChatGPT
List notification deliveries (one per email recipient or webhook action per submission), newest first. Use it to find failing webhooks or emails. Test sends are excluded unless include_tests is true.

list_form_submissions

ChatGPT
List submissions for a form

list_forms

ChatGPT
List all forms with their publish status

list_gift_cards

ChatGPT
List the store's gift cards, newest first, with balance and status. Shows only the last four characters of each code.

list_google_review_widgets

ChatGPT
List the account's saved Google Reviews widgets. A saved widget is a named display config ("Hero badge", "Homepage wall", "Reviews page") with its own layout, theme, colors and filters, and is the way to give one placement its own look. Place one with its own helper, each item's snippet: the widget with slug hero-badge is reviews_hero_badge(), and reviews_hero_badge(%{layout: "grid"}) overrides one option (inline options still win over the widget's values). reviews(%{widget: "hero-badge"}) does the same and still works. The Default widget is the account settings (get_google_reviews_settings), placed with a plain reviews(), and is not in this list.

list_layouts

ChatGPT
List all page layouts. Layouts wrap pages with shared structure (header, nav, footer). Assign via a page's layout_id, or set one as default.

list_local_search_scans

ChatGPT
A campaign's scans, newest first, in every status: completed, running, pending and failed, including scans of keywords since removed. Use it for the full history (get_local_search_scan lists only a keyword's six most recent), to follow a keyword over time, or to find a scan that failed. Each row has the scan's numbers; read one in full with get_local_search_scan.

list_media

ChatGPT
List uploaded media files with URLs. Use returned file IDs in page/component templates: media(file_id) for responsive images, media(file_id, width: 800, aspect: "16:9") for cropped/resized, media_url(file_id) for raw URLs. Crop options: width, height, aspect ("16:9"), fit ("crop"/"contain"/"cover"), smart (focal point), align ("top"/"bottom"/"left"/"right").

list_media_folders

ChatGPT
List media folders

list_orders

ChatGPT
List the store's orders, newest first, as slim rows (no lines or addresses) with what each discount code took off. Call get_order for one order's lines, addresses, shipments and refunds. search matches the buyer's email or name, the order number, or a product title or SKU on the order.

list_org_roles

ChatGPT
List the account's roles — the built-in roles (admin, member, viewer) and any custom roles — with their permissions ("resource:verb" strings) and member counts

list_pages

ChatGPT
List all CMS pages with their publish status

list_pending_invitations

ChatGPT
List team invitations that have been sent but not yet accepted

list_posts

ChatGPT
List all blog posts with their publish status

list_products

ChatGPT
List the store's catalog products, without their description, metafields or SEO copy. Call get_product for one product's full record with its variants, options and media.

list_rank_keywords

ChatGPT
A project's tracked keywords with their Google position on mobile (null = not in the top depth, the number of results the latest check looked at: 20, 50 or 100; checks look deeper the lower a keyword ranks), whether desktop checks are on (desktop) and desktop_position (null = not found, or desktop off or not checked yet), change since the check before ("+3" up, "-2" down, "new", "entered" when it started ranking, "lost" when no longer found), the ranking URL, best position ever, tags, monthly search volume, keyword difficulty (0-100), estimated traffic, the search features the site owns (ai_overview when an AI Overview cites it, featured_snippet, local_pack and so on) and cannibalized when more than one of the site's pages rank. Sorted best position first, unranked last.

list_redirects

ChatGPT
List all URL redirects for the account

list_reviews

ChatGPT
List product reviews. Reviews are moderated: a new one is pending and invisible on the storefront until approved, so pass status "pending" for the moderation queue and "approved" for what shoppers actually see. Ordered newest first.

list_shipping_zones

ChatGPT
List the store's shipping zones in position order, with their methods (rates). Only one zone's methods are offered for an address: the most specific matching zone wins (postcode match, then region, then country, then rest of world), and equally specific zones are settled by position (lower first, see move_shipping_zone). A zone with no active method is skipped. A shopper no zone covers cannot check out.

list_social_accounts

ChatGPT
List the social media accounts connected to this BrightSite account: Instagram professional accounts, Facebook Pages, Google Business Profile locations, LinkedIn members and pages, X and TikTok. Accounts can only be connected in the BrightSite dashboard (Social > Accounts), because connecting needs the platform's sign-in in a browser; there is no MCP tool for it. Accounts with status needs_reconnect fail every post until someone reconnects them there. Workflow for posting: 1) list_social_accounts; 2) upload images or video with request_upload + complete_upload, or pick existing ones from list_media; 3) create_social_post to save a draft; 4) get_social_post and fix every issue with level error; 5) schedule_social_post, or publish_social_post_now.

list_social_posts

ChatGPT
List social posts, newest scheduled time first (drafts with no time come first). Each item shows the post's status and one target per account with that account's own status, the live post's URL once published, and the last error.

list_staging_sites

ChatGPT
List the account's sites by type: the live site, the staging site (if any), and archived sites (previous live sites that can be restored). Each includes a preview_url. Use this to see whether a staging site exists, to get a site ID to pass as the site param on content tools (to author into staging) or to restore_staging_site, and to get the staging preview_url for screenshot-verifying before promoting. Note: the preview_url requires a logged-in org member — unauthenticated requests (e.g. a headless screenshot without the session cookie) get a 404 by design, so the staging host's existence isn't revealed.

list_tax_rates

ChatGPT
List the store's manual tax rates, used when tax_mode is manual. A rate for a region wins over the country-wide rate.

list_team_members

ChatGPT
List the account's team members with their roles (built-in or custom)

list_templates

ChatGPT
Platform-admin tool. List every site template, including disabled ones, with its taxonomy, derived features, preview image and how many live sites were created from it.

list_versions

ChatGPT
List version history for any entity. Returns versions ordered by newest first.

mark_order_paid

ChatGPT
Record that a pending manual order was paid outside Stripe (cash, check, bank_transfer or other). Uses up its stock and emails the buyer their receipt. Confirm with the user first, then pass confirm: true.

move_doc_page

ChatGPT
Move a documentation page to a new parent and/or position in the sidebar. This rewrites the page's URL and every descendant's URL, leaving a redirect behind for each, so existing links keep working.

move_file

ChatGPT
Move media file(s) into a folder and/or rename them, in place. The file ID and all its URLs are preserved, so every existing reference (post feature images, page/component media() calls, site logo/icon) keeps working — unlike re-uploading, which mints a new ID and breaks them. Pass id for one file or ids for a bulk move (both accepted; ids is the way to re-file a whole library at once). Set folder_id to a folder ID to file them there, or "root" to unfile them (move to no folder). name renames and is only valid with a single id. Omitting folder_id leaves the folder unchanged (rename-only). Moving a file that is already in the target folder is a no-op, not an error, so re-sending IDs that already moved is harmless. On a bulk move, all IDs are checked before anything moves, so an unknown ID moves nothing at all. Bulk moves are NOT atomic beyond that check: if an individual move fails partway through (e.g. a file or the target folder deleted concurrently), the files already moved stay moved. The error then reports how many landed and lists the exact ids to retry with — follow that list rather than re-sending the original one. The failing file is kept in that list when it still exists and needs another attempt, and dropped only when it is genuinely gone (re-sending an unknown ID makes the whole call move nothing). Moving never destroys a file: IDs and URLs are preserved. Deleting a folder is a different matter — it permanently deletes the files inside it, so use this tool to move any files you want to keep out of a folder before deleting it.

move_shipping_zone

ChatGPT
Reorder shipping zones. Order only matters between zones that match an address equally well (two country zones both listing FR, say): the earlier one wins. Pass direction to move one place, or position for a 0-based place in the list. Renumbers the list 0..n and returns it.

pause_email_campaign

ChatGPT
Pause a sending email campaign. Nothing more goes out until resume_email_campaign.

preview_org_deletion

ChatGPT
Platform-admin tool. Shows what deleting an account would destroy: members, sites, the Stripe subscription, the store's Stripe Connect account, custom domains and their managed DNS zones (flagging email records), and templates made from it. Changes nothing. Call it before delete_org and show the user the result.

promote_domain

ChatGPT
Make an alias domain the account's primary (canonical) domain. THIS CHANGES THE SITE'S CANONICAL URL: search engines will see every page move to the new domain, sitemaps and structured data re-issue under it, and the former primary becomes an alias that 301-redirects — preserving its link equity. Only an alias whose certificate is active on the account's canonical variant (apex or www, per the site's www preference) can be promoted. Roles swap atomically; no certificates are reissued and neither hostname goes down.

promote_staging

ChatGPT
Promote the account's staging site to live: the public domain will serve the staging content, the previously-live site is archived (restorable via restore_staging_site), and account-level data (domain, analytics, form submissions, team, billing) is unaffected. Runs in the BACKGROUND — it validates the staging content and takes a full backup of the live site first, which takes a while — so this returns immediately with status "promoting". Poll get_staging_status until the staging site is gone and the live site is the former staging site.

publish_blog_listing_design

ChatGPT
Publish the blog listing page design — copies staged content to live fields.

publish_blog_post_card_design

ChatGPT
Publish the blog post card design — copies staged content to live fields.

publish_blog_template

ChatGPT
Publish the blog post template — copies staged content to live fields.

publish_component

ChatGPT
Publish a component — copies staged content to live fields.

publish_doc_page

ChatGPT
Publish a documentation page — copies staged content to live fields.

publish_docs_article_design

ChatGPT
Publish the docs article design — copies staged content to live fields.

publish_docs_index_design

ChatGPT
Publish the docs landing page design — copies staged content to live fields.

publish_error_page

ChatGPT
Publish an error page — copies staged content to live fields.

publish_form

ChatGPT
Publish a form — copies staged content to live fields.

publish_global_code

ChatGPT
Publish global code — copies staged CSS/JS/Tailwind config to the live fields so changes appear on the public site.

publish_layout

ChatGPT
Publish a layout — copies staged content to live fields.

publish_page

ChatGPT
Publish a page — copies staged content (heex_staged/css_staged/js_staged) to the live fields so changes appear on the public site.

publish_post

ChatGPT
Publish a blog post — copies staged content to live fields.

publish_social_post_now

ChatGPT
Validate a social post and publish it to every account on it right now. This posts publicly on the platforms and cannot be undone from BrightSite: deleting the post later does not remove it from them. If any account fails validation nothing is sent and the error lists each problem. Publishing runs in the background; call get_social_post to see each account's result and live URL. On a failed or partially published post it goes again only to the accounts that failed; accounts it already reached are skipped, and unconfirmed ones are left for retry_social_post_target.

refresh_template

ChatGPT
Platform-admin tool. Replace a site template's content with a fresh export of an account's live site, for example after fixing the site the template was built from. Review the site first: the whole live site, product catalog included, replaces the stored zip. Features are derived again and the patch version is bumped. The preview is kept unless preview_file_id is given. Sites already created from the template are not changed.

refund_order

ChatGPT
Refund money to the buyer through Stripe, out of the merchant's balance. An order marked paid by cash, check, bank transfer or other (payment_method set) has no Stripe charge: its refund is only recorded, as paid back outside the store, and the merchant returns the money themselves. amount is in minor units (cents for USD, so 1500 is $15.00) and cannot exceed the order's refundable_amount (from get_order). restock returns the items to stock and needs line_quantities, or a refund of the full remaining amount. When Stripe will not refund the order's card any more (get_order failed_refund.retryable is false), pass outside_stripe: true to record a refund the merchant pays back themselves; nothing is sent to Stripe and the buyer is not emailed. Refunding units of a gift card line (or the full amount) disables the cards those units issued; a partly spent card refuses unless allow_spent_gift_cards is true, and a partial refund that leaves gift card units out must leave their value refundable. Money cannot be taken back once refunded: confirm the amount with the user first, then pass confirm: true.

remove_domain

ChatGPT
Remove a custom domain from the account. The domain stops routing immediately and its Cloudflare resources are torn down in the background; the hostname stays reserved to the account until teardown is confirmed, then becomes claimable by anyone. Removing the primary is refused while alias domains still point at it — promote a replacement first (promote_domain), or remove the aliases. Removing the last primary makes the site serve from its BrightSite subdomain again.

remove_email_sending_domain

ChatGPT
Remove a sending domain and release it at the email provider. Refused while a scheduled, sending or paused campaign sends from it.

remove_products_from_collection

ChatGPT
Take one or more products out of a collection. The products stay in the catalog; only their membership of this collection goes. Products not in the collection are skipped.

remove_rank_keywords

ChatGPT
Stop tracking keywords in a project, deleting their position history. This cannot be undone.

remove_team_member

ChatGPT
Remove a member from the account's team. You cannot remove yourself, and the last admin cannot be removed.

reorder_collection_products

ChatGPT
Set the merchandised order of a collection's products, the order its page shows them in under the default sort. Pass product IDs first shown first; products left out keep their current order after the listed ones.

reorder_product_media

ChatGPT
Set the order of a product's gallery images. Pass the product media ids (the id in get_product's media list, not the file_id) first shown first. Images left out keep their current order after the listed ones.

request_upload

ChatGPT
Get a presigned URL for uploading a file from a remote source (e.g. downloading from a URL). Step 1 of 2: call this to get an upload_url and file_id, then HTTP PUT the raw file bytes to upload_url with the correct Content-Type header. After the PUT succeeds, call complete_upload with the file_id to create the media record. For local files, use upload_file instead.

resend_invitation

ChatGPT
Resend the invitation email for a pending team invitation. See list_pending_invitations.

resend_order_confirmation

ChatGPT
Email the buyer their order receipt again, e.g. when they lost it. Not for a canceled or unpaid order.

reset_commerce_template

ChatGPT
Reset a storefront page template's staged HEEx/CSS/JS to the packaged default. The live design is untouched until you publish_commerce_template.

restore_staging_site

ChatGPT
Restore a previously-live (archived) site as the account's live site: the archived site becomes live and the current live site is archived (a pointer flip — fast and synchronous). Pass site_id to restore a SPECIFIC archived site (use list_staging_sites to find it); OMIT site_id to undo the most recent promotion (restore the site it archived).

restore_version

ChatGPT
Restore an entity to a previous version. Writes version content to BOTH live and staged fields. Does NOT create a new version — the next publish will.

restyle_site

ChatGPT
Restyle the whole site from one line describing the look you want, for example "an 18th century printed book", "a cyberpunk city in the rain" or "like Stripe". Sets the palette, typefaces, corner rounding, borders, shadows and spacing together, and every page, layout, component, blog post, docs page and storefront block follows, because they all read the same tokens. Use this rather than update_design when the user describes a FEELING; use update_design when they name specific values. Changes are staged: call publish_design to push live. Returns "on brief" and "coherent" scores. Report both, including when they are low, rather than presenting a weak result as a success. A bare brand name is a thin brief and comes back with needs_detail set, asking for three adjectives; pass those back in the brief rather than guessing.

resubscribe_email_contact

ChatGPT
Resubscribe an unsubscribed contact who asked to receive email again. consent (required) says how they asked and becomes their consent record. Bounced and complained contacts cannot be resubscribed. The plan's contact limit applies.

resume_email_campaign

ChatGPT
Resume a paused email campaign: sending continues to the recipients it has not reached. Runs the preflight check and today's sending cap first, and refuses with the issues to fix.

retry_form_delivery

ChatGPT
Send a failed or cancelled notification delivery again, using the action's current settings (fix the webhook with update_form first). Pass delivery_id for one, or retry_all_failed: true to retry every failed delivery (up to 500), optionally narrowed by form_id, action_id and since. Earlier attempts are kept.

retry_social_post_target

ChatGPT
Publish one account of a social post again after it failed or ended unconfirmed. Target IDs come from get_social_post. Fix the cause first (reconnect the account). Refused for a canceled post. WARNING: unconfirmed means the platform got the publish request but never answered, so the post may already be live. Check the profile before retrying an unconfirmed target, or it may post twice.

run_local_search_scan

ChatGPT
Rescan one keyword now, live. Each point is a paid Google Maps search, so the account gets a limited number of manual rescans a month across its campaigns (manual_rescans_left in get_local_search_summary; they start again on the 1st), and scans pause for the day when a daily spend limit is reached. Results arrive over a minute or two: call get_local_search_scan with the returned scan_id to read them (status running until done). Scheduled scans run on their own, and new keywords get their first scan when added; use this after changing the area or the business's listing.

run_page_speed

ChatGPT
Test the live site's page speed now with Google PageSpeed Insights, on mobile and desktop. Without path every page is queued (once an hour per site); with path only that published page (a few dozen single-page tests an hour per site). Each test takes 10 to 30 seconds and a whole site takes several minutes, so read the results afterwards with get_page_speed. Pages are also tested on the account's schedule (weekly by default) and about ten minutes after each publish, so this is only needed right after a fix.

run_rank_check

ChatGPT
Check positions now, for every keyword in a project or one (on mobile, and on desktop for keywords with desktop on). Checks run on their own on the project's schedule, and this works while they are paused too; use it after changing the site or adding keywords. Each keyword is a paid search, so a project gets a few manual checks a day (manual_checks_left_today in get_rank_tracker_summary). Results are usually ready within a few minutes: read them with list_rank_keywords (checking is true until done).

schedule_email_campaign

ChatGPT
Schedule a draft email campaign to send at scheduled_at, or right away with send_now. This emails every recipient in its audience in the business's name and cannot be recalled once sent, so confirm with the user first. The preflight check runs first; if anything blocks sending, nothing is scheduled and the error says what to fix. Recipients are counted when it starts. unschedule_email_campaign returns a scheduled campaign to draft.

schedule_social_post

ChatGPT
Validate a social post and schedule it to publish at scheduled_at (or the time already saved on it). Every account is checked against its platform's rules first; if any fails, nothing is scheduled and the error lists each problem with its platform. It then goes out within a minute of the time, to every account on it. To post right away use publish_social_post_now. To stop it, unschedule_social_post (back to draft) or cancel_social_post.

search_replace

ChatGPT
Surgically find-and-replace text within a specific field of any entity. Avoids re-uploading entire content bodies. Operations are applied sequentially (output of op N is input to op N+1). Changes go to staged fields only — call the appropriate publish tool to push live.

send_email_campaign_now

ChatGPT
Send a draft or scheduled email campaign right away to everyone in its audience, in the business's name. Sent email cannot be recalled, so confirm with the user first. Runs the same preflight as the dashboard's review screen; if anything blocks sending, nothing is sent and the error lists each issue to fix.

send_email_test

ChatGPT
Send an email campaign as a test to up to 5 addresses: the subject starts with [Test], nothing is tracked and it counts toward no limit. Addresses that unsubscribed, bounced or complained are refused. Rate limited per user.

set_gift_card_balance

ChatGPT
Set a gift card's balance by hand (correct a mistake, top it up). The difference is recorded in the card's history. Changes spendable money: confirm with the user first, then pass confirm: true.

set_indexnow_enabled

ChatGPT
Turn the account's automatic IndexNow submission on or off. When on (the default), publishing, updating or deleting a page, post or redirect submits the changed URL to participating search engines. Turning it off stops automatic submission but keeps the verification key file served, so third-party tools that submit on the site's behalf keep working. This does not affect whether the site is indexable — it only controls whether BrightSite pushes changes.

set_rank_keywords_desktop

ChatGPT
Turn desktop checks on or off for tracked keywords. Every keyword is checked on mobile; with desktop on it is checked on desktop too and counts twice against the account's keyword limit. Turning it on starts a first desktop check now (a paid search); turning it off keeps the desktop history.

set_submission_spam

ChatGPT
Mark a form submission as spam or not spam. Marking spam moves it to the spam folder. Marking not spam moves it back to the inbox and sends its email and webhook notifications if they were held (once; a submission whose notifications already went sends nothing again). The spam check's own verdict is kept beside the override.

setup_store

ChatGPT
Create the account's store if it has none, so add-to-cart works on the storefront. Call it when building a shop. The name, country and currency start as suggestions from the site identity; pass them to change the suggestions. The merchant must confirm country and currency on the store settings page before connecting Stripe, and they cannot change after that, so this tool never confirms them and errors once they are confirmed. Checkout stays off until the merchant finishes setup.

staging_diff

ChatGPT
Summarize what differs between the account's staging site and its live site: per-content-type counts of added/modified/removed items, plus 'drift' (live items edited after the staging copy was made, which a promote would replace).

submit_all_to_indexnow

ChatGPT
Ask search engines to recrawl every published page, blog post and the blog listing for this account, in one full-site IndexNow submission. Use it once after connecting a custom domain or re-enabling instant indexing — routine content changes are submitted automatically and need no call. Returns an error when the account is not eligible (automatic submission off, or no live custom domain), because a submission would be silently discarded.

suggest_ai_search_prompts

ChatGPT
Suggest questions to track in AI visibility, as customers would ask an AI assistant. Pass campaign_id for more questions for a campaign (never repeating one it already asks), or category, city and region for a new campaign. ChatGPT is only asked questions that name the city or state, so most suggestions do. Nothing is saved: add them with update_ai_search_prompts, or pass them as prompts to create_ai_search_campaign.

sync_google_reviews

ChatGPT
Fetch the latest reviews from the account's connected Google Business Profile now (they also refresh automatically every few hours). Returns an error with connect instructions if Google isn't connected yet.

tag_email_contacts

ChatGPT
Add tags to contacts: contact_ids, or every contact matching the filters (search, status, tag, segment_id), or all: true for every contact.

unpublish_doc_page

ChatGPT
Unpublish a documentation page — reverts it to draft so it is no longer visible on the public docs site. Its published children stay reachable.

unpublish_error_page

ChatGPT
Unpublish an error page — reverts it to draft status.

unpublish_page

ChatGPT
Unpublish a page — reverts it to draft status so it's no longer visible on the public site.

unpublish_post

ChatGPT
Unpublish a blog post — reverts it to draft status so it's no longer visible on the public site.

unschedule_email_campaign

ChatGPT
Move a scheduled email campaign back to draft so it is not sent. A campaign already sending can be paused with pause_email_campaign or canceled with cancel_email_campaign.

unschedule_social_post

ChatGPT
Move a scheduled social post back to draft. It keeps its content and planned time; schedule it again with schedule_social_post.

unsubscribe_email_contact

ChatGPT
Unsubscribe a contact: they get no more campaigns and the address goes on the suppression list. resubscribe_email_contact undoes it only if the person asks.

untag_email_contacts

ChatGPT
Remove tags from contacts: contact_ids, or every contact matching the filters (search, status, tag, segment_id), or all: true for every contact.

update_ai_search_campaign

ChatGPT
Change an AI visibility campaign: the business's name, aliases, domains, category, city, region, location, cid or phone, whether Claude (API) is asked, or the check schedule (day, hour, time zone and frequency), or pause or resume automatic checks. Pass only what changes; read the current values from settings in get_ai_search_summary. A schedule change moves the next automatic check. Changes apply from the next check; questions are changed with update_ai_search_prompts.

update_ai_search_prompts

ChatGPT
Add, remove or reorder a campaign's questions (at most max_prompts). Removals happen first, so a full campaign can swap questions in one call; on an error nothing changes. Questions are matched by text (ignoring case) or ID. Past checks keep the questions they asked. order sets the display order: list questions first to last, and any left out keep their order after the listed ones. chatgpt_skips lists the questions ChatGPT will not be asked because they name neither the city nor the state. New questions are first asked at the next check, or now with run_ai_search.

update_blog_listing_design

ChatGPT
Update the blog listing page design. Changes go to staged fields — call publish_blog_listing_design to push live.

update_blog_post_card_design

ChatGPT
Update the blog post card design. Changes go to staged fields — call publish_blog_post_card_design to push live.

update_blog_settings

ChatGPT
Update blog-wide settings. Use enabled to turn the blog on/off entirely, listing_url to configure where the blog index lives, and other fields to control display, comments, social sharing, and layout assignments. Changes apply immediately — no staging/publish flow.

update_blog_template

ChatGPT
Update the blog post template. Changes go to staged fields — call publish_blog_template to push live.

update_builtin_content

ChatGPT
Update a builtin component's (site navigation, footer, or cookie consent banner) content and settings — the same values the in-app Navigation/Footer/Cookie Consent editors manage. Changes apply LIVE immediately (no publish step; use a staging site to stage them). values is a JSON object string; keys merge into the current values, omitted keys are untouched, and collections replace wholesale. Read get_builtin_content first for current values and the authoritative props_schema. NAVIGATION values: items (list of {label, page (page ID) OR url, new_tab, children, promo_*}), buttons (list of {label, page/url, new_tab, style: solid|outline}), layout (links-right|links-center|links-left|stacked), show_logo (bool), dropdown_style (dropdown|mega), sticky (bool). MENU NESTING (max 3 levels): a top-level item's children are its dropdown items. Each dropdown item is either a plain link (default, or type: "link") or a SECTION — type: "section", whose label is a heading and whose own children are that section's links. A section is how you build a mega menu's labelled columns; it is not clickable, so give it no page/url. A section may also carry image (media file ID) — an optional picture rendered ABOVE its heading, for image-led menu columns; omit or leave "" for none. Sections are the LAST level: their links take no children. Omitting type means "link". A section must have at least one link. MEGA-MENU PANEL (optional, on TOP-LEVEL items only, all default "" and render nothing when empty): promo_image (media file ID), promo_label (e.g. "MOST POPULAR"), promo_link_label (e.g. "VIEW ALL SERVICES"), promo_page (page ID) / promo_url. Set dropdown_style to "mega" for the full-width panel these are designed for. FOOTER values: columns (list of {title, links: [{label, page/url, new_tab}]}), layout (columns|brand|centered|minimal), show_logo (bool), copyright (text, "" = automatic), social_style (icon|icon_text|text|hidden). Footer social ACCOUNTS come from site identity (update_site_identity social_profiles), not from here. COOKIE_CONSENT values: enabled (bool — when true the banner shows automatically on every page of the site, no layout edit needed), message (text), accept_label, show_decline (bool), decline_label, policy_label, policy_page (page ID) / policy_url, position (bottom|bottom-left|bottom-right), theme (dark|light). Opt-out model: third-party trackers (GA4/GTM/Pixel) run until a visitor declines, then stop from their next page load; BrightSite's own cookieless analytics is unaffected. Set a link with page (internal page ID — survives renames) or url (external/custom path); a non-empty url overrides page. Invalid keys or option values return a descriptive error.

update_collection

ChatGPT
Update a collection's own fields. Status changes go through set_collection_status; membership through add_products_to_collection, remove_products_from_collection and reorder_collection_products. Changing the slug writes a 301 redirect from the old collection URL automatically.

update_commerce_template

ChatGPT
Update a storefront page template. Changes go to staged fields, call publish_commerce_template to push live.

update_component

ChatGPT
Update a reusable component. Content changes go to staged fields — call publish_component to push live.

update_design

ChatGPT
Change the site's design. This is the ONE call that restyles everything: it regenerates the Tailwind theme block, the storefront's variables and the flags on <html>, so pages, layout chrome, components, blog, docs and the cart all follow. Fields you leave out keep their current value. Changes are staged: call publish_design to push live. Colors are hex strings. Only color_brand, color_ink and color_surface need setting: color_brand_hover, color_brand_soft, color_brand_contrast, color_ink_muted, color_surface_raised, color_canvas, color_rule, color_success, color_warning and color_danger are DERIVED from those three in OKLCH and keep following them. Set one of those only to pin it, which stops it tracking the brand. Other fields: font_display, font_sans, font_mono (family names), google_families ([{family, weights}]: the WEIGHTS to load for a family that font_display, font_sans or font_mono already names; any other family is dropped and named in the result's warnings, so to add a Google font set one of those three to its name), font_size_base (rem), font_scale, font_weight_body, font_weight_heading, font_tracking_heading (em), radius_control and radius_surface (rem), border_width (px), border_style (full | quiet | none), shadow_surface and shadow_overlay (none | soft | medium | hard | emissive), space_unit and space_section (rem), mode (light | dark), surface_finish (flat | highlight | gradient | glass), texture (none | grid | dots | paper | noise).

update_discount

ChatGPT
Change a discount code. Only the fields passed change; each id list passed replaces the whole list. Pass active: false to pause it; its usage count is kept.

update_doc_page

ChatGPT
Update a documentation page. Body edits are staged — call publish_doc_page to make them live. To move a page in the tree, use move_doc_page instead: changing the parent rewrites URLs and needs its own operation.

update_docs_article_design

ChatGPT
Update the docs article design — the skin shared by every doc page. Changes go to staged fields; call publish_docs_article_design to push live.

update_docs_index_design

ChatGPT
Update the docs landing page design. Changes go to staged fields — call publish_docs_index_design to push live.

update_docs_search_design

ChatGPT
Update the docs search results design. Changes go to staged fields; call publish_docs_search_design to push live.

update_docs_settings

ChatGPT
Update documentation settings. base_url is NOT settable here — moving the docs root rewrites every doc page's URL and emits redirects, so it is a separate operation rather than a field write.

update_email_contact

ChatGPT
Change a contact's first_name, last_name or tags. tags replaces the whole list; to add or remove some, use tag_email_contacts or untag_email_contacts.

update_email_segment

ChatGPT
Change a segment's name or rules. Only the fields you pass change. Campaigns using it are counted again when they send.

update_email_settings

ChatGPT
Change Email settings. Only the fields you pass change. physical_address cannot be blank. With double_opt_in, people who sign up through forms confirm by email before they are subscribed. unsubscribe_page customizes the page recipients land on after clicking Unsubscribe.

update_error_page

ChatGPT
Update an error page. Content changes go to staged fields — call publish_error_page to push live.

update_form

ChatGPT
Update a form. Content changes go to staged fields — call publish_form to push live.

update_fulfillment

ChatGPT
Correct a shipment's carrier or tracking details. What the shipment contains cannot change: cancel it and record a new one instead.

update_global_code

ChatGPT
Update global CSS, JavaScript, and/or Tailwind config that applies to all pages on the site. Changes go to staged fields — call publish_global_code to push live.

update_google_reviews_settings

ChatGPT
Update the Google Reviews widget's display settings for the account. These apply to every reviews() / review_badge() placement (unless overridden per-instance in code). Only the display config is settable here — the Google account connection itself is a browser-only step (see get_google_reviews_settings). Colors are hex like #14b8a6; pass an empty string to clear a color and fall back to the theme default. Custom colors only take effect when theme is 'custom'.

update_layout

ChatGPT
Update a page layout. Content changes go to staged fields — call publish_layout to push live.

update_local_search_campaign

ChatGPT
Change a campaign's name, area or scan schedule (day, hour, time zone and frequency), or pause or resume its automatic scans. Pass only what changes; read the current values from settings in get_local_search_summary. Moving or resizing the grid (center, grid_size, spacing_miles or shape) starts the switched-off points over: the ones in excluded_points, plus the points on water while skip_water is on. Past scans keep the area they were scanned with. The new area is used from the next scan; rescan a keyword now with run_local_search_scan. Keywords are changed with update_local_search_keywords.

update_local_search_keywords

ChatGPT
Add, remove or reorder a campaign's tracked keywords (at most max_keywords per campaign, from get_local_search_summary). Removals happen first, so a full campaign can swap keywords in one call. Matching ignores case; keywords already tracked are skipped. Removing a keyword keeps its past scans. New keywords are first scanned at the next scheduled scan, or now with run_local_search_scan. order sets the display order: list keywords first to last, and any left out keep their order after the listed ones.

update_member_role

ChatGPT
Change a team member's role. Role can be a built-in role (admin, member, viewer) or a custom role's name — see list_org_roles. The last admin cannot be demoted.

update_order_notes

ChatGPT
Set an order's notes. internal_note is private to the merchant; customer_note is shown to the shopper on their order page. Pass an empty string to clear one. Each change is logged on the order's timeline.

update_org_role

ChatGPT
Update a custom team role's name, description, or permissions. Built-in roles (admin, member, viewer) cannot be edited.

update_page

ChatGPT
Update a CMS page. Content changes go to staged fields — the live site is NOT affected until you call publish_page.

update_post

ChatGPT
Update a blog post. Content changes go to staged fields — call publish_post to push live.

update_rank_project

ChatGPT
Change when a rank tracking project's automatic checks run, or pause and resume them. check_frequency daily checks every keyword once a day at scan_hour; weekly checks once a week on scan_weekday at scan_hour (fewer paid searches, a point a week in the charts). paused true stops automatic checks and keeps the schedule (run_rank_check still works); paused false resumes them from the next scheduled slot. Pass only the fields to change; the result has the project with its schedule and a message.

update_redirect

ChatGPT
Update an existing URL redirect

update_review

ChatGPT
Edit a review's rating or text. Moderation status is separate — use set_review_status.

update_shipping_method

ChatGPT
Change a shipping method's name, type, rate, bands, thresholds or whether it is offered. rate_tiers replaces all bands.

update_shipping_zone

ChatGPT
Change a shipping zone's name or coverage. Each list passed replaces the whole list; omitted ones are kept. Only one zone's methods are offered for an address: the most specific matching zone wins (postcode match, then region, then country, then rest of world), and equally specific zones are settled by position (lower first, see move_shipping_zone). A zone with no active method is skipped.

update_site_identity

ChatGPT
Update site identity and structured data settings. Changes affect the site's <title>, meta tags, JSON-LD structured data, and social share previews. Business fields (type, description, phone, email, address, coordinates, social profiles, opening_hours) populate the Organization/LocalBusiness schema that's emitted in JSON-LD on every page (cross-referenced from each page's WebPage via a stable @id). For per-page structured data (FAQPage, Article, Product, raw JSON-LD), use the structured_data key inside params_schema_staged on update_page instead.

update_social_post

ChatGPT
Edit a draft, scheduled, failed or partially published social post. Only the fields you pass change. The post is saved as a draft: a scheduled post is unscheduled and must be scheduled again with schedule_social_post. social_account_ids keeps each remaining account's text override and options; targets replaces them. Targets already published are never changed. Same fields, limits and target options as create_social_post.

update_tax_rate

ChatGPT
Change a manual tax rate.

update_tax_settings

ChatGPT
Change how the store collects tax. tax_mode: none (not collecting) or manual (uses the tax rates from create_tax_rate). Stripe Tax is not available with BrightSite's checkout for now, so stripe is refused. tax_inclusive says whether prices already include tax. origin_address saves a head office for Stripe Tax (line1, line2, city, state, postal_code; the country is always the store's) and pushes it to Stripe; checkout does not use it.

update_template

ChatGPT
Platform-admin tool. Update a site template's details: name, description, taxonomy, enabled, default, or the preview image. The slug cannot be changed. To replace the template's content from a site, use refresh_template.

update_tracking_settings

ChatGPT
Update the account's analytics, tag-management, and search-console integration IDs. Changes apply to every published page across all of the account's sites (the scripts/meta tags are injected into the <head>) and persist across staging→live promotes. Pass an empty string to clear a field. IDs are format-validated: GA4 must look like G-XXXXXXXXXX, GTM like GTM-XXXXXXX, Facebook Pixel a 10–20 digit number. Note: GA4 and GTM can double-count pageviews if you also configure GA4 inside GTM — prefer one or the other unless you know they're deduplicated.

update_variant

ChatGPT
Update a variant's price, SKU, stock or weight. For a simple single-price product this is how you change the price after create_product — get_product returns the default variant's id.

upload_file

ChatGPT
Upload a file from a local file path. Supports images (jpg, png, webp, gif, svg, ico), videos (mp4, mov, webm), and documents (pdf, doc/docx, xls/xlsx, ppt/pptx, csv, txt, zip). Returns a file ID — use in templates with media(file_id) for responsive images, media(file_id, width: 800, aspect: "16:9") for cropped/resized, video(file_id) for video embeds, or media_url(file_id) for raw URLs.

add_domain

Claude

add_products_to_collection

Claude

cancel_invitation

Claude

complete_onboarding

Claude

complete_upload

Claude

create_collection

Claude

create_component

Claude

create_dns_record

Claude

create_doc_page

Claude

create_error_page

Claude

create_form

Claude

create_layout

Claude

create_media_folder

Claude

create_org_role

Claude

create_page

Claude

create_post

Claude

create_product

Claude

create_redirect

Claude

create_review

Claude

create_staging_site

Claude

delete_component

Claude

delete_dns_record

Claude

delete_doc_page

Claude

delete_error_page

Claude

delete_file

Claude

delete_form

Claude

delete_layout

Claude

delete_media_folder

Claude

delete_org_role

Claude

delete_page

Claude

delete_post

Claude

delete_redirect

Claude

delete_review

Claude

discard_staging_site

Claude

duplicate

Claude

export_products_csv

Claude

get_analytics

Claude

get_blog_listing_design

Claude

get_blog_post_card_design

Claude

get_blog_settings

Claude

get_blog_template

Claude

get_builtin_content

Claude

get_commerce_template

Claude

get_component

Claude

get_dns_instructions

Claude

get_doc_page

Claude

get_docs_article_design

Claude

get_docs_index_design

Claude

get_docs_settings

Claude

get_error_page

Claude

get_form

Claude

get_global_code

Claude

get_google_reviews_settings

Claude

get_google_reviews_status

Claude

get_indexnow_settings

Claude

get_layout

Claude

get_page

Claude

get_post

Claude

get_product

Claude

get_site_identity

Claude

get_staging_status

Claude

get_tracking_settings

Claude

get_version

Claude

import_products_csv

Claude

invite_team_member

Claude

list_accounts

Claude

list_collection_products

Claude

list_collections

Claude

list_commerce_templates

Claude

list_components

Claude

list_dns_records

Claude

list_doc_pages

Claude

list_domains

Claude

list_error_pages

Claude

list_form_submissions

Claude

list_forms

Claude

list_layouts

Claude

list_media

Claude

list_media_folders

Claude

list_org_roles

Claude

list_pages

Claude

list_pending_invitations

Claude

list_posts

Claude

list_products

Claude

list_redirects

Claude

list_reviews

Claude

list_staging_sites

Claude

list_team_members

Claude

list_versions

Claude

move_doc_page

Claude

move_file

Claude

promote_domain

Claude

promote_staging

Claude

publish_blog_listing_design

Claude

publish_blog_post_card_design

Claude

publish_blog_template

Claude

publish_commerce_template

Claude

publish_component

Claude

publish_doc_page

Claude

publish_docs_article_design

Claude

publish_docs_index_design

Claude

publish_error_page

Claude

publish_form

Claude

publish_global_code

Claude

publish_layout

Claude

publish_page

Claude

publish_post

Claude

remove_domain

Claude

remove_team_member

Claude

request_upload

Claude

resend_invitation

Claude

reset_commerce_template

Claude

restore_staging_site

Claude

restore_version

Claude

search_replace

Claude

set_collection_status

Claude

set_indexnow_enabled

Claude

set_product_status

Claude

set_review_status

Claude

staging_diff

Claude

submit_all_to_indexnow

Claude

sync_google_reviews

Claude

unpublish_doc_page

Claude

unpublish_error_page

Claude

unpublish_page

Claude

unpublish_post

Claude

update_blog_listing_design

Claude

update_blog_post_card_design

Claude

update_blog_settings

Claude

update_blog_template

Claude

update_builtin_content

Claude

update_commerce_template

Claude

update_component

Claude

update_dns_record

Claude

update_doc_page

Claude

update_docs_article_design

Claude

update_docs_index_design

Claude

update_docs_settings

Claude

update_error_page

Claude

update_form

Claude

update_global_code

Claude

update_google_reviews_settings

Claude

update_layout

Claude

update_member_role

Claude

update_org_role

Claude

update_page

Claude

update_post

Claude

update_product

Claude

update_redirect

Claude

update_review

Claude

update_site_identity

Claude

update_tracking_settings

Claude

update_variant

Claude

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

463

Tools

3

Prompts

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily