Publish a global document
Publishes the draft: its content becomes the published document. Answers the draft.
Access: an API key with global:publish (or a master above it: global:all, admin:all). A signed-in person may call it as far as their own permissions allow; anyone else gets 403.
Rate limit: the key’s own writes-per-minute limit, set when the key is created (default 120); over it, 429 with Retry-After.
Authorizations
Path Parameters
Response
Done.
The site-wide settings document (one per site and locale), with the fields this site adds.
Shown in the site header on the dark theme (and over the hero). Upload to the Images library first. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out.
1Optional darker logo for the light theme. If empty, the white logo is auto-inverted. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out.
1Browser tab icon — the default, also used when the browser is in dark mode. Upload a square PNG or SVG (at least 64×64) to the Images library. If empty, the bundled default icon is used. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out.
1Optional. Used when the visitor’s BROWSER or device is in light mode — this follows the browser’s color scheme, not the site’s own theme toggle. If empty, the main favicon is used everywhere. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out.
1Site-wide fallback for link previews (Open Graph): used on any page that has neither its own Social share image nor a featured image. Recommended 1200×630. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area.
Adds schema.org structured data about the business to every page, built from the Brand tab’s business name, address, phone and email plus the Social Links list. Helps search engines show rich results. Nothing is published until this is on and a business name is set.
Adds the Service Area Map’s coverage (place names, service radius) to the business structured data on every page, and the full zip-code/boundary detail on pages with a Service Area Map section. Helps search engines and AI answers understand where the business serves — there is no visual search result for this, and it never affects map-pack ranking. Keep it consistent with the areas on the business’s Google Business Profile. Demo map data is never published.
Paste the script address from your site's snippet in Plausible → Site Settings → Site Installation (it looks like https://plausible.io/js/pa-XXXXXXXX.js and is unique per site). Analytics stay off until this is set. Optional measurements (outbound links, file downloads, form submissions) are toggled in the Plausible dashboard — no change needed here. When set, a URL; empty or null when not.
Where opt-in applies, nothing non-essential runs until the visitor agrees. Everyone else sees the same banner as a notice: analytics and embedded content work immediately, and declining switches them off. The first option follows the law that is strictest about being asked first, without putting a wall in front of visitors whose law does not require one.
eu, all, notice, null Country comes from your CDN or proxy (Cloudflare’s header, or one you configure). Without it the site falls back to this, plus a browser time-zone check that quietly upgrades an apparently European visitor to opt-in. Put Cloudflare or a GeoIP header in front of the site and this setting stops mattering.
lenient, strict, null Puts the reopen control at the bottom of every page, under the “Powered by” line — where visitors look for it. Uses the reopen label from the Cookie banner wording tab. Leave this on unless the floating button above is on instead: consent must stay as easy to withdraw as it was to give.
A third-party script that has already run cannot be switched off in place: it keeps running until the next full page load (each vendor is still told about the withdrawal straight away). On, the page reloads as soon as a visitor switches a category OFF, so nothing they declined keeps running. Off by default: the reload interrupts whatever the visitor was doing, and most visitors are not in a region that requires it.
Shown beside this category’s switch in the preferences panel. Say what the visitor gains or loses, not which vendors are involved.
Shown beside this category’s switch in the preferences panel. Say what the visitor gains or loses, not which vendors are involved.
Shown beside this category’s switch in the preferences panel. Say what the visitor gains or loses, not which vendors are involved.
Shown beside this category’s switch in the preferences panel. Say what the visitor gains or loses, not which vendors are involved.
Takes the public site offline. Visitors and search engines see a “be right back” page (served with the correct temporary-outage signals, so search rankings are preserved); logged-in editors keep the full site and can continue editing. A new site starts with this on: turn it off when the site is ready to go live.
Master switch for the site’s scroll and entrance motion (section reveals, count-ups, marquees, the hero). When off, no animation code is loaded and every section appears in its final, static state. Visitors whose device requests reduced motion always get the static experience regardless of this setting.
Keeps the whole navbar (bar, logo, wordmark, links, dropdown, button and mobile menu) in its dark-theme look even when a visitor switches to the light theme, e.g. a header that always sits over a dark hero photo. While on, the light-theme header colors and the light-theme logo are not used. Off follows the site theme.
Below this width the links collapse into the mobile menu (hamburger). Raise it if you have many or long links.
md, lg, xl, null Header navigation.
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
Weight.
normal, medium, semibold, bold, extrabold, null Size.
small, normal, large, null How the hovered / active link is marked.
sweep, grow, pill, none, null Optional. Leave empty to use the site accent color.
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
Color + indicator for the current page’s link. Leave empty to use the secondary (mint) color.
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
Site default keeps the footer’s sunken surface; Solid color and Image override it. The site surface color is the fallback when a color is left empty.
default, solid, image, null Used for a Solid background (and as the fallback behind an Image). Leave empty to use the site surface color.
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area.
Scrim over the image to keep the footer legible. Leave empty to use the surface color.
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
Overlay opacity (%).
0 <= x <= 100Vertical padding.
tight, normal, roomy, null A hairline rule along the top edge of the footer.
Show “Back to top” button.
Optional logo shown at the top of the company column, used on the dark theme. Leave both footer logos empty to use the site logo (Site settings → Brand); with no logo at all the business name leads. Upload to the Images library first. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out.
1Optional darker logo for the light theme. If empty, the white logo is auto-inverted. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out.
1Logo height.
small, medium, large, null Aligns the logo within the company column (e.g. centered above the business name).
left, center, right, null The business name as a heading at the top of the column. Turn off when the logo already carries the name.
Show tagline.
Show address, phone & email.
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
Weight.
normal, medium, semibold, bold, extrabold, null Size.
small, normal, large, null A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
Weight.
normal, medium, semibold, bold, extrabold, null Size.
small, normal, large, null Each group becomes a column in the footer. Add a Legal group for Terms & Privacy, etc.
How many columns the link groups flow into. Auto fits to the available width; a fixed count packs shorter groups together (e.g. Legal stacked under Elsewhere). Groups are never split across columns.
auto, 2, 3, 4, null A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
Weight.
normal, medium, semibold, bold, extrabold, null Size.
small, normal, large, xlarge, null A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
Weight.
normal, medium, semibold, bold, extrabold, null Size.
small, normal, large, null Optional. Leave empty to use the site accent color.
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
Hover effect.
none, slide, underline, null A slow ribbon of phrases scrolling across the top of the footer. Any page can override this for itself in Page Settings → Footer.
Each phrase can carry its own icon; without one, a dot separates it from the next phrase.
Marquee speed.
slow, normal, fast, null Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.
Optional. Leave empty for the muted default.
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
Weight.
normal, medium, semibold, bold, extrabold, null A giant outlined word along the bottom of the footer. Reveals/fills on hover.
Keep it to one short word — it renders at display size. Leave empty to use the business name.
Watermark size.
display, large, medium, null Watermark alignment.
left, center, right, null Outlined letters that fill on hover one at a time, all at once, or always-solid (no ghost effect).
letter, word, solid, null Optional. Overrides the wordmark fill + outline tint. Leave empty to track the theme’s text color.
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
Type {year} where this year goes (it updates itself every January) and {business} for the business name. Left empty, the site shows “© {year} {business}. All rights reserved.”
Optional short line shown beside the copyright (e.g. a slogan or license number).
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
Weight.
normal, medium, semibold, bold, extrabold, null Size.
small, normal, large, null Render the site’s social profiles (configured in the “Social Links” tab) in the footer.
Optional small heading above the icons (e.g. “Follow us”). Leave empty for none.
In the company column (under the contact details) or as its own centered row above the copyright bar.
brand, bar, null A hairline rule above the dedicated social row, for a touch of separation from the watermark.
Icon style.
bare, outline, solid, null Icon size.
small, normal, large, xlarge, null Gap between the icons.
tight, normal, loose, null Optional. Leave empty to match the footer’s other group headings (Footer: Links tab).
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
Resting icon color. Leave empty for the muted default.
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
Hover to each platform’s own brand color, or to the site accent (or a chosen hover color).
brand, accent, null Used when “Hover color” is Accent / custom. Leave empty for the site accent.
A CSS color (#625bff, #625bffff, rgb(…), hsl(…), a color name) or a palette token’s name (--fetchski-accent).
Only these categories are accepted. Each file’s actual contents are verified by signature (magic bytes), not just its extension, so a renamed file is rejected. SVG and other script-capable formats can never be enabled here.
image, pdf, office, text The draft’s preview share key, while its share link is on: the link is the draft’s _url with aposShareKey and aposShareId (the draft’s _id) in its query. Absent otherwise, and on published documents.
"k3v9x2m7q1z8w4p6"