Dropto · Schema
SiteSettingsResponse
Response of `PATCH /sites/{siteId}`.
HostingArtificial IntelligenceStatic SitesDeveloper ToolsCloud
Properties
| Name | Type | Description |
|---|---|---|
| commentAudience | string | Who the owner chose may comment — `Off`, `Invited` or `Anyone`. The stored choice, which takes effect only where the plan and the viewing mode allow it. |
| docsMode | boolean | The setting as it now stands. |
| expiresAt | nullstring | When the site is now scheduled to come down, or null when it has no schedule. Echoed because the request sends a string and this is the instant it parsed to. |
| expiryAction | string | What that schedule will do. Reported even when ExpiresAt is null, where it is the choice a future date would inherit. |
| folderId | nullstring | The folder the site is now filed in, or null when it sits at the root. Echoed so a client that sent `"root"` reads back the null it produced rather than the token it sent. |
| formsEnabled | boolean | Whether this site accepts form submissions. The site's own switch, which the tier has to permit before the edge honours it — so a site on a tier without forms reports false here and cannot be set to t |
| invitedOnly | boolean | Whether only the people on the site's list may now see it. Never true together with PasswordProtected. |
| live | boolean | Whether the hostname mapping was rewritten. False for a site that has never published, where the setting is stored and takes effect with its first deploy. |
| modeIsManual | boolean | Whether the serving mode shown here was chosen by the owner rather than detected from the files. Reported so the dashboard can say which it is. A control that renders a detected value identically to a |
| name | nullstring | The name as it now stands, or null when the site has none and the dashboard should show its subdomain. Echoed back because cleaning can change what was sent. |
| passwordProtected | boolean | Whether the site now requires a password. The password itself is never returned — only the hash is stored, so there is nothing to return even if it were wanted. |
| publicDocumentCounts | boolean | Whether readers see each document's views and downloads. |
| siteId | string | ULID of the site. |
| spaMode | boolean | The setting as it now stands. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/dropto-run/json-schema/dropto-run-site-settings-response-schema.json",
"title": "SiteSettingsResponse",
"description": "Response 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/SiteSettingsResponse",
"properties": {
"commentAudience": {
"description": "Who the owner chose may comment — `Off`, `Invited` or `Anyone`. The stored choice, which\ntakes effect only where the plan and the viewing mode allow it.",
"type": "string"
},
"docsMode": {
"description": "The setting as it now stands.",
"type": "boolean"
},
"expiresAt": {
"description": "When the site is now scheduled to come down, or null when it has no schedule. Echoed because the\nrequest sends a string and this is the instant it parsed to.",
"format": "date-time",
"type": [
"null",
"string"
]
},
"expiryAction": {
"description": "What that schedule will do. Reported even when ExpiresAt is null, where it is the\nchoice a future date would inherit.",
"type": "string"
},
"folderId": {
"description": "The folder the site is now filed in, or null when it sits at the root. Echoed so a client that sent\n`\"root\"` reads back the null it produced rather than the token it sent.",
"type": [
"null",
"string"
]
},
"formsEnabled": {
"description": "Whether this site accepts form submissions. The site's own switch, which the tier has to permit\nbefore the edge honours it — so a site on a tier without forms reports false here and cannot be set\nto true.",
"type": "boolean"
},
"invitedOnly": {
"description": "Whether only the people on the site's list may now see it. Never true together with\nPasswordProtected.",
"type": "boolean"
},
"live": {
"description": "Whether the hostname mapping was rewritten. False for a site that has never published, where the\nsetting is stored and takes effect with its first deploy.",
"type": "boolean"
},
"modeIsManual": {
"description": "Whether the serving mode shown here was chosen by the owner rather than detected from the files.\n\nReported so the dashboard can say which it is. A control that renders a detected value identically to\na chosen one tells the owner they picked something they never picked, and hides the one fact that\nexplains why the mode changed after a deploy — or why it stopped changing.",
"type": "boolean"
},
"name": {
"description": "The name as it now stands, or null when the site has none and the dashboard should show its\nsubdomain. Echoed back because cleaning can change what was sent.",
"type": [
"null",
"string"
]
},
"passwordProtected": {
"description": "Whether the site now requires a password. The password itself is never returned — only the hash is\nstored, so there is nothing to return even if it were wanted.",
"type": "boolean"
},
"publicDocumentCounts": {
"description": "Whether readers see each document's views and downloads.",
"type": "boolean"
},
"siteId": {
"description": "ULID of the site.",
"type": "string"
},
"spaMode": {
"description": "The setting as it now stands.",
"type": "boolean"
}
},
"required": [
"siteId",
"name",
"spaMode",
"docsMode",
"modeIsManual",
"live",
"passwordProtected",
"expiresAt",
"expiryAction",
"formsEnabled",
"folderId",
"invitedOnly",
"commentAudience",
"publicDocumentCounts"
],
"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-site-settings-response"
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.