# `proposal.submit` Submit an open proposal for the store owner's review (the owner is mailed a link). The proposalId comes from your first recorded mutation's response — or proposals.list. - **scope**: `proposals:write` - **storefront-visible** (bumps the catalog generation): no - **destructive**: no ## Payload | field | type | required | notes | |---|---|---|---| | `proposalId` | string (/^prp_[0-9A-HJKMNP-TV-Z]{26}$/) | yes | | | `title` | string (≤120 chars) | yes | | | `summary` | string (≤2000 chars, default "") | no | | ### JSON Schema ```json { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "proposalId": { "type": "string", "pattern": "^prp_[0-9A-HJKMNP-TV-Z]{26}$" }, "title": { "type": "string", "minLength": 1, "maxLength": 120 }, "summary": { "default": "", "type": "string", "maxLength": 2000 } }, "required": [ "proposalId", "title" ], "additionalProperties": false } ```