Create embed session
Mints a short-lived embed session token bound to one loan. With scopes omitted the session is read-only and carries the standard read set (documents:read, extractions:read, spreads:read), whatever the key holds, and no scope check can fail the mint. Named read scopes are granted by mint authority. A named write (documents:write, extractions:write, extractions:edit, spreads:write) is granted only if the key holds it, or the mint fails with 400 embed_scope_exceeds_key; a named scope an embed session cannot carry fails with 400 embed_scope_not_allowed. Requires a plan that includes the embedded review UI; other plans get a 403.
Requires the embed:write scope. Rate limit: 200 requests per minute per key (the api lane).
Authentication
Bearer token. Use ss_live_… for live data or ss_test_… for the sandbox (test mode). See Authentication.
Headers
Pin the API version, e.g. 2026-10-07. Omit to get the latest. See Versioning.
Request
Optional opaque, stable identifier for the end user you are embedding for. Supply it and that user’s saved work persists across their sessions; omit it and the session keeps nothing. Max 256 characters after trimming, and a blank value is rejected rather than ignored.
Reserved. Stored with the end user’s id, not shown anywhere yet.
Requires external_user_id (a label on its own is a 400). Control
characters are stripped and the value trimmed; max 120 characters, and
a blank value is rejected rather than ignored.
Response headers
The API surface version the server resolved for this request. Always present, regardless of whether the client supplied the request-side SpreadSpace-Version header. Default: 2026-10-07.
Request budget of the endpoint’s rate-limit policy per 60-second sliding window. See Rate limits.
Requests left in the current window. Suppressed on 429 responses produced outside the rate limiter (for example a usage throttle), where a remaining budget would be misleading.
Seconds until a guaranteed-fresh window.
The active policy in limit;w=window-seconds form.
Response
How far the end user’s work survives this session. user means the
mint carried an external_user_id, so saved spreads, preferences
and memo templates come back on that user’s next session. session
means it did not, so everything the end user arranges is discarded when
the frame unloads. Always present.
Echo of the request’s external_user_id, trimmed. Omitted when the
mint carried no end-user id.
Echo of the request’s display_name as stored, with control
characters stripped and the value trimmed. Omitted when the mint carried
no label.