- List signature requests GET
- Create a signature request POST
- Retrieve a signature request GET
- Delete a signature request DELETE
- Send a draft signature request POST
- Cancel a signature request POST
- List a signature request's audit trail GET
- Remind signers POST
- Download the signed document GET
- Create a signing session POST
Create a signing session
A short-lived link to the signing page for one embedded signer of a sent request. Your app vouches for who the signer is (the audit trail records customer_asserted), so create it only for that signed-in user, when they open the page that shows it. Embed the url in an iframe from an origin in your Sign settings' allowed_origins (mountSigning from coss/sign does it), or redirect to it. Each call creates a new session.
bearerAuthAuthorizationBearer <token>A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.
id*stringThe signature request's id.
signer_id*stringThe signer's id (signers[].id of the request).
Coss-Version?"2026-10-10"The API version (a date) to use for this request. Defaults to your organization's version, pinned to the latest one when it first used the API and upgraded from the dashboard. The SDK always sends the version it was built for.
"2026-10-10"application/json- body
- body
- …
expires_in?integerSeconds until the link expires: default 3600, at most 86400. Mint one when your user opens the page that shows it.
60 <= value <= 86400The session, with its link.
application/json- response
- response
- …
object*"sign_session""sign_session"id*stringrequest_id*stringsigner_id*stringurl*stringThe signing page: embed it in an iframe (from an allowed origin, with coss/sign's mountSigning) or redirect to it. The token is in the URL fragment, so it never reaches a server log: show it only to that signer.
token*stringThe secret part of url, shown only here.
expires_at*stringdate-timeimport { Coss } from "coss";const coss = new Coss({ apiKey: process.env.COSS_API_KEY, baseUrl: "https://api.coss.com",});const { data, error } = await coss.sign.sessions.create("sreq_01k7c8m4q2f3e9v6t5r1n0p8yz", "ssgn_01k7c8m4q2f3e9v6t5r1n0p8yz", { expires_in: 3600,});{ "object": "sign_session", "id": "sgs_01k7c8m4q2f3e9v6t5r1n0p8yz", "request_id": "sreq_01k7c8m4q2f3e9v6t5r1n0p8yz", "signer_id": "ssgn_01k7c8m4q2f3e9v6t5r1n0p8yz", "url": "https://sign.example/s/sgs_01k7c8m4q2f3e9v6t5r1n0p8yz#cosss_…", "token": "cosss_…", "expires_at": "2026-10-26T15:04:05.000Z"}