API reference/Sites
Change a site's settings
Try itChanges the DRAFT's phone, map search, logo for dark backgrounds, header search button, announcement strip or pop-up (the editor's own save rules). Only the fields sent change; inside announcement / popup, only the keys sent change. Live with the next publish_site; the start and end days then switch the strip and pop-up on and off by themselves.
PATCH
/api/v1/sites/{site_id}/settingsAuthentication
An API key as Authorization: Bearer or x-api-key. It needs the sites:write scope — edit draft pages and sections.
sites:writeChanges the draft or a recordIdempotency-Key optionalMCP tool: update_site_settings
Parameters
Named placeholders go in the path; the rest in a JSON body.
site_idstringPath · required- The site's id.1 to 100 characters
phonestring | nullBody · optional- As visitors read it — "(309) 526-TIRE" works: Call buttons dial the keypad digits.At most 40 characters
map_searchstring | nullBody · optional- e.g. "Community Fellowship Church, 701 S Oak Ln, Blue Grass, IA" — when the address alone lands off-centre.At most 200 characters
logo_dark_urlstring | nullBody · optional- A picture from the site's library with light lettering; null = none.At most 500 characters
header_searchbooleanBody · optionalannouncementobjectBody · optional- Merged over the current strip; null clears a field.
popupobjectBody · optional- Merged over the current pop-up; null clears a field.
Response
200 with JSON on success (schema on the right). Errors use the standard envelope; a retry with the same Idempotency-Key gets the first answer back (how retries work).
curl -X PATCH 'https://websites.workflowcorp.com/api/v1/sites/SITE_ID/settings' \
-H "Authorization: Bearer $WEBSITEBUDDY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"announcement":{"on":true,"text":"Closed Thanksgiving Day — open again Friday at 7","link_label":"See our hours","link_url":"/contact","end_date":"2026-11-26"},"popup":{"on":true,"kind":"newsletter","heading":"Get our news first","body":"One email a month. No spam.","button_label":"Sign me up","delay_seconds":8}}'{
"site_id": "SITE_ID",
"announcement": {
"on": true,
"text": "Closed Thanksgiving Day — open again Friday at 7",
"link_label": "See our hours",
"link_url": "/contact",
"end_date": "2026-11-26"
},
"popup": {
"on": true,
"kind": "newsletter",
"heading": "Get our news first",
"body": "One email a month. No spam.",
"button_label": "Sign me up",
"delay_seconds": 8
}
}{
"type": "object",
"properties": {
"site_id": {
"type": "string"
},
"business_name": {
"type": "string"
},
"phone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"phone_dials": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The number a visitor's phone dials when they tap Call (keypad letters mapped, +1 for US numbers)."
},
"address": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"map_search": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "What every map and directions link searches for instead of the address (a place name + address, or lat,lng)."
},
"logo_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"logo_dark_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The logo for dark backgrounds — the dark footer, dark designs, over photos."
},
"header_search": {
"type": "boolean",
"description": "A search button in the header (the site's /search page)."
},
"announcement": {
"type": "object",
"properties": {
"on": {
"type": "boolean"
},
"text": {
"type": "string"
},
"link_label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"link_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"start_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The site's own day, YYYY-MM-DD; null = from now."
},
"end_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Last day shown (included); null = until switched off."
},
"state": {
"type": "string",
"enum": [
"off",
"showing",
"scheduled",
"ended"
],
"description": "On the draft, today in the site's time zone."
}
},
"required": [
"on",
"text",
"link_label",
"link_url",
"start_date",
"end_date",
"state"
],
"additionalProperties": false
},
"popup": {
"type": "object",
"properties": {
"on": {
"type": "boolean"
},
"kind": {
"type": "string",
"enum": [
"notice",
"sale",
"newsletter"
]
},
"heading": {
"type": "string"
},
"body": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"offer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"button_label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"button_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"image_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"delay_seconds": {
"type": "number"
},
"start_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"end_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"state": {
"type": "string",
"enum": [
"off",
"showing",
"scheduled",
"ended"
]
}
},
"required": [
"on",
"kind",
"heading",
"body",
"offer",
"button_label",
"button_url",
"image_url",
"delay_seconds",
"start_date",
"end_date",
"state"
],
"additionalProperties": false
}
},
"required": [
"site_id",
"business_name",
"phone",
"phone_dials",
"address",
"map_search",
"logo_url",
"logo_dark_url",
"header_search",
"announcement",
"popup"
],
"additionalProperties": false
}