Request
The editor sends JSON containingexportData, with its layout, identity, profile slug, and metadata. An optional installation_id selects an installation; the backend verifies that its account matches the signed-in user. The backend replaces the configuration username with the session username.
default; accepted slugs use 1–50 letters, digits, underscores, or hyphens and are lowercased. The client-supplied embedCode does not control the final V2 embed.
Response
An installation-required response includes
{"error":"not_installed","installUrl":"..."}. Install the App and retry publication from the editor. Other failures use an error string; some GitHub failures also include details.
Writes and retries
Publication targets the signed-in user’s profile repository. It writes JSON and initial SVGs ongitascii, and the README and workflow on the repository default branch. It replaces README content. These operations span separate GitHub writes; they are not one cross-branch transaction.
Workflow dispatch, configuration caching, and lifecycle email work can fail independently without turning a completed publication into a failed response. A 200 does not guarantee that the dispatched Action has completed. A 500 can follow an earlier successful write; inspect repository files before retrying. Retrying can create a new revision and replace the README again.
See architecture for ordering and troubleshooting for recovery. This endpoint does not establish a general-purpose personal-access-token authentication contract.
Source: publisher route.