Dropto · Schema
UpdateSiteSettingsRequest
Request body of `PATCH /sites/{siteId}`.
HostingArtificial IntelligenceStatic SitesDeveloper ToolsCloud
Properties
| Name | Type | Description |
|---|---|---|
| commentAudience | nullstring | Who may comment on the site's pages: `Off` or `Invited`, in any case. Null leaves it alone. `Invited` is refused on a plan without comments (string Errors.FeedbackUnavailable); `Off` never is. It is s |
| docsMode | nullboolean | Whether the site is served through the documents viewer instead of as a plain static site. Null leaves the setting alone. Sending either this or `SpaMode` tells the server the owner has chosen, and de |
| expiresAt | nullstring | When the site should come down, as an ISO 8601 instant — or an empty string to cancel a schedule it already has. A string rather than a `DateTimeOffset?`, and the reason is the same one Name and Passw |
| expiryAction | nullstring | What the expiry does when it falls due — `Pause` or `Delete`, defaulting to `Pause` for a date an owner sets. Only read when a date is being set. Sending it alone is refused rather than stored, becaus |
| folderId | nullstring | Which of the account's folders to file the site in, or `"root"` to take it back out of every folder. Null leaves it where it is. A literal token for the root rather than a null, for the reason the oth |
| formsEnabled | nullboolean | Whether this site's hostnames accept form submissions. Null leaves the setting alone. Turning it on is refused when the account's tier does not include forms (string Errors.FormsNotAvailable); turning |
| invitedOnly | nullboolean | Whether only the people on the site's list may see it, each signed in with their own account. Null leaves the setting alone. Turning it on clears any password, since the two exclude each other, and ad |
| name | nullstring | What to call the site in the dashboard, or an empty string to clear it and fall back to the subdomain. Null leaves it alone. Cleaned by SiteNames rather than validated: a name is a label, so there is |
| password | nullstring | A new access password for the site, or an empty string to remove the gate and make it public again. Null leaves the current setting alone. The three states are deliberately carried by one nullable str |
| publicDocumentCounts | nullboolean | Whether readers of the site see each document's views and downloads in the reader's toolbar. Null leaves it alone. Allowed on every plan. The counts are of file loads, not of people, and appear within |
| spaMode | nullboolean | Whether an unmatched path should fall back to `index.html`, for a site whose routing happens in the browser. Null leaves the setting alone, and a body where every field is null is refused. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/dropto-run/json-schema/dropto-run-update-site-settings-request-schema.json",
"title": "UpdateSiteSettingsRequest",
"description": "Request body of `PATCH /sites/{siteId}`.",
"x-generated": "2026-11-06",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/dropto-run-openapi.json#/components/schemas/UpdateSiteSettingsRequest",
"properties": {
"commentAudience": {
"description": "Who may comment on the site's pages: `Off` or `Invited`, in any case. Null leaves it alone.\n\n`Invited` is refused on a plan without comments (string Errors.FeedbackUnavailable);\n`Off` never is. It is stored whatever the viewing mode, and only takes effect while the site is\ninvite-only — switching the site to public keeps the choice for when it comes back.\n`Anyone` is not accepted yet (docs/IMPLEMENTATION-PLAN.md §16.7 S11).",
"type": [
"null",
"string"
]
},
"docsMode": {
"description": "Whether the site is served through the documents viewer instead of as a plain static site. Null leaves\nthe setting alone.\n\nSending either this or `SpaMode` tells the server the owner has chosen, and detection stops\ndeciding for this site from then on. The two cannot both be on, so a client switching between modes\nsends both fields rather than only the one it is enabling.",
"type": [
"null",
"boolean"
]
},
"expiresAt": {
"description": "When the site should come down, as an ISO 8601 instant — or an empty string to cancel a schedule it\nalready has.\n\nA string rather than a `DateTimeOffset?`, and the reason is the same one Name\nand Password give: null has to keep meaning \"not sent\", so there has to be some\nother value that means \"clear it\". An empty string is that value for all three.",
"type": [
"null",
"string"
]
},
"expiryAction": {
"description": "What the expiry does when it falls due — `Pause` or `Delete`, defaulting to `Pause`\nfor a date an owner sets.\n\nOnly read when a date is being set. Sending it alone is refused rather than stored, because an\naction with no date is a decision about an event that will not happen, and storing it would answer\n200 to a request that changed nothing observable.",
"type": [
"null",
"string"
]
},
"folderId": {
"description": "Which of the account's folders to file the site in, or `\"root\"` to take it back out of every\nfolder. Null leaves it where it is.\n\nA literal token for the root rather than a null, for the reason the other clearable fields here take\nan empty string: null has to keep meaning \"not sent\". Unlike them it is a word rather than an empty\nstring, because the same token spells the root in the listing's query parameter and an empty query\nparameter already means \"absent\" — see string SiteFolderAccess.RootToken.\n\nNothing about serving depends on it, so unlike the settings around it this triggers no KV write.",
"type": [
"null",
"string"
]
},
"formsEnabled": {
"description": "Whether this site's hostnames accept form submissions. Null leaves the setting alone.\n\nTurning it on is refused when the account's tier does not include forms\n(string Errors.FormsNotAvailable); turning it off is always allowed, so a site whose tier\nchanged underneath it is never stranded switched on.\n\nThis switches the endpoint on for the site. Which forms exist and what they are called is not a\nsetting at all — it comes from `data-drop2run` in the HTML (docs/IMPLEMENTATION-PLAN.md §16.2.1 F7).",
"type": [
"null",
"boolean"
]
},
"invitedOnly": {
"description": "Whether only the people on the site's list may see it, each signed in with their own account. Null\nleaves the setting alone.\n\nTurning it on clears any password, since the two exclude each other, and adds the caller's own address\nto the list so they are not locked out; sending it together with a new password is refused. Turning it\noff is always allowed. The list is kept across both, and either change signs every invited visitor out\n— those still on the list are let back in without being asked anything.",
"type": [
"null",
"boolean"
]
},
"name": {
"description": "What to call the site in the dashboard, or an empty string to clear it and fall back to the\nsubdomain. Null leaves it alone.\n\nCleaned by SiteNames rather than validated: a name is a label, so there is no shape to\nreject — only invisible characters to strip and a length to cap. A name that cleans away to nothing\nis stored as null, which is the same as having cleared it.",
"type": [
"null",
"string"
]
},
"password": {
"description": "A new access password for the site, or an empty string to remove the gate and make it public again.\nNull leaves the current setting alone.\n\nThe three states are deliberately carried by one nullable string rather than a string plus a boolean.\nWith two fields a client could send a password and `private: false` together, and there would be\nno correct interpretation — the endpoint would have to guess or refuse a body that looks valid.\n\nNever echoed back. The response reports only whether a gate is now in place.",
"type": [
"null",
"string"
]
},
"publicDocumentCounts": {
"description": "Whether readers of the site see each document's views and downloads in the reader's toolbar. Null\nleaves it alone. Allowed on every plan. The counts are of file loads, not of people, and appear within\nabout an hour of switching on; switching off takes up to five minutes to reach every reader.",
"type": [
"null",
"boolean"
]
},
"spaMode": {
"description": "Whether an unmatched path should fall back to `index.html`, for a site whose routing happens in\nthe browser. Null leaves the setting alone, and a body where every field is null is refused.",
"type": [
"null",
"boolean"
]
}
},
"type": "object"
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/dropto-run-update-site-settings-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.