{"info":{"name":"Waveform API v1","schema":"https://schema.getpostman.com/json/collection/v2.1.0/collection.json","description":"Installed bearer-accessible operations. Select and review one request at a time; never run mutations as an unattended collection. Bodies start empty so you must supply reviewed inputs from their schema. Use the browser explorer for recent-session account/payment management. Keep keys in private local variables; never export secrets. No automatic retries."},"variable":[{"key":"studio_origin","value":"https://getwaveform.com","type":"string"},{"key":"workspace_api_key","value":"","type":"string"},{"key":"idempotency_key","value":"","type":"string"}],"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{workspace_api_key}}","type":"string"}]},"item":[{"name":"identity_get","request":{"method":"GET","url":"{{studio_origin}}/api/v1/identity","description":"Read the authenticated workspace, role and scopes. No credentials or session tokens are returned.\n\nScope: authenticated\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {},\n  \"additionalProperties\": false\n}","header":[]}},{"name":"generations_list","request":{"method":"GET","url":"{{studio_origin}}/api/v1/generations","description":"List page revisions, newest first. Use nextCursor as before for the next page.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"query\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"limit\": {\n          \"default\": 100,\n          \"type\": \"integer\",\n          \"minimum\": 1,\n          \"maximum\": 100\n        },\n        \"before\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"pageId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"additionalProperties\": false\n    }\n  },\n  \"additionalProperties\": false\n}","header":[]}},{"name":"generation_get","request":{"method":"GET","url":"{{studio_origin}}/api/v1/generations/{{id}}","description":"Read saved progress, designs, available source, preview, quality and publication links.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"generation_request_get","request":{"method":"GET","url":"{{studio_origin}}/api/v1/generation-requests/{{requestKey}}","description":"Look up the committed generation for an exact request key in the current workspace without submitting work. A null result does not prove an earlier in-flight submission was not accepted and does not authorize a new request key.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"requestKey\": {\n          \"type\": \"string\",\n          \"minLength\": 8,\n          \"maxLength\": 160,\n          \"pattern\": \"^[a-zA-Z0-9_-]+$\"\n        }\n      },\n      \"required\": [\n        \"requestKey\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"artifact_manifest","request":{"method":"GET","url":"{{studio_origin}}/api/v1/generations/{{id}}/artifact-manifest","description":"Read the immutable completed export inventory: exact sorted paths, byte sizes, SHA-256 digests and content types. Available for ready or needs_review source revisions. final:true identifies a completed export; qualityPass describes its visual quality. This read never publishes.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"source_get","request":{"method":"GET","url":"{{studio_origin}}/api/v1/generations/{{id}}/source","description":"Read available HTML, CSS and JavaScript as data. Availability does not imply passing quality or publication approval.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"quality_get","request":{"method":"GET","url":"{{studio_origin}}/api/v1/generations/{{id}}/quality","description":"Read actual quality findings. A missing report remains pending, never an implied pass.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"generation_create","request":{"method":"POST","url":"{{studio_origin}}/api/v1/generations","description":"Create one page revision. A parentId refines that page. Credits are managed automatically from the workspace balance. Reuse a key only for the identical uncertain submission.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"autoPublish\": {\n          \"type\": \"boolean\"\n        },\n        \"prompt\": {\n          \"type\": \"string\",\n          \"minLength\": 10,\n          \"maxLength\": 20000\n        },\n        \"approval\": {\n          \"oneOf\": [\n            {\n              \"type\": \"object\",\n              \"properties\": {\n                \"billingMode\": {\n                  \"type\": \"string\",\n                  \"const\": \"internal\"\n                },\n                \"workspaceId\": {\n                  \"type\": \"string\",\n                  \"format\": \"uuid\",\n                  \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                }\n              },\n              \"required\": [\n                \"billingMode\",\n                \"workspaceId\"\n              ],\n              \"additionalProperties\": false\n            },\n            {\n              \"type\": \"object\",\n              \"properties\": {\n                \"billingMode\": {\n                  \"type\": \"string\",\n                  \"const\": \"credits\"\n                },\n                \"workspaceId\": {\n                  \"type\": \"string\",\n                  \"format\": \"uuid\",\n                  \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                },\n                \"maximumCredits\": {\n                  \"type\": \"string\"\n                },\n                \"maximumMicros\": {\n                  \"type\": \"string\",\n                  \"pattern\": \"^[1-9]\\\\d{0,15}$\"\n                },\n                \"policyId\": {\n                  \"type\": \"string\",\n                  \"minLength\": 1,\n                  \"maxLength\": 250\n                }\n              },\n              \"required\": [\n                \"billingMode\",\n                \"workspaceId\",\n                \"maximumCredits\",\n                \"maximumMicros\",\n                \"policyId\"\n              ],\n              \"additionalProperties\": false\n            }\n          ],\n          \"description\": \"Historical exact-request compatibility. New tasks omit approval and use server-managed reservations from available workspace credits.\"\n        },\n        \"parentId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"brandOverrides\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"colors\": {\n              \"maxItems\": 8,\n              \"type\": \"array\",\n              \"items\": {\n                \"type\": \"string\",\n                \"pattern\": \"^#[a-fA-F0-9]{6}$\"\n              }\n            },\n            \"logoUrl\": {\n              \"anyOf\": [\n                {\n                  \"type\": \"string\",\n                  \"maxLength\": 2048,\n                  \"format\": \"uri\"\n                },\n                {\n                  \"type\": \"null\"\n                }\n              ]\n            }\n          },\n          \"additionalProperties\": false\n        }\n      },\n      \"required\": [\n        \"prompt\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"minLength\": 8,\n      \"maxLength\": 160,\n      \"pattern\": \"^[a-zA-Z0-9_-]+$\"\n    }\n  },\n  \"required\": [\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"designs_review","request":{"method":"POST","url":"{{studio_origin}}/api/v1/generations/{{id}}/review-designs","description":"Review existing saved designs and continue from the chosen design without regenerating the designs. Uses available workspace credits automatically.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"autoPublish\": {\n          \"type\": \"boolean\"\n        },\n        \"approval\": {\n          \"oneOf\": [\n            {\n              \"type\": \"object\",\n              \"properties\": {\n                \"billingMode\": {\n                  \"type\": \"string\",\n                  \"const\": \"internal\"\n                },\n                \"workspaceId\": {\n                  \"type\": \"string\",\n                  \"format\": \"uuid\",\n                  \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                }\n              },\n              \"required\": [\n                \"billingMode\",\n                \"workspaceId\"\n              ],\n              \"additionalProperties\": false\n            },\n            {\n              \"type\": \"object\",\n              \"properties\": {\n                \"billingMode\": {\n                  \"type\": \"string\",\n                  \"const\": \"credits\"\n                },\n                \"workspaceId\": {\n                  \"type\": \"string\",\n                  \"format\": \"uuid\",\n                  \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                },\n                \"maximumCredits\": {\n                  \"type\": \"string\"\n                },\n                \"maximumMicros\": {\n                  \"type\": \"string\",\n                  \"pattern\": \"^[1-9]\\\\d{0,15}$\"\n                },\n                \"policyId\": {\n                  \"type\": \"string\",\n                  \"minLength\": 1,\n                  \"maxLength\": 250\n                }\n              },\n              \"required\": [\n                \"billingMode\",\n                \"workspaceId\",\n                \"maximumCredits\",\n                \"maximumMicros\",\n                \"policyId\"\n              ],\n              \"additionalProperties\": false\n            }\n          ],\n          \"description\": \"Historical exact-request compatibility. New tasks omit approval and use server-managed reservations from available workspace credits.\"\n        }\n      },\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"minLength\": 8,\n      \"maxLength\": 160,\n      \"pattern\": \"^[a-zA-Z0-9_-]+$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"design_edit","request":{"method":"POST","url":"{{studio_origin}}/api/v1/generations/{{id}}/edit-design","description":"Edit one saved design using its expected hash. Returns a design revision to review; use design_select afterward when ready to build the page. Uses available workspace credits automatically.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"candidateId\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"astra-a\",\n            \"astra-b\",\n            \"astra-c\",\n            \"astra-d\",\n            \"openai\",\n            \"xai\",\n            \"google\"\n          ]\n        },\n        \"expectedImageHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"prompt\": {\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 20000\n        }\n      },\n      \"required\": [\n        \"candidateId\",\n        \"expectedImageHash\",\n        \"prompt\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"minLength\": 8,\n      \"maxLength\": 160,\n      \"pattern\": \"^[a-zA-Z0-9_-]+$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"design_select","request":{"method":"POST","url":"{{studio_origin}}/api/v1/generations/{{id}}/select-design","description":"Choose an existing design and build a new revision. Candidate identifiers are opaque. Uses available workspace credits automatically.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"autoPublish\": {\n          \"type\": \"boolean\"\n        },\n        \"candidateId\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"astra-a\",\n            \"astra-b\",\n            \"astra-c\",\n            \"astra-d\",\n            \"openai\",\n            \"xai\",\n            \"google\"\n          ]\n        },\n        \"approval\": {\n          \"oneOf\": [\n            {\n              \"type\": \"object\",\n              \"properties\": {\n                \"billingMode\": {\n                  \"type\": \"string\",\n                  \"const\": \"internal\"\n                },\n                \"workspaceId\": {\n                  \"type\": \"string\",\n                  \"format\": \"uuid\",\n                  \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                }\n              },\n              \"required\": [\n                \"billingMode\",\n                \"workspaceId\"\n              ],\n              \"additionalProperties\": false\n            },\n            {\n              \"type\": \"object\",\n              \"properties\": {\n                \"billingMode\": {\n                  \"type\": \"string\",\n                  \"const\": \"credits\"\n                },\n                \"workspaceId\": {\n                  \"type\": \"string\",\n                  \"format\": \"uuid\",\n                  \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                },\n                \"maximumCredits\": {\n                  \"type\": \"string\"\n                },\n                \"maximumMicros\": {\n                  \"type\": \"string\",\n                  \"pattern\": \"^[1-9]\\\\d{0,15}$\"\n                },\n                \"policyId\": {\n                  \"type\": \"string\",\n                  \"minLength\": 1,\n                  \"maxLength\": 250\n                }\n              },\n              \"required\": [\n                \"billingMode\",\n                \"workspaceId\",\n                \"maximumCredits\",\n                \"maximumMicros\",\n                \"policyId\"\n              ],\n              \"additionalProperties\": false\n            }\n          ],\n          \"description\": \"Historical exact-request compatibility. New tasks omit approval and use server-managed reservations from available workspace credits.\"\n        }\n      },\n      \"required\": [\n        \"candidateId\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"minLength\": 8,\n      \"maxLength\": 160,\n      \"pattern\": \"^[a-zA-Z0-9_-]+$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"source_edit","request":{"method":"POST","url":"{{studio_origin}}/api/v1/generations/{{id}}/edit","description":"Save reviewed plain source as a new revision and run quality checks. Bind the original content hash; credits are managed automatically.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"autoPublish\": {\n          \"type\": \"boolean\"\n        },\n        \"files\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"html\": {\n              \"type\": \"string\",\n              \"minLength\": 1,\n              \"maxLength\": 200000\n            },\n            \"css\": {\n              \"type\": \"string\",\n              \"maxLength\": 150000\n            },\n            \"js\": {\n              \"type\": \"string\",\n              \"maxLength\": 100000\n            }\n          },\n          \"required\": [\n            \"html\",\n            \"css\",\n            \"js\"\n          ],\n          \"additionalProperties\": false\n        },\n        \"expectedContentHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"approval\": {\n          \"oneOf\": [\n            {\n              \"type\": \"object\",\n              \"properties\": {\n                \"billingMode\": {\n                  \"type\": \"string\",\n                  \"const\": \"internal\"\n                },\n                \"workspaceId\": {\n                  \"type\": \"string\",\n                  \"format\": \"uuid\",\n                  \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                }\n              },\n              \"required\": [\n                \"billingMode\",\n                \"workspaceId\"\n              ],\n              \"additionalProperties\": false\n            },\n            {\n              \"type\": \"object\",\n              \"properties\": {\n                \"billingMode\": {\n                  \"type\": \"string\",\n                  \"const\": \"credits\"\n                },\n                \"workspaceId\": {\n                  \"type\": \"string\",\n                  \"format\": \"uuid\",\n                  \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                },\n                \"maximumCredits\": {\n                  \"type\": \"string\"\n                },\n                \"maximumMicros\": {\n                  \"type\": \"string\",\n                  \"pattern\": \"^[1-9]\\\\d{0,15}$\"\n                },\n                \"policyId\": {\n                  \"type\": \"string\",\n                  \"minLength\": 1,\n                  \"maxLength\": 250\n                }\n              },\n              \"required\": [\n                \"billingMode\",\n                \"workspaceId\",\n                \"maximumCredits\",\n                \"maximumMicros\",\n                \"policyId\"\n              ],\n              \"additionalProperties\": false\n            }\n          ],\n          \"description\": \"Historical exact-request compatibility. New tasks omit approval and use server-managed reservations from available workspace credits.\"\n        }\n      },\n      \"required\": [\n        \"files\",\n        \"expectedContentHash\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"minLength\": 8,\n      \"maxLength\": 160,\n      \"pattern\": \"^[a-zA-Z0-9_-]+$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"generation_finalize","request":{"method":"POST","url":"{{studio_origin}}/api/v1/generations/{{id}}/finalize","description":"Finalize validated saved source from a stopped standalone build as an immutable child, without another AI attempt or new credit reservation. Optional autoPublish requires pages:publish scope.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"autoPublish\": {\n          \"type\": \"boolean\"\n        },\n        \"expectedContentHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        }\n      },\n      \"required\": [\n        \"expectedContentHash\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"minLength\": 8,\n      \"maxLength\": 160,\n      \"pattern\": \"^[a-zA-Z0-9_-]+$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"generation_continue","request":{"method":"POST","url":"{{studio_origin}}/api/v1/generations/{{id}}/continue","description":"Continue checking saved source in a new revision with the exact original hash and automatic credit admission. If the design needs a new build, the request returns 409 REFERENCE_REBUILD_REQUIRED; use design_select to rebuild instead.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"autoPublish\": {\n          \"type\": \"boolean\"\n        },\n        \"expectedContentHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"approval\": {\n          \"oneOf\": [\n            {\n              \"type\": \"object\",\n              \"properties\": {\n                \"billingMode\": {\n                  \"type\": \"string\",\n                  \"const\": \"internal\"\n                },\n                \"workspaceId\": {\n                  \"type\": \"string\",\n                  \"format\": \"uuid\",\n                  \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                }\n              },\n              \"required\": [\n                \"billingMode\",\n                \"workspaceId\"\n              ],\n              \"additionalProperties\": false\n            },\n            {\n              \"type\": \"object\",\n              \"properties\": {\n                \"billingMode\": {\n                  \"type\": \"string\",\n                  \"const\": \"credits\"\n                },\n                \"workspaceId\": {\n                  \"type\": \"string\",\n                  \"format\": \"uuid\",\n                  \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                },\n                \"maximumCredits\": {\n                  \"type\": \"string\"\n                },\n                \"maximumMicros\": {\n                  \"type\": \"string\",\n                  \"pattern\": \"^[1-9]\\\\d{0,15}$\"\n                },\n                \"policyId\": {\n                  \"type\": \"string\",\n                  \"minLength\": 1,\n                  \"maxLength\": 250\n                }\n              },\n              \"required\": [\n                \"billingMode\",\n                \"workspaceId\",\n                \"maximumCredits\",\n                \"maximumMicros\",\n                \"policyId\"\n              ],\n              \"additionalProperties\": false\n            }\n          ],\n          \"description\": \"Historical exact-request compatibility. New tasks omit approval and use server-managed reservations from available workspace credits.\"\n        }\n      },\n      \"required\": [\n        \"expectedContentHash\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"minLength\": 8,\n      \"maxLength\": 160,\n      \"pattern\": \"^[a-zA-Z0-9_-]+$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"generation_cancel","request":{"method":"POST","url":"{{studio_origin}}/api/v1/generations/{{id}}/cancel","description":"Cancel this job explicitly. Saved designs/source remain available; already incurred usage may still settle. Disconnecting a tool does not cancel the job.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"hosting_get","request":{"method":"GET","url":"{{studio_origin}}/api/v1/pages/{{pageId}}/hosting","description":"Read publication, hosting grace, capacity and domain status.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"pageId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"pageId\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"page_publish","request":{"method":"POST","url":"{{studio_origin}}/api/v1/generations/{{id}}/publish","description":"Publish the exact passing checked revision. Changes the publicly served page. Requires reviewed source hash and available hosting capacity.\n\nScope: pages:publish\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedContentHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        }\n      },\n      \"required\": [\n        \"expectedContentHash\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"page_unpublish","request":{"method":"POST","url":"{{studio_origin}}/api/v1/pages/{{pageId}}/unpublish","description":"Stop public serving of the reviewed published revision. Preserve saved source, releases and form inbox.\n\nScope: pages:publish\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"pageId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"pageId\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedGenerationId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"expectedGenerationId\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_task_start","request":{"method":"POST","url":"{{studio_origin}}/api/v1/site-tasks","description":"Submit a site message to plan and build the needed pages or edits automatically from an owned homepage. The server binds the checked homepage, current scope and shared facts; it waits or needs attention when those prerequisites are not ready. Uses available credits and never publishes automatically.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"autoPublish\": {\n          \"type\": \"boolean\"\n        },\n        \"prompt\": {\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 20000\n        },\n        \"homepageGenerationId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"siteId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"prompt\",\n        \"homepageGenerationId\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[\\\\x21-\\\\x7e]{8,128}$\"\n    }\n  },\n  \"required\": [\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_task_get","request":{"method":"GET","url":"{{studio_origin}}/api/v1/site-tasks/{{id}}","description":"Read actual saved site-message progress, affected pages and attention state. This read does not start work.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_tasks_list","request":{"method":"GET","url":"{{studio_origin}}/api/v1/pages/{{pageId}}/site-tasks","description":"Read the latest 30 saved site messages for this homepage, newest first.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"pageId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"pageId\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_task_cancel","request":{"method":"POST","url":"{{studio_origin}}/api/v1/site-tasks/{{id}}/cancel","description":"Cancel this site message and only its unfinished jobs. Retain saved page versions and already incurred usage; leave publication unchanged.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {},\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[\\\\x21-\\\\x7e]{8,128}$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_for_page","request":{"method":"GET","url":"{{studio_origin}}/api/v1/pages/{{pageId}}/site","description":"Read the saved site scope associated with this homepage, if one exists.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"pageId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"pageId\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_create","request":{"method":"POST","url":"{{studio_origin}}/api/v1/sites","description":"Create or open a site scope for an existing homepage. This does not authorize a paid build.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"homepagePageId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"title\": {\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 160\n        },\n        \"goal\": {\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 4000\n        },\n        \"audience\": {\n          \"default\": \"\",\n          \"type\": \"string\",\n          \"maxLength\": 4000\n        }\n      },\n      \"required\": [\n        \"homepagePageId\",\n        \"title\",\n        \"goal\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[\\\\x21-\\\\x7e]{8,128}$\"\n    }\n  },\n  \"required\": [\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_get","request":{"method":"GET","url":"{{studio_origin}}/api/v1/sites/{{id}}","description":"Read current and approved site scope versions.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_history","request":{"method":"GET","url":"{{studio_origin}}/api/v1/sites/{{id}}/history","description":"Read immutable scope history; before is a scope version cursor.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"query\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"before\": {\n          \"type\": \"integer\",\n          \"exclusiveMinimum\": 0,\n          \"maximum\": 9007199254740991\n        }\n      },\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_edit","request":{"method":"PUT","url":"{{studio_origin}}/api/v1/sites/{{id}}/scope","description":"Save the full reviewed site scope, bound to expectedVersion. Homepage identity/path stay fixed.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedVersion\": {\n          \"type\": \"integer\",\n          \"exclusiveMinimum\": 0,\n          \"maximum\": 9007199254740991\n        },\n        \"title\": {\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 160\n        },\n        \"goal\": {\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 4000\n        },\n        \"audience\": {\n          \"type\": \"string\",\n          \"maxLength\": 4000\n        },\n        \"blogRequested\": {\n          \"type\": \"boolean\"\n        },\n        \"pages\": {\n          \"minItems\": 1,\n          \"maxItems\": 50,\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"object\",\n            \"properties\": {\n              \"name\": {\n                \"type\": \"string\",\n                \"minLength\": 1,\n                \"maxLength\": 120\n              },\n              \"path\": {\n                \"type\": \"string\",\n                \"minLength\": 1,\n                \"maxLength\": 240\n              },\n              \"purpose\": {\n                \"type\": \"string\",\n                \"minLength\": 1,\n                \"maxLength\": 2000\n              },\n              \"kind\": {\n                \"type\": \"string\",\n                \"enum\": [\n                  \"page\",\n                  \"blog-index\"\n                ]\n              },\n              \"id\": {\n                \"anyOf\": [\n                  {\n                    \"type\": \"string\",\n                    \"format\": \"uuid\",\n                    \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                  },\n                  {\n                    \"type\": \"null\"\n                  }\n                ]\n              },\n              \"navigation\": {\n                \"type\": \"boolean\",\n                \"const\": false\n              }\n            },\n            \"required\": [\n              \"name\",\n              \"path\",\n              \"purpose\",\n              \"kind\",\n              \"id\"\n            ],\n            \"additionalProperties\": false\n          }\n        }\n      },\n      \"required\": [\n        \"expectedVersion\",\n        \"title\",\n        \"goal\",\n        \"audience\",\n        \"blogRequested\",\n        \"pages\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[\\\\x21-\\\\x7e]{8,128}$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_facts","request":{"method":"POST","url":"{{studio_origin}}/api/v1/sites/{{id}}/facts","description":"Correct shared facts with exact strings and expectedVersion. User provenance is derived from authentication.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedVersion\": {\n          \"type\": \"integer\",\n          \"exclusiveMinimum\": 0,\n          \"maximum\": 9007199254740991\n        },\n        \"corrections\": {\n          \"minItems\": 1,\n          \"maxItems\": 200,\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"object\",\n            \"properties\": {\n              \"key\": {\n                \"type\": \"string\",\n                \"minLength\": 1,\n                \"maxLength\": 100,\n                \"pattern\": \"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$\"\n              },\n              \"value\": {\n                \"anyOf\": [\n                  {\n                    \"type\": \"string\",\n                    \"minLength\": 1,\n                    \"maxLength\": 10000\n                  },\n                  {\n                    \"type\": \"null\"\n                  }\n                ]\n              }\n            },\n            \"required\": [\n              \"key\",\n              \"value\"\n            ],\n            \"additionalProperties\": false\n          }\n        }\n      },\n      \"required\": [\n        \"expectedVersion\",\n        \"corrections\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[\\\\x21-\\\\x7e]{8,128}$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_approve","request":{"method":"POST","url":"{{studio_origin}}/api/v1/sites/{{id}}/approve","description":"Approve the exact reviewed scope version and hash. This approval never authorizes charges or building pages.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedVersion\": {\n          \"type\": \"integer\",\n          \"exclusiveMinimum\": 0,\n          \"maximum\": 9007199254740991\n        },\n        \"expectedHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        }\n      },\n      \"required\": [\n        \"expectedVersion\",\n        \"expectedHash\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[\\\\x21-\\\\x7e]{8,128}$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_propose","request":{"method":"POST","url":"{{studio_origin}}/api/v1/sites/{{id}}/proposals","description":"Request a paid proposal from the selected homepage and context. Uses automatic credit admission.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedVersion\": {\n          \"type\": \"integer\",\n          \"exclusiveMinimum\": 0,\n          \"maximum\": 9007199254740991\n        },\n        \"expectedHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"homepageGenerationId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"homepageCandidateId\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"astra-a\",\n            \"astra-b\",\n            \"astra-c\",\n            \"astra-d\",\n            \"openai\",\n            \"xai\",\n            \"google\"\n          ]\n        },\n        \"homepageImageHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"prompt\": {\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 20000\n        },\n        \"maxPages\": {\n          \"type\": \"integer\",\n          \"minimum\": 1,\n          \"maximum\": 50\n        },\n        \"blogRequested\": {\n          \"type\": \"boolean\"\n        },\n        \"approval\": {\n          \"oneOf\": [\n            {\n              \"type\": \"object\",\n              \"properties\": {\n                \"billingMode\": {\n                  \"type\": \"string\",\n                  \"const\": \"internal\"\n                },\n                \"workspaceId\": {\n                  \"type\": \"string\",\n                  \"format\": \"uuid\",\n                  \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                }\n              },\n              \"required\": [\n                \"billingMode\",\n                \"workspaceId\"\n              ],\n              \"additionalProperties\": false\n            },\n            {\n              \"type\": \"object\",\n              \"properties\": {\n                \"billingMode\": {\n                  \"type\": \"string\",\n                  \"const\": \"credits\"\n                },\n                \"workspaceId\": {\n                  \"type\": \"string\",\n                  \"format\": \"uuid\",\n                  \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                },\n                \"maximumCredits\": {\n                  \"type\": \"string\"\n                },\n                \"maximumMicros\": {\n                  \"type\": \"string\",\n                  \"pattern\": \"^[1-9]\\\\d{0,15}$\"\n                },\n                \"policyId\": {\n                  \"type\": \"string\",\n                  \"minLength\": 1,\n                  \"maxLength\": 250\n                }\n              },\n              \"required\": [\n                \"billingMode\",\n                \"workspaceId\",\n                \"maximumCredits\",\n                \"maximumMicros\",\n                \"policyId\"\n              ],\n              \"additionalProperties\": false\n            }\n          ],\n          \"description\": \"Historical exact-request compatibility. New tasks omit approval and use server-managed reservations from available workspace credits.\"\n        }\n      },\n      \"required\": [\n        \"expectedVersion\",\n        \"expectedHash\",\n        \"homepageGenerationId\",\n        \"homepageCandidateId\",\n        \"homepageImageHash\",\n        \"prompt\",\n        \"maxPages\",\n        \"blogRequested\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[\\\\x21-\\\\x7e]{8,128}$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_proposals","request":{"method":"GET","url":"{{studio_origin}}/api/v1/sites/{{id}}/proposals","description":"Read the latest saved proposal jobs for this site.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_job_get","request":{"method":"GET","url":"{{studio_origin}}/api/v1/site-jobs/{{id}}","description":"Read saved proposal progress and result.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_job_cancel","request":{"method":"POST","url":"{{studio_origin}}/api/v1/site-jobs/{{id}}/cancel","description":"Cancel the proposal, retaining its current saved site scope and any incurred usage.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {},\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[\\\\x21-\\\\x7e]{8,128}$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_proposal_apply","request":{"method":"POST","url":"{{studio_origin}}/api/v1/site-jobs/{{id}}/apply","description":"Explicitly apply a completed proposal that conflicted with a newer scope; bind the currently reviewed version and hash.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedVersion\": {\n          \"type\": \"integer\",\n          \"exclusiveMinimum\": 0,\n          \"maximum\": 9007199254740991\n        },\n        \"expectedHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        }\n      },\n      \"required\": [\n        \"expectedVersion\",\n        \"expectedHash\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[\\\\x21-\\\\x7e]{8,128}$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_posts","request":{"method":"GET","url":"{{studio_origin}}/api/v1/sites/{{id}}/posts","description":"List authored post drafts and their selected/live revision identifiers. This performs no build or publication.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"query\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"cursor\": {\n          \"type\": \"string\",\n          \"maxLength\": 1000\n        },\n        \"limit\": {\n          \"type\": \"integer\",\n          \"minimum\": 1,\n          \"maximum\": 50\n        }\n      },\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_post_get","request":{"method":"GET","url":"{{studio_origin}}/api/v1/sites/{{id}}/posts/{{postId}}","description":"Read this owned post draft and exact selected/live revision identifiers.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"postId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\",\n        \"postId\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_post_history","request":{"method":"GET","url":"{{studio_origin}}/api/v1/sites/{{id}}/posts/{{postId}}/history","description":"Read immutable authored post history using beforeRevision. This reads structured content only.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"postId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\",\n        \"postId\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"query\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"beforeRevision\": {\n          \"type\": \"integer\",\n          \"exclusiveMinimum\": 0,\n          \"maximum\": 9007199254740991\n        }\n      },\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_post_create","request":{"method":"POST","url":"{{studio_origin}}/api/v1/sites/{{id}}/posts","description":"Save an authored post draft from exact structured content. Author names and dates are explicit fields. This is free and does not build or publish.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"content\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"title\": {\n              \"type\": \"string\",\n              \"minLength\": 1,\n              \"maxLength\": 120\n            },\n            \"description\": {\n              \"type\": \"string\",\n              \"maxLength\": 500\n            },\n            \"slug\": {\n              \"type\": \"string\",\n              \"minLength\": 1,\n              \"maxLength\": 100,\n              \"pattern\": \"^[a-z0-9]+(?:-[a-z0-9]+)*$\"\n            },\n            \"author\": {\n              \"anyOf\": [\n                {\n                  \"type\": \"string\",\n                  \"minLength\": 1,\n                  \"maxLength\": 200\n                },\n                {\n                  \"type\": \"null\"\n                }\n              ]\n            },\n            \"date\": {\n              \"anyOf\": [\n                {\n                  \"type\": \"string\",\n                  \"pattern\": \"^\\\\d{4}-\\\\d{2}-\\\\d{2}$\"\n                },\n                {\n                  \"type\": \"null\"\n                }\n              ]\n            },\n            \"body\": {\n              \"minItems\": 1,\n              \"maxItems\": 300,\n              \"type\": \"array\",\n              \"items\": {\n                \"oneOf\": [\n                  {\n                    \"type\": \"object\",\n                    \"properties\": {\n                      \"type\": {\n                        \"type\": \"string\",\n                        \"const\": \"paragraph\"\n                      },\n                      \"text\": {\n                        \"type\": \"string\",\n                        \"minLength\": 1,\n                        \"maxLength\": 10000\n                      }\n                    },\n                    \"required\": [\n                      \"type\",\n                      \"text\"\n                    ],\n                    \"additionalProperties\": false\n                  },\n                  {\n                    \"type\": \"object\",\n                    \"properties\": {\n                      \"type\": {\n                        \"type\": \"string\",\n                        \"const\": \"heading\"\n                      },\n                      \"level\": {\n                        \"anyOf\": [\n                          {\n                            \"type\": \"number\",\n                            \"const\": 2\n                          },\n                          {\n                            \"type\": \"number\",\n                            \"const\": 3\n                          }\n                        ]\n                      },\n                      \"text\": {\n                        \"type\": \"string\",\n                        \"minLength\": 1,\n                        \"maxLength\": 200\n                      }\n                    },\n                    \"required\": [\n                      \"type\",\n                      \"level\",\n                      \"text\"\n                    ],\n                    \"additionalProperties\": false\n                  },\n                  {\n                    \"type\": \"object\",\n                    \"properties\": {\n                      \"type\": {\n                        \"type\": \"string\",\n                        \"const\": \"quote\"\n                      },\n                      \"text\": {\n                        \"type\": \"string\",\n                        \"minLength\": 1,\n                        \"maxLength\": 5000\n                      },\n                      \"attribution\": {\n                        \"anyOf\": [\n                          {\n                            \"type\": \"string\",\n                            \"minLength\": 1,\n                            \"maxLength\": 200\n                          },\n                          {\n                            \"type\": \"null\"\n                          }\n                        ]\n                      }\n                    },\n                    \"required\": [\n                      \"type\",\n                      \"text\",\n                      \"attribution\"\n                    ],\n                    \"additionalProperties\": false\n                  },\n                  {\n                    \"type\": \"object\",\n                    \"properties\": {\n                      \"type\": {\n                        \"type\": \"string\",\n                        \"const\": \"list\"\n                      },\n                      \"ordered\": {\n                        \"type\": \"boolean\"\n                      },\n                      \"items\": {\n                        \"minItems\": 1,\n                        \"maxItems\": 100,\n                        \"type\": \"array\",\n                        \"items\": {\n                          \"type\": \"string\",\n                          \"minLength\": 1,\n                          \"maxLength\": 2000\n                        }\n                      }\n                    },\n                    \"required\": [\n                      \"type\",\n                      \"ordered\",\n                      \"items\"\n                    ],\n                    \"additionalProperties\": false\n                  },\n                  {\n                    \"type\": \"object\",\n                    \"properties\": {\n                      \"type\": {\n                        \"type\": \"string\",\n                        \"const\": \"link\"\n                      },\n                      \"text\": {\n                        \"type\": \"string\",\n                        \"minLength\": 1,\n                        \"maxLength\": 400\n                      },\n                      \"url\": {\n                        \"type\": \"string\",\n                        \"maxLength\": 2000\n                      }\n                    },\n                    \"required\": [\n                      \"type\",\n                      \"text\",\n                      \"url\"\n                    ],\n                    \"additionalProperties\": false\n                  }\n                ]\n              }\n            }\n          },\n          \"required\": [\n            \"title\",\n            \"description\",\n            \"slug\",\n            \"author\",\n            \"date\",\n            \"body\"\n          ],\n          \"additionalProperties\": false\n        }\n      },\n      \"required\": [\n        \"content\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[\\\\x21-\\\\x7e]{8,128}$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_post_edit","request":{"method":"PUT","url":"{{studio_origin}}/api/v1/sites/{{id}}/posts/{{postId}}","description":"Save a new authored post revision bound to its reviewed revision and hash. Existing selected or live revisions stay unchanged.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"postId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\",\n        \"postId\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedRevision\": {\n          \"type\": \"integer\",\n          \"exclusiveMinimum\": 0,\n          \"maximum\": 9007199254740991\n        },\n        \"expectedHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"content\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"title\": {\n              \"type\": \"string\",\n              \"minLength\": 1,\n              \"maxLength\": 120\n            },\n            \"description\": {\n              \"type\": \"string\",\n              \"maxLength\": 500\n            },\n            \"slug\": {\n              \"type\": \"string\",\n              \"minLength\": 1,\n              \"maxLength\": 100,\n              \"pattern\": \"^[a-z0-9]+(?:-[a-z0-9]+)*$\"\n            },\n            \"author\": {\n              \"anyOf\": [\n                {\n                  \"type\": \"string\",\n                  \"minLength\": 1,\n                  \"maxLength\": 200\n                },\n                {\n                  \"type\": \"null\"\n                }\n              ]\n            },\n            \"date\": {\n              \"anyOf\": [\n                {\n                  \"type\": \"string\",\n                  \"pattern\": \"^\\\\d{4}-\\\\d{2}-\\\\d{2}$\"\n                },\n                {\n                  \"type\": \"null\"\n                }\n              ]\n            },\n            \"body\": {\n              \"minItems\": 1,\n              \"maxItems\": 300,\n              \"type\": \"array\",\n              \"items\": {\n                \"oneOf\": [\n                  {\n                    \"type\": \"object\",\n                    \"properties\": {\n                      \"type\": {\n                        \"type\": \"string\",\n                        \"const\": \"paragraph\"\n                      },\n                      \"text\": {\n                        \"type\": \"string\",\n                        \"minLength\": 1,\n                        \"maxLength\": 10000\n                      }\n                    },\n                    \"required\": [\n                      \"type\",\n                      \"text\"\n                    ],\n                    \"additionalProperties\": false\n                  },\n                  {\n                    \"type\": \"object\",\n                    \"properties\": {\n                      \"type\": {\n                        \"type\": \"string\",\n                        \"const\": \"heading\"\n                      },\n                      \"level\": {\n                        \"anyOf\": [\n                          {\n                            \"type\": \"number\",\n                            \"const\": 2\n                          },\n                          {\n                            \"type\": \"number\",\n                            \"const\": 3\n                          }\n                        ]\n                      },\n                      \"text\": {\n                        \"type\": \"string\",\n                        \"minLength\": 1,\n                        \"maxLength\": 200\n                      }\n                    },\n                    \"required\": [\n                      \"type\",\n                      \"level\",\n                      \"text\"\n                    ],\n                    \"additionalProperties\": false\n                  },\n                  {\n                    \"type\": \"object\",\n                    \"properties\": {\n                      \"type\": {\n                        \"type\": \"string\",\n                        \"const\": \"quote\"\n                      },\n                      \"text\": {\n                        \"type\": \"string\",\n                        \"minLength\": 1,\n                        \"maxLength\": 5000\n                      },\n                      \"attribution\": {\n                        \"anyOf\": [\n                          {\n                            \"type\": \"string\",\n                            \"minLength\": 1,\n                            \"maxLength\": 200\n                          },\n                          {\n                            \"type\": \"null\"\n                          }\n                        ]\n                      }\n                    },\n                    \"required\": [\n                      \"type\",\n                      \"text\",\n                      \"attribution\"\n                    ],\n                    \"additionalProperties\": false\n                  },\n                  {\n                    \"type\": \"object\",\n                    \"properties\": {\n                      \"type\": {\n                        \"type\": \"string\",\n                        \"const\": \"list\"\n                      },\n                      \"ordered\": {\n                        \"type\": \"boolean\"\n                      },\n                      \"items\": {\n                        \"minItems\": 1,\n                        \"maxItems\": 100,\n                        \"type\": \"array\",\n                        \"items\": {\n                          \"type\": \"string\",\n                          \"minLength\": 1,\n                          \"maxLength\": 2000\n                        }\n                      }\n                    },\n                    \"required\": [\n                      \"type\",\n                      \"ordered\",\n                      \"items\"\n                    ],\n                    \"additionalProperties\": false\n                  },\n                  {\n                    \"type\": \"object\",\n                    \"properties\": {\n                      \"type\": {\n                        \"type\": \"string\",\n                        \"const\": \"link\"\n                      },\n                      \"text\": {\n                        \"type\": \"string\",\n                        \"minLength\": 1,\n                        \"maxLength\": 400\n                      },\n                      \"url\": {\n                        \"type\": \"string\",\n                        \"maxLength\": 2000\n                      }\n                    },\n                    \"required\": [\n                      \"type\",\n                      \"text\",\n                      \"url\"\n                    ],\n                    \"additionalProperties\": false\n                  }\n                ]\n              }\n            }\n          },\n          \"required\": [\n            \"title\",\n            \"description\",\n            \"slug\",\n            \"author\",\n            \"date\",\n            \"body\"\n          ],\n          \"additionalProperties\": false\n        }\n      },\n      \"required\": [\n        \"expectedRevision\",\n        \"expectedHash\",\n        \"content\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[\\\\x21-\\\\x7e]{8,128}$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_posts_select","request":{"method":"POST","url":"{{studio_origin}}/api/v1/sites/{{id}}/blog-selection","description":"Select exact authored post revisions for the next site scope. This invalidates scope approval and preserves the live release. It neither builds nor publishes.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedVersion\": {\n          \"type\": \"integer\",\n          \"exclusiveMinimum\": 0,\n          \"maximum\": 9007199254740991\n        },\n        \"expectedHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"pageSize\": {\n          \"type\": \"integer\",\n          \"minimum\": 1,\n          \"maximum\": 24\n        },\n        \"posts\": {\n          \"maxItems\": 49,\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"object\",\n            \"properties\": {\n              \"postId\": {\n                \"type\": \"string\",\n                \"format\": \"uuid\",\n                \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n              },\n              \"revision\": {\n                \"type\": \"integer\",\n                \"exclusiveMinimum\": 0,\n                \"maximum\": 9007199254740991\n              },\n              \"hash\": {\n                \"type\": \"string\",\n                \"pattern\": \"^[a-f0-9]{64}$\"\n              }\n            },\n            \"required\": [\n              \"postId\",\n              \"revision\",\n              \"hash\"\n            ],\n            \"additionalProperties\": false\n          }\n        }\n      },\n      \"required\": [\n        \"expectedVersion\",\n        \"expectedHash\",\n        \"pageSize\",\n        \"posts\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[\\\\x21-\\\\x7e]{8,128}$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_build","request":{"method":"POST","url":"{{studio_origin}}/api/v1/sites/{{id}}/builds","description":"Build the explicitly selected child pages from the checked homepage and approved scope. Each child uses an independent automatic reservation; the complete batch is admitted atomically.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedVersion\": {\n          \"type\": \"integer\",\n          \"exclusiveMinimum\": 0,\n          \"maximum\": 9007199254740991\n        },\n        \"expectedHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"sharedFactsHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"homepageGenerationId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"homepageContentHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"homepageImageHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"children\": {\n          \"minItems\": 1,\n          \"maxItems\": 49,\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"object\",\n            \"properties\": {\n              \"pageId\": {\n                \"type\": \"string\",\n                \"format\": \"uuid\",\n                \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n              },\n              \"approval\": {\n                \"oneOf\": [\n                  {\n                    \"type\": \"object\",\n                    \"properties\": {\n                      \"billingMode\": {\n                        \"type\": \"string\",\n                        \"const\": \"internal\"\n                      },\n                      \"workspaceId\": {\n                        \"type\": \"string\",\n                        \"format\": \"uuid\",\n                        \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                      }\n                    },\n                    \"required\": [\n                      \"billingMode\",\n                      \"workspaceId\"\n                    ],\n                    \"additionalProperties\": false\n                  },\n                  {\n                    \"type\": \"object\",\n                    \"properties\": {\n                      \"billingMode\": {\n                        \"type\": \"string\",\n                        \"const\": \"credits\"\n                      },\n                      \"workspaceId\": {\n                        \"type\": \"string\",\n                        \"format\": \"uuid\",\n                        \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                      },\n                      \"maximumCredits\": {\n                        \"type\": \"string\"\n                      },\n                      \"maximumMicros\": {\n                        \"type\": \"string\",\n                        \"pattern\": \"^[1-9]\\\\d{0,15}$\"\n                      },\n                      \"policyId\": {\n                        \"type\": \"string\",\n                        \"minLength\": 1,\n                        \"maxLength\": 250\n                      }\n                    },\n                    \"required\": [\n                      \"billingMode\",\n                      \"workspaceId\",\n                      \"maximumCredits\",\n                      \"maximumMicros\",\n                      \"policyId\"\n                    ],\n                    \"additionalProperties\": false\n                  }\n                ],\n                \"description\": \"Historical exact-request compatibility. New tasks omit approval and use server-managed reservations from available workspace credits.\"\n              }\n            },\n            \"required\": [\n              \"pageId\"\n            ],\n            \"additionalProperties\": false\n          }\n        }\n      },\n      \"required\": [\n        \"expectedVersion\",\n        \"expectedHash\",\n        \"sharedFactsHash\",\n        \"homepageGenerationId\",\n        \"homepageContentHash\",\n        \"homepageImageHash\",\n        \"children\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[\\\\x21-\\\\x7e]{8,128}$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_revision_options","request":{"method":"GET","url":"{{studio_origin}}/api/v1/sites/{{id}}/revision-options","description":"Read eligible source parents and the exact approved binding for a reviewed site revision. This performs no generation.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"query\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"homepageGenerationId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"scope\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"local\",\n            \"global\",\n            \"pages\"\n          ]\n        }\n      },\n      \"required\": [\n        \"homepageGenerationId\",\n        \"scope\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"query\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_revise","request":{"method":"POST","url":"{{studio_origin}}/api/v1/sites/{{id}}/revisions","description":"Revise one local page, several explicitly selected pages, or the complete site from exact source parents. Every selected page uses an independent automatic reservation. The command validates the exact selected revision scope.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedVersion\": {\n          \"type\": \"integer\",\n          \"exclusiveMinimum\": 0,\n          \"maximum\": 9007199254740991\n        },\n        \"expectedHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"sharedFactsHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"homepageGenerationId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"homepageContentHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"homepageImageHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"scope\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"local\",\n            \"global\",\n            \"pages\"\n          ]\n        },\n        \"prompt\": {\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 20000\n        },\n        \"continueSource\": {\n          \"type\": \"boolean\",\n          \"const\": true\n        },\n        \"children\": {\n          \"minItems\": 1,\n          \"maxItems\": 50,\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"object\",\n            \"properties\": {\n              \"pageId\": {\n                \"type\": \"string\",\n                \"format\": \"uuid\",\n                \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n              },\n              \"parent\": {\n                \"anyOf\": [\n                  {\n                    \"type\": \"object\",\n                    \"properties\": {\n                      \"generationId\": {\n                        \"type\": \"string\",\n                        \"format\": \"uuid\",\n                        \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                      },\n                      \"contentHash\": {\n                        \"type\": \"string\",\n                        \"pattern\": \"^[a-f0-9]{64}$\"\n                      }\n                    },\n                    \"required\": [\n                      \"generationId\",\n                      \"contentHash\"\n                    ],\n                    \"additionalProperties\": false\n                  },\n                  {\n                    \"type\": \"null\"\n                  }\n                ]\n              },\n              \"approval\": {\n                \"oneOf\": [\n                  {\n                    \"type\": \"object\",\n                    \"properties\": {\n                      \"billingMode\": {\n                        \"type\": \"string\",\n                        \"const\": \"internal\"\n                      },\n                      \"workspaceId\": {\n                        \"type\": \"string\",\n                        \"format\": \"uuid\",\n                        \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                      }\n                    },\n                    \"required\": [\n                      \"billingMode\",\n                      \"workspaceId\"\n                    ],\n                    \"additionalProperties\": false\n                  },\n                  {\n                    \"type\": \"object\",\n                    \"properties\": {\n                      \"billingMode\": {\n                        \"type\": \"string\",\n                        \"const\": \"credits\"\n                      },\n                      \"workspaceId\": {\n                        \"type\": \"string\",\n                        \"format\": \"uuid\",\n                        \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n                      },\n                      \"maximumCredits\": {\n                        \"type\": \"string\"\n                      },\n                      \"maximumMicros\": {\n                        \"type\": \"string\",\n                        \"pattern\": \"^[1-9]\\\\d{0,15}$\"\n                      },\n                      \"policyId\": {\n                        \"type\": \"string\",\n                        \"minLength\": 1,\n                        \"maxLength\": 250\n                      }\n                    },\n                    \"required\": [\n                      \"billingMode\",\n                      \"workspaceId\",\n                      \"maximumCredits\",\n                      \"maximumMicros\",\n                      \"policyId\"\n                    ],\n                    \"additionalProperties\": false\n                  }\n                ],\n                \"description\": \"Historical exact-request compatibility. New tasks omit approval and use server-managed reservations from available workspace credits.\"\n              }\n            },\n            \"required\": [\n              \"pageId\",\n              \"parent\"\n            ],\n            \"additionalProperties\": false\n          }\n        }\n      },\n      \"required\": [\n        \"expectedVersion\",\n        \"expectedHash\",\n        \"sharedFactsHash\",\n        \"homepageGenerationId\",\n        \"homepageContentHash\",\n        \"homepageImageHash\",\n        \"scope\",\n        \"prompt\",\n        \"children\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[\\\\x21-\\\\x7e]{8,128}$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_builds","request":{"method":"GET","url":"{{studio_origin}}/api/v1/sites/{{id}}/builds","description":"Read saved initial and revision batches with actual per-page progress.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_build_get","request":{"method":"GET","url":"{{studio_origin}}/api/v1/site-builds/{{id}}","description":"Read saved batch progress. Open each generationId for available source and findings; cancel individual pages with generation_cancel.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"billing_summary","request":{"method":"GET","url":"{{studio_origin}}/api/v1/billing/summary","description":"Read exact available/reserved credits, receipts, plan and configuration. No estimated or unresolved cost is a charge.\n\nScope: billing:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"query\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"cursor\": {\n          \"type\": \"string\",\n          \"maxLength\": 1000\n        }\n      },\n      \"additionalProperties\": false\n    }\n  },\n  \"additionalProperties\": false\n}","header":[]}},{"name":"billing_receipt","request":{"method":"GET","url":"{{studio_origin}}/api/v1/billing/usage/{{id}}","description":"Read this job’s immutable customer receipt and unresolved steps. Monetary quantities remain decimal strings.\n\nScope: billing:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"billing_quote","request":{"method":"POST","url":"{{studio_origin}}/api/v1/billing/quote","description":"Optionally read the actual balance and usage policy before submitting work. A quote reserves nothing and may have no reliable estimate.\n\nScope: pages:write\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"action\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"create\",\n            \"select_design\",\n            \"refine\",\n            \"edit\",\n            \"continue\",\n            \"review_designs\",\n            \"site_proposal\",\n            \"site_page\"\n          ]\n        },\n        \"generationId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"action\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"body\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_release_options","request":{"method":"GET","url":"{{studio_origin}}/api/v1/sites/{{id}}/release-options","description":"Read the approved scope binding and compatible checked page versions for the selected homepage. This read performs no generation.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"query\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"homepageGenerationId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"homepageGenerationId\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"query\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_releases","request":{"method":"GET","url":"{{studio_origin}}/api/v1/sites/{{id}}/releases","description":"List immutable site releases. Use nextCursor as before to read older releases.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"query\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"before\": {\n          \"type\": \"string\",\n          \"maxLength\": 512\n        }\n      },\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_release_create","request":{"method":"POST","url":"{{studio_origin}}/api/v1/sites/{{id}}/releases","description":"Package the explicitly reviewed, complete set of checked page versions as an immutable site release. This does not publish or generate pages.\n\nScope: pages:publish\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedVersion\": {\n          \"type\": \"integer\",\n          \"exclusiveMinimum\": 0,\n          \"maximum\": 9007199254740991\n        },\n        \"expectedHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"sharedFactsHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"baseline\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"generationId\": {\n              \"type\": \"string\",\n              \"format\": \"uuid\",\n              \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n            },\n            \"contentHash\": {\n              \"type\": \"string\",\n              \"pattern\": \"^[a-f0-9]{64}$\"\n            },\n            \"imageHash\": {\n              \"type\": \"string\",\n              \"pattern\": \"^[a-f0-9]{64}$\"\n            },\n            \"brandHash\": {\n              \"type\": \"string\",\n              \"pattern\": \"^[a-f0-9]{64}$\"\n            }\n          },\n          \"required\": [\n            \"generationId\",\n            \"contentHash\",\n            \"imageHash\",\n            \"brandHash\"\n          ],\n          \"additionalProperties\": false\n        },\n        \"pages\": {\n          \"minItems\": 1,\n          \"maxItems\": 200,\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"object\",\n            \"properties\": {\n              \"pageId\": {\n                \"type\": \"string\",\n                \"format\": \"uuid\",\n                \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n              },\n              \"generationId\": {\n                \"type\": \"string\",\n                \"format\": \"uuid\",\n                \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n              },\n              \"contentHash\": {\n                \"type\": \"string\",\n                \"pattern\": \"^[a-f0-9]{64}$\"\n              }\n            },\n            \"required\": [\n              \"pageId\",\n              \"generationId\",\n              \"contentHash\"\n            ],\n            \"additionalProperties\": false\n          }\n        }\n      },\n      \"required\": [\n        \"expectedVersion\",\n        \"expectedHash\",\n        \"sharedFactsHash\",\n        \"baseline\",\n        \"pages\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[\\\\x21-\\\\x7e]{8,128}$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"site_release_get","request":{"method":"GET","url":"{{studio_origin}}/api/v1/sites/{{id}}/releases/{{releaseId}}","description":"Read the immutable release manifest without private storage paths.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"releaseId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\",\n        \"releaseId\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_release_download","request":{"method":"GET","url":"{{studio_origin}}/api/v1/sites/{{id}}/releases/{{releaseId}}/download","description":"Download the immutable complete site ZIP with its exact validated assets and font licenses.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"releaseId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\",\n        \"releaseId\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_publication_get","request":{"method":"GET","url":"{{studio_origin}}/api/v1/sites/{{id}}/publication","description":"Read the current whole-site publication version and release.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"site_publish","request":{"method":"POST","url":"{{studio_origin}}/api/v1/sites/{{id}}/publication","description":"Publish or restore the explicitly reviewed immutable release, or unpublish with releaseId:null. Bind the current publication version; the complete route tree changes atomically.\n\nScope: pages:publish\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedVersion\": {\n          \"type\": \"integer\",\n          \"minimum\": 0,\n          \"maximum\": 9007199254740991\n        },\n        \"releaseId\": {\n          \"anyOf\": [\n            {\n              \"type\": \"string\",\n              \"format\": \"uuid\",\n              \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n            },\n            {\n              \"type\": \"null\"\n            }\n          ]\n        }\n      },\n      \"required\": [\n        \"expectedVersion\",\n        \"releaseId\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[\\\\x21-\\\\x7e]{8,128}$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"webhooks_list","request":{"method":"GET","url":"{{studio_origin}}/api/v1/integrations/webhooks","description":"List this workspace’s integration endpoints. Destination paths, query strings and signing secrets are never returned.\n\nScope: workspace:manage\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {},\n  \"additionalProperties\": false\n}","header":[]}},{"name":"webhook_get","request":{"method":"GET","url":"{{studio_origin}}/api/v1/integrations/webhooks/{{id}}","description":"Read a saved endpoint revision before changing it. This read does not send an event.\n\nScope: workspace:manage\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"webhook_create","request":{"method":"POST","url":"{{studio_origin}}/api/v1/integrations/webhooks","description":"Register an endpoint for future workspace events. Supply a private signing secret and an exact idempotency key; registering an enabled endpoint authorizes event delivery. This does not replay past events.\n\nScope: workspace:manage\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"url\": {\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 2000\n        },\n        \"secret\": {\n          \"type\": \"string\",\n          \"minLength\": 32,\n          \"maxLength\": 256\n        },\n        \"events\": {\n          \"minItems\": 1,\n          \"maxItems\": 8,\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"generation.completed\",\n              \"generation.failed\",\n              \"generation.cancelled\",\n              \"page.published\",\n              \"page.unpublished\",\n              \"site.published\",\n              \"site.unpublished\",\n              \"form.submitted\"\n            ]\n          }\n        },\n        \"enabled\": {\n          \"default\": true,\n          \"type\": \"boolean\"\n        }\n      },\n      \"required\": [\n        \"url\",\n        \"secret\",\n        \"events\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"minLength\": 8,\n      \"maxLength\": 160,\n      \"pattern\": \"^[a-zA-Z0-9_-]+$\"\n    }\n  },\n  \"required\": [\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"webhook_update","request":{"method":"PUT","url":"{{studio_origin}}/api/v1/integrations/webhooks/{{id}}","description":"Change subscriptions, enable or disable, replace the destination, or rotate its private signing secret using expectedRevision. Queued deliveries retain their original recipient and secret; disabling cancels queued work, while an already dispatched request may finish.\n\nScope: workspace:manage\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedRevision\": {\n          \"type\": \"integer\",\n          \"exclusiveMinimum\": 0,\n          \"maximum\": 9007199254740991\n        },\n        \"url\": {\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 2000\n        },\n        \"secret\": {\n          \"type\": \"string\",\n          \"minLength\": 32,\n          \"maxLength\": 256\n        },\n        \"events\": {\n          \"minItems\": 1,\n          \"maxItems\": 8,\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"generation.completed\",\n              \"generation.failed\",\n              \"generation.cancelled\",\n              \"page.published\",\n              \"page.unpublished\",\n              \"site.published\",\n              \"site.unpublished\",\n              \"form.submitted\"\n            ]\n          }\n        },\n        \"enabled\": {\n          \"type\": \"boolean\"\n        }\n      },\n      \"required\": [\n        \"expectedRevision\",\n        \"events\",\n        \"enabled\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"webhook_deliveries","request":{"method":"GET","url":"{{studio_origin}}/api/v1/integrations/webhooks/{{id}}/deliveries","description":"Read saved delivery status and attempts. Pass nextCursor as before; a successful delivery is an HTTP acknowledgement, not proof of downstream processing.\n\nScope: workspace:manage\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"query\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"before\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"limit\": {\n          \"default\": 50,\n          \"type\": \"integer\",\n          \"minimum\": 1,\n          \"maximum\": 100\n        }\n      },\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"webhook_retry","request":{"method":"POST","url":"{{studio_origin}}/api/v1/integrations/webhooks/{{id}}/deliveries/{{deliveryId}}/retry","description":"Retry an exhausted failed delivery after inspecting it. Bind expectedAttempts. Reuses the same event id, exact body, destination and signing secret; the destination must deduplicate events.\n\nScope: workspace:manage\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"deliveryId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\",\n        \"deliveryId\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedAttempts\": {\n          \"type\": \"integer\",\n          \"minimum\": 0,\n          \"maximum\": 9007199254740991\n        }\n      },\n      \"required\": [\n        \"expectedAttempts\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"domain_connect","request":{"method":"POST","url":"{{studio_origin}}/api/v1/pages/{{pageId}}/domains","description":"Connect an explicitly requested hostname. Allocates domain capacity and may contact the hosting provider; returns DNS verification instructions.\n\nScope: domains:manage\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"pageId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"pageId\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"hostname\": {\n          \"type\": \"string\",\n          \"maxLength\": 253\n        }\n      },\n      \"required\": [\n        \"hostname\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"domain_check","request":{"method":"POST","url":"{{studio_origin}}/api/v1/pages/{{pageId}}/domains/{{domainId}}/check","description":"Recheck DNS and certificate status for an existing domain.\n\nScope: domains:manage\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"pageId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"domainId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"pageId\",\n        \"domainId\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"domain_disconnect","request":{"method":"DELETE","url":"{{studio_origin}}/api/v1/pages/{{pageId}}/domains/{{domainId}}","description":"Disconnect this custom hostname. Existing page source and managed hosting remain saved.\n\nScope: domains:manage\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"pageId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"domainId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"pageId\",\n        \"domainId\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"forms_list","request":{"method":"GET","url":"{{studio_origin}}/api/v1/pages/{{pageId}}/forms","description":"Read form configuration with masked destination credentials.\n\nScope: forms:manage\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"pageId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"pageId\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"form_create","request":{"method":"POST","url":"{{studio_origin}}/api/v1/pages/{{pageId}}/forms","description":"Create the explicitly reviewed form configuration. Not idempotent: read forms before retrying an uncertain result.\n\nScope: forms:manage\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"pageId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"pageId\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 120\n        },\n        \"enabled\": {\n          \"default\": true,\n          \"type\": \"boolean\"\n        },\n        \"nativeFormId\": {\n          \"default\": null,\n          \"anyOf\": [\n            {\n              \"type\": \"string\",\n              \"pattern\": \"^[A-Za-z][A-Za-z0-9_:-]{0,99}$\"\n            },\n            {\n              \"type\": \"null\"\n            }\n          ]\n        },\n        \"nativeSourceHash\": {\n          \"default\": null,\n          \"anyOf\": [\n            {\n              \"type\": \"string\",\n              \"pattern\": \"^[a-f0-9]{64}$\"\n            },\n            {\n              \"type\": \"null\"\n            }\n          ]\n        },\n        \"fields\": {\n          \"minItems\": 1,\n          \"maxItems\": 20,\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"object\",\n            \"properties\": {\n              \"name\": {\n                \"type\": \"string\",\n                \"pattern\": \"^[A-Za-z][A-Za-z0-9_-]{0,63}$\"\n              },\n              \"label\": {\n                \"type\": \"string\",\n                \"minLength\": 1,\n                \"maxLength\": 120\n              },\n              \"type\": {\n                \"type\": \"string\",\n                \"enum\": [\n                  \"text\",\n                  \"email\",\n                  \"tel\",\n                  \"textarea\",\n                  \"select\",\n                  \"checkbox\",\n                  \"number\",\n                  \"url\",\n                  \"date\"\n                ]\n              },\n              \"required\": {\n                \"default\": false,\n                \"type\": \"boolean\"\n              },\n              \"placeholder\": {\n                \"default\": \"\",\n                \"type\": \"string\",\n                \"maxLength\": 200\n              },\n              \"options\": {\n                \"default\": [],\n                \"maxItems\": 30,\n                \"type\": \"array\",\n                \"items\": {\n                  \"type\": \"string\",\n                  \"minLength\": 1,\n                  \"maxLength\": 120\n                }\n              },\n              \"maxLength\": {\n                \"default\": 1000,\n                \"type\": \"integer\",\n                \"minimum\": 1,\n                \"maximum\": 5000\n              }\n            },\n            \"required\": [\n              \"name\",\n              \"label\",\n              \"type\"\n            ],\n            \"additionalProperties\": false\n          }\n        },\n        \"submitLabel\": {\n          \"default\": \"Send message\",\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 80\n        },\n        \"successMessage\": {\n          \"default\": \"Thanks. Your message has been received.\",\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 500\n        },\n        \"webhook\": {\n          \"default\": null,\n          \"anyOf\": [\n            {\n              \"type\": \"object\",\n              \"properties\": {\n                \"url\": {\n                  \"type\": \"string\",\n                  \"minLength\": 1,\n                  \"maxLength\": 2000\n                },\n                \"fieldMapping\": {\n                  \"default\": {}\n                },\n                \"secret\": {\n                  \"type\": \"string\",\n                  \"minLength\": 32,\n                  \"maxLength\": 256\n                }\n              },\n              \"required\": [\n                \"url\"\n              ],\n              \"additionalProperties\": false\n            },\n            {\n              \"type\": \"null\"\n            }\n          ]\n        }\n      },\n      \"required\": [\n        \"name\",\n        \"fields\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"form_update","request":{"method":"PUT","url":"{{studio_origin}}/api/v1/pages/{{pageId}}/forms/{{formId}}","description":"Update or disable a form, bound to expectedRevision. Existing accepted leads are retained.\n\nScope: forms:manage\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"pageId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"formId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"pageId\",\n        \"formId\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedRevision\": {\n          \"type\": \"integer\",\n          \"exclusiveMinimum\": 0,\n          \"maximum\": 9007199254740991\n        },\n        \"form\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"name\": {\n              \"type\": \"string\",\n              \"minLength\": 1,\n              \"maxLength\": 120\n            },\n            \"enabled\": {\n              \"default\": true,\n              \"type\": \"boolean\"\n            },\n            \"nativeFormId\": {\n              \"default\": null,\n              \"anyOf\": [\n                {\n                  \"type\": \"string\",\n                  \"pattern\": \"^[A-Za-z][A-Za-z0-9_:-]{0,99}$\"\n                },\n                {\n                  \"type\": \"null\"\n                }\n              ]\n            },\n            \"nativeSourceHash\": {\n              \"default\": null,\n              \"anyOf\": [\n                {\n                  \"type\": \"string\",\n                  \"pattern\": \"^[a-f0-9]{64}$\"\n                },\n                {\n                  \"type\": \"null\"\n                }\n              ]\n            },\n            \"fields\": {\n              \"minItems\": 1,\n              \"maxItems\": 20,\n              \"type\": \"array\",\n              \"items\": {\n                \"type\": \"object\",\n                \"properties\": {\n                  \"name\": {\n                    \"type\": \"string\",\n                    \"pattern\": \"^[A-Za-z][A-Za-z0-9_-]{0,63}$\"\n                  },\n                  \"label\": {\n                    \"type\": \"string\",\n                    \"minLength\": 1,\n                    \"maxLength\": 120\n                  },\n                  \"type\": {\n                    \"type\": \"string\",\n                    \"enum\": [\n                      \"text\",\n                      \"email\",\n                      \"tel\",\n                      \"textarea\",\n                      \"select\",\n                      \"checkbox\",\n                      \"number\",\n                      \"url\",\n                      \"date\"\n                    ]\n                  },\n                  \"required\": {\n                    \"default\": false,\n                    \"type\": \"boolean\"\n                  },\n                  \"placeholder\": {\n                    \"default\": \"\",\n                    \"type\": \"string\",\n                    \"maxLength\": 200\n                  },\n                  \"options\": {\n                    \"default\": [],\n                    \"maxItems\": 30,\n                    \"type\": \"array\",\n                    \"items\": {\n                      \"type\": \"string\",\n                      \"minLength\": 1,\n                      \"maxLength\": 120\n                    }\n                  },\n                  \"maxLength\": {\n                    \"default\": 1000,\n                    \"type\": \"integer\",\n                    \"minimum\": 1,\n                    \"maximum\": 5000\n                  }\n                },\n                \"required\": [\n                  \"name\",\n                  \"label\",\n                  \"type\"\n                ],\n                \"additionalProperties\": false\n              }\n            },\n            \"submitLabel\": {\n              \"default\": \"Send message\",\n              \"type\": \"string\",\n              \"minLength\": 1,\n              \"maxLength\": 80\n            },\n            \"successMessage\": {\n              \"default\": \"Thanks. Your message has been received.\",\n              \"type\": \"string\",\n              \"minLength\": 1,\n              \"maxLength\": 500\n            },\n            \"webhook\": {\n              \"default\": null,\n              \"anyOf\": [\n                {\n                  \"type\": \"object\",\n                  \"properties\": {\n                    \"url\": {\n                      \"type\": \"string\",\n                      \"minLength\": 1,\n                      \"maxLength\": 2000\n                    },\n                    \"fieldMapping\": {\n                      \"default\": {}\n                    },\n                    \"secret\": {\n                      \"type\": \"string\",\n                      \"minLength\": 32,\n                      \"maxLength\": 256\n                    }\n                  },\n                  \"required\": [\n                    \"url\"\n                  ],\n                  \"additionalProperties\": false\n                },\n                {\n                  \"type\": \"null\"\n                }\n              ]\n            }\n          },\n          \"required\": [\n            \"name\",\n            \"fields\"\n          ],\n          \"additionalProperties\": false\n        }\n      },\n      \"required\": [\n        \"expectedRevision\",\n        \"form\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"form_copy","request":{"method":"POST","url":"{{studio_origin}}/api/v1/pages/{{pageId}}/forms/{{formId}}/copy","description":"Copy a form to the exact reviewed native source hash and fields. Not idempotent; reconcile uncertain results by reading forms.\n\nScope: forms:manage\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"pageId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"formId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"pageId\",\n        \"formId\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"expectedRevision\": {\n          \"type\": \"integer\",\n          \"exclusiveMinimum\": 0,\n          \"maximum\": 9007199254740991\n        },\n        \"nativeSourceHash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        },\n        \"nativeFormId\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[A-Za-z][A-Za-z0-9_:-]{0,99}$\"\n        },\n        \"fields\": {\n          \"minItems\": 1,\n          \"maxItems\": 20,\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"object\",\n            \"properties\": {\n              \"name\": {\n                \"type\": \"string\",\n                \"pattern\": \"^[A-Za-z][A-Za-z0-9_-]{0,63}$\"\n              },\n              \"label\": {\n                \"type\": \"string\",\n                \"minLength\": 1,\n                \"maxLength\": 120\n              },\n              \"type\": {\n                \"type\": \"string\",\n                \"enum\": [\n                  \"text\",\n                  \"email\",\n                  \"tel\",\n                  \"textarea\",\n                  \"select\",\n                  \"checkbox\",\n                  \"number\",\n                  \"url\",\n                  \"date\"\n                ]\n              },\n              \"required\": {\n                \"default\": false,\n                \"type\": \"boolean\"\n              },\n              \"placeholder\": {\n                \"default\": \"\",\n                \"type\": \"string\",\n                \"maxLength\": 200\n              },\n              \"options\": {\n                \"default\": [],\n                \"maxItems\": 30,\n                \"type\": \"array\",\n                \"items\": {\n                  \"type\": \"string\",\n                  \"minLength\": 1,\n                  \"maxLength\": 120\n                }\n              },\n              \"maxLength\": {\n                \"default\": 1000,\n                \"type\": \"integer\",\n                \"minimum\": 1,\n                \"maximum\": 5000\n              }\n            },\n            \"required\": [\n              \"name\",\n              \"label\",\n              \"type\"\n            ],\n            \"additionalProperties\": false\n          }\n        }\n      },\n      \"required\": [\n        \"expectedRevision\",\n        \"nativeSourceHash\",\n        \"nativeFormId\",\n        \"fields\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"leads_list","request":{"method":"GET","url":"{{studio_origin}}/api/v1/pages/{{pageId}}/forms/{{formId}}/leads","description":"Read at most 50 saved leads. Pass the last lead id as before to page backward.\n\nScope: leads:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"pageId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"formId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"pageId\",\n        \"formId\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"query\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"before\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"form_test","request":{"method":"POST","url":"{{studio_origin}}/api/v1/pages/{{pageId}}/forms/{{formId}}/test","description":"Create a test lead. deliverToDestination=false is inbox-only; true explicitly sends it to the configured external webhook.\n\nScope: leads:deliver\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"pageId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"formId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"pageId\",\n        \"formId\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"body\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"deliverToDestination\": {\n          \"type\": \"boolean\"\n        }\n      },\n      \"required\": [\n        \"deliverToDestination\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"idempotencyKey\": {\n      \"type\": \"string\",\n      \"minLength\": 8,\n      \"maxLength\": 160,\n      \"pattern\": \"^[a-zA-Z0-9_-]+$\"\n    }\n  },\n  \"required\": [\n    \"params\",\n    \"body\",\n    \"idempotencyKey\"\n  ],\n  \"additionalProperties\": false\n}","header":[{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{idempotency_key}}"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}}}},{"name":"lead_retry","request":{"method":"POST","url":"{{studio_origin}}/api/v1/pages/{{pageId}}/forms/{{formId}}/leads/{{leadId}}/retry","description":"Request delivery retry of an existing saved lead to its configured external destination.\n\nScope: leads:deliver\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"pageId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"formId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"leadId\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"pageId\",\n        \"formId\",\n        \"leadId\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"reference_read","request":{"method":"GET","url":"{{studio_origin}}/api/v1/generations/{{id}}/reference","description":"Read the original reference PNG, with an optional immutable live snapshot hash.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"query\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"live\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        }\n      },\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"design_image_read","request":{"method":"GET","url":"{{studio_origin}}/api/v1/generations/{{id}}/designs/{{candidateId}}/image","description":"Read an authenticated design PNG. Optional v binds the exact current or retained prior image hash.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        },\n        \"candidateId\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"astra-a\",\n            \"astra-b\",\n            \"astra-c\",\n            \"astra-d\",\n            \"openai\",\n            \"xai\",\n            \"google\"\n          ]\n        }\n      },\n      \"required\": [\n        \"id\",\n        \"candidateId\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"query\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"v\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[a-f0-9]{64}$\"\n        }\n      },\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"brand_logo_read","request":{"method":"GET","url":"{{studio_origin}}/api/v1/generations/{{id}}/brand/logo","description":"Read the authenticated brand logo after verifying its saved hash.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}},{"name":"download_read","request":{"method":"GET","url":"{{studio_origin}}/api/v1/generations/{{id}}/download","description":"Download the terminal portable source ZIP and exact validated assets with font licenses. A live draft cannot be downloaded.\n\nScope: pages:read\nComplete input schema:\n{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"params\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uuid\",\n          \"pattern\": \"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$\"\n        }\n      },\n      \"required\": [\n        \"id\"\n      ],\n      \"additionalProperties\": false\n    }\n  },\n  \"required\": [\n    \"params\"\n  ],\n  \"additionalProperties\": false\n}","header":[]}}]}