Update Entry Page Settings

Partially update the settings of an entry page owned by the authenticated user. Send between 1 and 5 fields per request. All values are strictly type-validated.

POST /entrypage/update

Description

This endpoint updates one to five settings fields of an entry page identified by SweepstakesToken. The entry page must exist and belong to the authenticated user. Only fields listed in the allowed whitelist are accepted, and each value is strictly type-validated before being applied. Updates are applied as a partial $set on the Settings subdocument — no other data is affected.

Authentication

This endpoint requires Bearer token authentication via the Authorization header.

Request Body

Field Type Required Description
SweepstakesToken String (UUID v4) Yes Unique identifier of the sweepstakes owning the entry page
field name(s) Mixed Yes (1–5) One to five allowed settings fields to update (see table below)

Allowed Fields

Field Type Notes
EntryPageHeadlineString
EntryPageDescriptionString
EntryPageAbbreviatedRulesString
EntryPageWidthNumberCoherent numeric value
EntryPageWidthMeasureStringOnly "%" or "px"
EntryPageBorderStringe.g. "0px dotted black"
EntryPageBackgroundColorObject{ "hexa": "#FFF" }
EntryPageBackgroundInnerColorObject{ "hexa": "#FFF" }
EntryPageMarginTopNumber
EntryPageMarginBottomNumber
EntryPageRadiusNumber
EntryPageTextColorObject{ "hexa": "#000" }
EntryPageButtonColorObject{ "hexa": "#0275d8" }
EntryPageShowOverlayBoolean
BonusEntriesSwitchBoolean
BonusEntriesValueNumber
EmailOptInSwitchBoolean
EmailOptInMessageString
TermsConditionsSwitchBoolean
TermsConditionsMessageString
SelectedOfficialRulesString (UUID v4)Token of the official rules document
ConfirmationPageHeadlineString
ConfirmationPageDescriptionString
WebExpirationMessageString
ExternalConfirmationPageURIString
ConfirmationYoutubeUrlString
ActivateWinnersSwitchBoolean
WinnersPageHeadlineString
WinnersPageDescriptionString
ExternalWinnersPageURIString
ActivateAgeGateSwitchBoolean
AgeGateHeadlineString
AgeGateDescriptionString
AgeGateMinAgeNumber
AgeGateBackgroundColorObject{ "hex": "#FFF" }
AgeGateTextColorObject{ "hex": "#000" }
ActivateAmoeSwitchBoolean
AmoeHeadlineString
AmoeDescriptionString
AmoeEntriesNumber
EnableInternationalAMOEFormBoolean
GeoLocationBoolean
GeoLocationIsRequiredToRenderPageBoolean
AllowParticipantsWithinFencesBoolean
CollectStatisticsBoolean
EnableShareWidgetBoolean
EnableProgressBarBoolean
EnableSweepstakesCountdownBoolean
EnableNumberOfParticipantsBoolean
EnableSocialWidgetBoolean
FollowFacebookSwitchBoolean
FollowXSwitchBoolean
FollowInstagramSwitchBoolean
FollowTikTokSwitchBoolean
FollowLinkedInSwitchBoolean
FollowPinterestSwitchBoolean
FollowThreadsSwitchBoolean
FollowRedditSwitchBoolean
FollowSnapchatSwitchBoolean
FollowYoutubeSwitchBoolean
FollowTwitchSwitchBoolean
BothSocialShareParticipantsAwardedSwitchBoolean
BothEmailShareParticipantsAwardedSwitchBoolean
BonusEntriesOnRegisterNumber
BonusEntriesOnShareFacebookNumber
BonusEntriesOnShareXNumber
BonusEntriesOnShareInstagramNumber
BonusEntriesOnShareTikTokNumber
BonusEntriesOnShareLinkedInNumber
BonusEntriesOnSharePinterestNumber
BonusEntriesOnShareThreadsNumber
BonusEntriesOnShareRedditNumber
BonusEntriesOnShareSnapchatNumber
BonusEntriesOnShareWhatsAppNumber
BonusEntriesOnShareTelegramNumber
BonusEntriesOnShareGenericLinkNumber
BonusEntriesOnShareEmailNumber
BonusEntriesFollowFacebookNumber
BonusEntriesFollowXNumber
BonusEntriesFollowInstagramNumber
BonusEntriesFollowTikTokNumber
BonusEntriesFollowLinkedInNumber
BonusEntriesFollowPinterestNumber
BonusEntriesFollowThreadsNumber
BonusEntriesFollowRedditNumber
BonusEntriesFollowSnapchatNumber
BonusEntriesFollowYoutubeNumber
BonusEntriesFollowTwitchNumber
SponsorFacebookProfileString or nullURL
SponsorXProfileString or nullURL
SponsorInstagramProfileString or nullURL
SponsorTikTokProfileString or nullURL
SponsorLinkedInProfileString or nullURL
SponsorPinterestProfileString or nullURL
SponsorThreadsProfileString or nullURL
SponsorRedditProfileString or nullURL
SponsorSnapchatProfileString or nullURL
SponsorYoutubeProfileString or nullURL
SponsorTwitchProfileString or nullURL

