Save landing page settings

Overview

Create or update the landing_page widget for a company. Uploads any supplied logo/footer-logo/thumbnail images to S3 (falling back to the previously saved images when a slot is left empty). It then stores the full landing-page options blob on the company's landing_page widget row.

Choose the content type to match what you are sending:

You are sendingContent type
Settings onlyapplication/json
Any image (logoImage, youtubeThumbnail, footerLogo)multipart/form-data

All three images are optional — send only the ones you are changing. Use multipart/form-data only when attaching one, because a file cannot travel in a JSON body.

Prerequisites

  • A bearer token in the Authorization header.

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://development-api.shoutaboutus.com

Endpoint

POST /api/v1/custom-landing-page/save

Authentication

  • Requires a bearer token in the Authorization: Bearer <bearer-token> header.

  • Account bearer. company_id must sit inside your own account tree — a partner can target any company beneath it. An account user reaches only its own part of the account tree.

Rate limit

  • No rate limit.

Request body

FieldTypeRequiredDescription
company_idintegerRequiredMust be an existing account inside your own account tree.
logoImagefile (image)Optionalpng/jpg/jpeg. Header logo.
footerLogofile (image)Optionalpng/jpg/jpeg. Footer logo.
youtubeThumbnailfile (image)Optionalpng/jpg/jpeg. Video thumbnail.
logoURL, startButton*, contactButton*, content*, youtubeUrl, sliderHeading, planText, footerText, copyrightText, howItWorksText, testimonialsTextstringOptionalText props; each has a documented default when you omit it.
hideVideoToggle, sliderImagesToggle, planToggle, customPricingButtonToggle, faqToggle, socialIconToggle, howItWorksToggle, testimonialsTogglebooleanOptionalSection toggles, default false.

How it works

  • 200 with { status, message } on success.
  • 422 if company_id is missing/invalid or outside the caller's hierarchy, or an image file is the wrong type.
  • Returns an error envelope if the company is not found or an S3 upload fails.

Response

200 OK · 200

{
  "data": {
    "status": "success",
    "message": "Settings save successfully."
  }
}

422 Validation error · 422

{
  "message": "The selected company id is invalid.",
  "errors": {
    "company_id": [
      "The selected company id does not belong to your company hierarchy."
    ]
  }
}

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
422Validation error
500Unexpected server error

Example request

curl --request POST \
  --url "https://production-api.shoutaboutus.com/api/v1/custom-landing-page/save" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json' \
  --form 'company_id=123' \
  --form '[email protected]' \
  --form '[email protected]' \
  --form '[email protected]' \
  --form 'logoURL=<logoURL>' \
  --form 'startButtonText=Register Now' \
  --form 'startButtonBackgroundColor=#1459c4' \
  --form 'startButtonFontColor=#ffffff' \
  --form 'contactButtonText=Contact sales' \
  --form 'contactButtonBackgroundColor=#ffffff' \
  --form 'contactButtonFontColor=#1459c4' \
  --form 'contactButtonURL=<contactButtonURL>' \
  --form 'contentHeading=Stop dealing with the headache of responding to your reviews' \
  --form 'contentDescription=Save time, boost your ranking, and build brand loyalty.' \
  --form 'youtubeUrl=https://example.com/video.mp4' \
  --form 'hideVideoToggle=false' \
  --form 'sliderHeading=Trusted by over 10,000 local businesses' \
  --form 'sliderImagesToggle=false' \
  --form 'planText=Choose the plan that fits your needs' \
  --form 'planToggle=false' \
  --form 'customPricingButtonToggle=false' \
  --form 'faqToggle=false' \
  --form 'footerText=Personalized review response service for local businesses.' \
  --form 'copyrightText=© 2023 Shout About Us. All Rights Reserved' \
  --form 'socialIconToggle=false' \
  --form 'howItWorksToggle=false' \
  --form 'howItWorksText=How it works' \
  --form 'testimonialsToggle=false' \
  --form 'testimonialsText=You're in good company'

Did this page help you?