Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

Nomad Stays

REMOTE · MCP.NOMADSTAYS.COM · SCANNED AUG 3

Search remote-work accommodations worldwide; Trusted Stay Partners can manage their own listings.

+3 this week 65 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security57
Transport & Reachability100
Schema Quality & AI Usability74
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 16737 tokens (~176/item across 95 items; 76 tools + 19 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage86
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 59% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
  • Supports UI / widget rendering.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · mcp.nomadstays.com

# add to Claude Code
claude mcp add --transport http nomadstays-mcp-server https://mcp.nomadstays.com/mcp
# ~/.codex/config.toml
[mcp_servers.nomadstays-mcp-server]
url = "https://mcp.nomadstays.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "nomadstays-mcp-server": {
      "type": "remote",
      "url": "https://mcp.nomadstays.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add nomadstays-mcp-server --url https://mcp.nomadstays.com/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  nomadstays-mcp-server:
    url: "https://mcp.nomadstays.com/mcp"
// mcp.json
{
  "mcpServers": {
    "nomadstays-mcp-server": {
      "type": "http",
      "url": "https://mcp.nomadstays.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 0
    • “createStayRoom” reworded the description of “roomTypeFK” cosmetic

    1 cosmetic change on this day. Switch on “Show cosmetic changes” to see it.

  • 2 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 0
    • Tool “uploadStayPhoto” rewrote its description, which is the text the model reads security
    • Schema quality: excellent → good functional
    • “uploadStayPhoto” reworded the description of “base64” cosmetic
    • “uploadStayPhoto” reworded the description of “area” cosmetic
  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 62

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://mcp.nomadstays.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.nomadstays.com CN=YR2,O=Let's Encrypt,C=US 28 Jul 2026 26 Oct 2026 RSA 4096 SHA256-RSA 60d43306aa756e89c362b85feee6f6f3139
SANs: mcp.nomadstays.com
CN=YR2,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA 4ebd24947e24d394802d84a52fd5b319
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f
DNSSEC insecure

Validation of mcp.nomadstays.com. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
nomadstays.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.nomadstays.com/mcp Verified 200
http (plaintext) http://mcp.nomadstays.com/mcp HTTPS enforced 302 https://mcp.nomadstays.com/mcp
MCP tools — 76 exposed · ~11,135 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
getStayTypeOptions ~44

List valid values for a Stay's 'Main Accommodation Type' (stayTypeId in updateStayOrganisationalData). Requires NOMADSTAYS_MCP_AGENT_TOKEN.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

listCoworkingApplications ~92

List the caller's Coworking Applications (draft and submitted), each with a nextAction hint (provide_coworking_details, submit, awaiting_review, or accepted). Coworking has no Application Fee, so unlike Stay/Experience there is no pay_application_fee step. Call this to find an in-progress application's applicationId before resuming it. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

listExperienceApplications ~79

List the caller's Experience Applications (draft and submitted), each with a nextAction hint telling you what's needed next (provide_applicant_details, provide_experience_details, pay_application_fee, submit, awaiting_review, or accepted). Call this to find an in-progress application's applicationId before resuming it. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

listHelpCenterCategories ~38

List all available NomadStays Help Center categories. Returns category ID, name, slug, description, and article count for each category.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

listMyBookings ~119

List all Stay bookings owned by the caller's own account, most recent first, with each one's current status. Each booking includes needsAction: true if it's still unpaid, with a ready-to-use checkoutUrl — call this proactively (e.g. at the start of a session, or when the member asks what's pending) and surface any needsAction bookings to the member, since there is no other way for them to be notified of an incomplete booking through this connection. Requires NOMADSTAYS_MCP_AGENT_TOKEN with the 'bookings' scope.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

listStayApplications ~78

List the caller's Stay Applications (draft and submitted), each with a nextAction hint telling you what's needed next (provide_applicant_details, provide_property_details, pay_application_fee, submit, awaiting_review, or accepted). Call this to find an in-progress application's applicationId before resuming it. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

purchaseProduct ~195

Start a purchase of a Nomad Stays product on the caller's own behalf. If the caller already qualifies for a waiver (e.g. an existing Stay Partner re-applying), this resolves immediately with no payment step and returns status 'waived'. Otherwise it returns a checkoutUrl hosted on nomadstays.com — you must hand this URL to the member and ask them to open it in their own browser and pay; you cannot complete payment on their behalf. Poll getPurchaseStatus with the returned saleId afterwards to find out when it's actually paid. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

NameTypeReqDescription
applicationIdnumberOptional: if this purchase is paying a Stay Application's fee, pass its applicationId (from createStayApplication) so the payment is applied back to that application automatically once paid
productIdnumberyesThe product's EntryID — use 8 for the Stay Application fee

No output schema declared.

No examples provided.

quoteStayBooking ~286

Get a server-computed price and availability quote for booking a Stay package on the caller's own behalf. Price is always re-derived from the package's actual pricing tiers — never trust or reuse a price shown elsewhere. Picks the largest price tier whose length is <= the requested nights (e.g. 10 nights against 7/14/21/30-day tiers uses the 7-day tier's rate), falling back to the smallest tier if the stay is shorter than all of them. Returns a quoteId valid for about 15 minutes — call bookStay with it to actually create the booking and get a payment link. Requires the caller's token to carry the 'bookings' OAuth scope (McpMember role), separate from the listings-management 'McpAgent' scope other tools here use.

NameTypeReqDescription
adultsnumberNumber of adult guests. Defaults to 1.
checkInstringyesCheck-in date, YYYY-MM-DD
checkOutstringyesCheck-out date, YYYY-MM-DD
childrennumberNumber of child guests. Defaults to 0.
packageIdnumberyesThe Stay package's ID (from getPackages or search/browse tools)
petsnumberNumber of pets. Defaults to 0.
roomsnumberNumber of rooms to book. Defaults to 1.

No output schema declared.

No examples provided.

reorderRoomPhotos ~138

Change the display order of a room's photo gallery. fileNames must be the FULL current gallery (same set, just reordered) — call getMyStayRooms first. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

NameTypeReqDescription
fileNamesarrayyesThe complete gallery file names in the new desired order — must match the current set exactly (call getMyStayRooms first)
roomAreastringyes'photos' for the regular room gallery, 'workspace' for the room's coworking gallery
roomIdnumberyesThe room's EntryID
stayIdnumberyesThe Stay's EntryID

No output schema declared.

No examples provided.

reorderStayPhotos ~129

Change the display order of a Stay's listing or workspace photo gallery. fileNames must be the FULL current gallery (same set of files, just reordered) — call getMyStayPhotos first. This only reorders; it cannot add or remove photos. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

NameTypeReqDescription
areastringyesOnly these two areas support reordering
fileNamesarrayyesThe complete gallery file names in the new desired order — must match the current set exactly (call getMyStayPhotos first)
stayIdnumberyesThe Stay's EntryID

No output schema declared.

No examples provided.

saveCoworkingApplication ~160

Update any subset of fields on an existing, not-yet-submitted Coworking Application. Same field set and validation rules as createCoworkingApplication — only pass the fields you're changing. Fails with a 409 if the application has already been submitted. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

NameTypeReqDescription
addressstring
applicantEmailstring
applicantNamestring
applicationIdnumberyesThe application's ID
citystring
countrystringExact tbCountry.CountryName (not a country ID) — use getCountries.
coworkingNamestring
telephonestring
websitestring

No output schema declared.

No examples provided.

saveExperienceApplication ~363

Update any subset of fields on an existing, not-yet-submitted Experience Application. Same field set and validation rules as createExperienceApplication — only pass the fields you're changing. Fails with a 409 if the application has already been submitted. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

NameTypeReqDescription
applicantEmailstring
applicantFirstNamestring
applicantLastNamestring
applicationIdnumberyesThe application's ID
availabilitySupplierstring
businessModelIdnumbertbBusinessModel.EntryID — use getBusinessModels.
businessNamestring
citystring
commentsstring
daysQtystringMinimum 4 days, enforced server-side
descriptionstring
downloadSpeedstring
experienceCountryIdnumbertbCountry.CountryId — the country the application itself is filed under. Use getCountries.
experienceNamestring
hasInsuranceboolean
hasKitchenboolean
laundryFacilitiesstring
maxPaxstring
mobilestring
monthlyPricestring
overnightLocationsQtystring
postalCountryIdnumbertbCountry.CountryId — used only for the VAT check, stored on the business profile, not on the application. Use getCountries.
statestring
streetstring
tourismNumberstring
vatNumberstring
websitestring
workFacilitiesstring
zipstring

No output schema declared.

No examples provided.

saveStayApplication ~323

Update any subset of fields on an existing, not-yet-submitted Stay Application. Same field set and validation rules as createStayApplication — only pass the fields you're changing. Fails with a 409 if the application has already been submitted. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

NameTypeReqDescription
applicantEmailstring
applicantFirstNamestring
applicantLastNamestring
applicationIdnumberyesThe application's ID
availabilitySupplierstring
businessModelIdnumbertbBusinessModel.EntryID — use getBusinessModels.
businessNamestring
citystring
commentsstring
downloadSpeedstring
hasKitchenboolean
laundryFacilitiesstring
mobilestring
monthlyPricestring
numberOfRoomsstring
postalCountryIdnumbertbCountry.CountryId — used only for the VAT check, stored on the business profile, not on the application. Use getCountries.
statestring
stayCountryIdnumbertbCountry.CountryId — the country the application itself is filed under. Use getCountries.
stayNamestring
streetstring
tourismNumberstring
vatNumberstring
websitestring
workFacilitiesstring
zipstring

No output schema declared.

No examples provided.

searchHelpCenter ~67

Search NomadStays Help Center articles from the public knowledgebase endpoint and return matching title/content/slug entries.

NameTypeReqDescription
limitnumberMaximum number of results to return (default: 15)
querystringSearch term to match against Help Center knowledgebase articles

No output schema declared.

No examples provided.

signupNomadStaysAccount ~228

Creates a new NomadStays account on behalf of a person who does not have one yet. No authentication required — this is how an AI agent gets a person started. The account is created but inactive until the person clicks the confirmation link sent to their email; this call returns no session or token, so the agent cannot sign in or act as the user itself. Once confirmed, the person can log in at nomadstays.com/Account/Login and request their own MCP bearer token or OAuth grant to let an agent manage their account/listings going forward.

NameTypeReqDescription
acceptGdprbooleanyesMust be true — the person has agreed to NomadStays' GDPR terms
emailstringyesA real email address the person controls — the confirmation link is sent here and the account stays inactive until it's clicked
firstNamestringyesThe person's first name
lastNamestringyesThe person's last name
passwordstringyesAccount password, minimum 6 characters
telephonestringyesContact telephone number

No output schema declared.

No examples provided.

submitCoworkingApplication ~103

Submit a completed Coworking Application for human review. Rejects with a missingFields list if any required field is still empty. There is no Application Fee to pay for Coworking, so — unlike submitStayApplication/submitExperienceApplication — this never returns a pay_application_fee/409-unpaid response. On success the application moves to human review. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

NameTypeReqDescription
applicationIdnumberyesThe application's ID

No output schema declared.

No examples provided.

submitExperienceApplication ~112

Submit a completed Experience Application for human review. Rejects with a missingFields list if any required field is still empty, or a 409 if the Application Fee hasn't been paid/waived yet (call purchaseProduct with productId 9 and applicationId first — Experience uses product 9, NOT product 8). There is no partial/optimistic submission. On success the application moves to human review. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

NameTypeReqDescription
applicationIdnumberyesThe application's ID

No output schema declared.

No examples provided.

submitStayApplication ~117

Submit a completed Stay Application for human review. Rejects with a missingFields list if any required field is still empty, or a 409 if the Application Fee hasn't been paid/waived yet (call purchaseProduct with productId 8 and applicationId first). There is no partial/optimistic submission — everything required must already be in place. On success the application moves to human review; nothing further is needed from the agent. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

NameTypeReqDescription
applicationIdnumberyesThe application's ID

No output schema declared.

No examples provided.

updateHostBusinessProfile ~105

Update the host account's business profile (legal business name, VAT/business registration numbers). Applies to the account owning the MCP agent token, not a specific stay. Only fields supplied are changed. Does NOT touch bank or tax-ID details — those are not MCP-writable.

NameTypeReqDescription
businessNamestring
businessNumberstring
entityAccountbooleanWhether the host operates as a registered business entity
vatNumberstring

No output schema declared.

No examples provided.

updateStayContacts ~221

Update a Stay's contact/owner/manager details and social media links. Only fields supplied are changed. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

NameTypeReqDescription
bookingEmailstringEmail guests use to reach the Stay about bookings
bookingMobilestring
bookingPhonestring
facebookPagestring
hostFullNamestringDisplay name shown to guests as the host
instagramstring
linkedInstring
managerEmailstring
managerMobilestring
managerNamestringThe day-to-day contact person's name (not necessarily the owner)
ownerEmailstring
ownerMobilestring
ownerNamestring
stayIdnumberyesThe Stay's EntryID
tikTokstring
twitterstringX (Twitter) profile link
websitestring
youtubestring

No output schema declared.

No examples provided.

updateStayDetail ~81

Update a Stay's title and/or description. Requires an MCP agent token (NOMADSTAYS_MCP_AGENT_TOKEN) scoped to the owning account. Only fields supplied are changed.

NameTypeReqDescription
descriptionstringOPTIONAL: new description
stayIdnumberyesThe Stay's EntryID
titlestringOPTIONAL: new title

No output schema declared.

No examples provided.

updateStayFacilities ~156

Set which options are selected for one facility/checkbox group on a Stay — e.g. which languages are spoken. facilityDetailIds is the COMPLETE replacement list: anything not included will be UNCHECKED. Call getMyStayFacilities first to see current selections and valid IDs before changing them. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

NameTypeReqDescription
facilityDetailIdsarrayyesThe FULL list of facilityDetailId values that should be selected after this call — call getMyStayFacilities first to see valid IDs. An empty array clears all selections in this group.
groupstringyesExact facility group name, matching what getMyStayFacilities was called with
stayIdnumberyesThe Stay's EntryID

No output schema declared.

No examples provided.

updateStayOrganisationalData ~564

Update a Stay's organisational data: address, check-in/out policy, pets/children/parking, cancellation policy, accommodation type, tourism/land-registration numbers, 'Why Choose Us' reasons, and more. Only fields supplied are changed. IMPORTANT: countryId, petsAllowedId, childrenAllowedId, parkingId, cxPolicyId, and stayTypeId are lookup IDs, NOT plain text or booleans — call getCountryOptions / getAdditionalInformationOptions / getCancellationPolicyOptions / getStayTypeOptions first to find the correct ID to send. Requires an MCP agent token scoped to the owning account.

NameTypeReqDescription
addressstring
checkInFromstring
checkInTostring
checkOutFromstring
checkOutTostring
checkinLocationWhat3Wordsstringwhat3words location for guest check-in
childrenAllowedIdstringAn optionId from getAdditionalInformationOptions(filterName='Children Allowed') — NOT a boolean.
citystring
countryIdstringA country ID from getCountryOptions — NOT a country name.
customCxPolicyLinkstring
cxPolicyIdstringA cxPolicyId from getCancellationPolicyOptions.
earlyCheckInboolean
fullPaymentbooleanWhether guests must pay in full up front (vs. pay on arrival). Only settable if the Stay's country allows it — check fullPaymentAllowedByCountry from getMyStayOrganisationalData first; writing true w…
geoLatnumberMap pin latitude
geoLngnumberMap pin longitude
landRegistrationNumberstring
lateCheckoutboolean
parkingIdstringAn optionId from getAdditionalInformationOptions(filterName='Parking') — NOT a boolean.
petsAllowedIdstringAn optionId from getAdditionalInformationOptions(filterName='Pets Allowed') — NOT a boolean.
postCodestring
reason1stringFirst 'Why Choose Us' reason shown to guests
reason2string
reason3string
receiveReviewsboolean
registeredBusinessbooleanWhether the Stay is officially registered for tourism/lodging
statestring
stayIdnumberyesThe Stay's EntryID
stayTypeIdnumberA stayTypeId from getStayTypeOptions.
totalRoomsnumber
tourismNumberstring

No output schema declared.

No examples provided.

updateStayPackage ~317

Update an existing pricing package on a Stay. Supplying 'prices' replaces ALL price rows for that package. Requires an MCP agent token scoped to the owning account.

NameTypeReqDescription
advertisingEndpointstringOPTIONAL: only usable on Advertising-business-model Stays — ignored otherwise, matching the host UI which hides this field for all other business models.
currencyFKnumberCall getCurrencyOptions for valid values.
descriptionstring
endDatestringOPTIONAL: last check-in date this package is available for
isActivebooleanOPTIONAL: archive (false) or restore (true) this package — cascades to 'listed' on all its price tiers, matching the host UI's Archive/Restore actions
listedboolean
maxPaxnumber
packageIdnumberyesThe package's EntryID (tbStayPackages)
packageNamestring
pricesarrayOPTIONAL: replaces ALL price rows for this package when supplied. Exactly one entry per 7/14/21/30-night tier used.
roomTypeFKnumberCall getRoomTypeOptions for valid values.
startDatestringOPTIONAL: first check-in date this package is available for
stayIdnumberyesThe Stay's EntryID
stayRoomFKnumberThe specific room this package covers (tbStaysRoom.EntryID). Call getMyStayRooms to find valid values.

No output schema declared.

No examples provided.

updateStayRoom ~251

Update an existing room on a Stay. Only fields supplied are changed. Call getRoomTypeOptions(stayId) and getRoomFacilityOptions() first to find valid roomTypeFK/roomFacilityFk values. Requires an MCP agent token scoped to the owning account.

NameTypeReqDescription
bedsnumber
mainBedSizestring
maxPersonnumber
mcpRoomIdstringExternal MCP room identifier. NOT AVAILABLE for boutique Stays — the host UI has no field for this there, and the API will reject it.
otherBedSizestring
roomDescriptionstring
roomFacilityFkarrayThe FULL replacement list of facilityDetailId values from getRoomFacilityOptions() — anything not included will be removed (except Wi-Fi, which is always kept).
roomIdnumberyesThe room's EntryID (tbStaysRoom) — use getMyStayRooms to find it
roomTitlestring
roomTypeFKnumberA roomTypeId from getRoomTypeOptions(stayId).
stayIdnumberyesThe Stay's EntryID

No output schema declared.

No examples provided.

uploadStayPhoto ~533

Upload a photo to one of your Stay's photo areas. Supply EXACTLY ONE of 'url' (a public https:// link, e.g. a Google Drive or Dropbox share link — the server downloads it) or 'base64' (the raw image bytes, base64-encoded — use this when you already have the image data in hand, e.g. a user attached a photo in the conversation, and have nowhere public to host it first). The photo is validated against the same minimum specs as a manual upload: JPEG, PNG, or WebP, under 20MB, and a minimum resolution that depends on area. Most areas require at least 1920x1080 landscape; 'host' requires at least 1080x1350 PORTRAIT — a landscape photo will be rejected for that area. Every upload is downscaled to fit within 2560x1440 and re-encoded server-side as WebP (stripping metadata and anything that isn't genuine image data) before storage. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

NameTypeReqDescription
areastringyesWhich photo area this belongs to: - 'listing': general Stay gallery photos (multiple allowed, min 1920x1080 landscape) - 'main': the single hero/cover photo shown first for the Stay (min 1920x1080 la…
base64stringBase64-encoded JPEG, PNG, or WebP image bytes (a data:image/...;base64,... URI prefix is also accepted and stripped automatically). Supply this OR url, not both. Under ~27MB encoded (20MB image).
roomIdnumberRequired when area is 'room' — the room's EntryID (use getMyStayRooms to find it). Ignored for other areas.
stayIdnumberyesThe Stay's EntryID (use getMyStays to find it)
urlstringA public https:// URL the server can download the image from (e.g. a Google Drive or Dropbox share link). Supply this OR base64, not both.

No output schema declared.

No examples provided.