Code Examples

curl -X POST "https://api-v3.sweeppea.com/entrypage/update" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "SweepstakesToken": "uuid-v4-string", "EntryPageHeadline": "Win Big This Summer!", "BonusEntriesSwitch": true, "BonusEntriesValue": 5 }'

Response

200 OK

{ "Response": true, "Message": "Entry Page Settings Updated Successfully", "UpdatedFields": ["EntryPageHeadline", "BonusEntriesSwitch", "BonusEntriesValue"], "SweepstakesToken": "uuid-v4-string" }

Error Responses

400 Bad Request

{ "Response": false, "Message": "No Fields to Update. Provide between 1 and 5 fields to update.", "Hint": "Allowed fields: EntryPageHeadline, ...", "Code": 400 }

400 Bad Request

{ "Response": false, "Message": "Too Many Fields to Update. Maximum allowed per request is 5.", "Code": 400 }

400 Bad Request

{ "Response": false, "Message": "Field 'SomeField' is Not Allowed or Does Not Exist", "Hint": "Allowed fields: EntryPageHeadline, ...", "Code": 400 }

400 Bad Request

{ "Response": false, "Message": "BonusEntriesValue must be a number", "Code": 400 }

400 Bad Request

{ "Response": false, "Message": "SweepstakesToken is Required and Must be a Valid UUID v4", "Code": 400 }

401 Unauthorized

{ "Response": false, "Message": "Invalid or Missing Bearer Token", "Code": 401 }

403 Forbidden

{ "Response": false, "Message": "Invalid API Token", "Code": 403 }

403 Forbidden

{ "Response": false, "Message": "Account is Disabled", "Code": 403 }

404 Not Found

{ "Response": false, "Message": "Entry Page Not Found or Access Denied", "Code": 404 }

500 Internal Server Error

{ "Response": false, "Message": "Internal Server Error", "Code": 500 }

Important Notes

  • 📝 Partial Updates: Send only the fields you want to change — between 1 and 5 per request
  • 🔒 Ownership Verification: The entry page must exist and belong to the authenticated user
  • ✅ Type Validation: Every value is strictly validated against its expected type before being saved
  • 📐 Measure Field: EntryPageWidthMeasure only accepts "%" or "px"
  • 🎨 Color Fields: Must be objects — { "hexa": "#FFF" } for most, { "hex": "#FFF" } for AgeGate colors
  • 🆔 UUID Fields: SelectedOfficialRules must be a valid UUID v4 (token of an existing rules document)
  • 🔗 URL Fields: Sponsor profile fields accept a URL string or null
  • 🚫 Max 5 Fields: Requests with more than 5 fields will be rejected
  • 🔍 Not Found: Returns 404 if the entry page doesn't exist or belongs to another user