Create a request from a template
A signature request with the template's documents and fields: name one signer for each role, and give its merge fields' values. Like creating a request, it is sent at once unless send is false, and an Idempotency-Key makes retries safe.
bearerAuthAuthorizationBearer <token>A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.
id*stringThe template's id.
Idempotency-Key?stringMakes retries safe: a repeated request with the same key and body returns the original request (in its current state) instead of creating another, for 24 hours. 1-256 characters.
1 <= length <= 256Coss-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
- …
title?stringDefault: the template's title (else its name).
1 <= length <= 200message?stringlength <= 5000signers*array<>One signer for each of the template's roles.
1 <= items <= 20merge_fields?Values of the template's merge fields, by merge_key.
signing_order?stringDefault: the template's.
"parallel""sequential"expires_at?stringdate-timemetadata?Your own key-value pairs, returned with the request and its webhooks.
reminder_interval_days?|1 <= value <= 30send?booleanDefault true.
The signature request.
application/json- response
- response
- …
object*"sign_request""sign_request"id*stringstatus*stringdraft until sent, sent while signers sign, then completed (everyone signed), declined (a signer declined), canceled or expired.
"draft""sent""completed""declined""canceled""expired"title*stringmessage*string|nullsigning_order*string"parallel""sequential"documents*array<>signers*array<>fields*array<>metadata*sandbox*booleanreminder_interval_days*|Days between automatic reminders to email signers; null: none.
expires_at*|date-timeexpired_at*|date-timesent_at*|date-timecompleted_at*|date-timecanceled_at*|date-timedeclined_at*|date-timesigned_document*|The completed document, sealed by coss.com: every document with the signatures and values filled in, and a certificate of completion. null until it is ready (shortly after completed, announced by the sign_request.completed webhook); download it from GET /v1/sign/requests/{id}/signed_document.
created_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.templates.createRequest("stpl_01k7c8m4q2f3e9v6t5r1n0p8yz", { signers: [ { role: "client", name: "Ada Lovelace", email: "ada@example.com", }, { role: "company", name: "Grace Hopper", email: "grace@acme.com", delivery: "embedded", }, ], merge_fields: { client_company: "Analytical Engines Ltd", },});{ "object": "sign_request", "id": "sreq_01k7c8m4q2f3e9v6t5r1n0p8yz", "status": "sent", "title": "Services agreement", "message": null, "signing_order": "parallel", "documents": [ { "id": "sdoc_01k7c8m4q2f3e9v6t5r1n0p8yz", "filename": "agreement.pdf", "sha256": "9f2c6c0f0e1d4b7a8c5e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b8c7d6e5f4a3b2c", "page_count": 2 } ], "signers": [ { "object": "sign_signer", "id": "ssgn_01k7c8m4q2f3e9v6t5r1n0p8yz", "name": "Ada Lovelace", "email": "ada@example.com", "order": 1, "delivery": "email", "authentication": "email_link", "status": "pending", "client_ref": null, "viewed_at": null, "signed_at": null, "declined_at": null, "decline_reason": null } ], "fields": [ { "object": "sign_field", "id": "sfld_01k7c8m4q2f3e9v6t5r1n0p8yz", "signer_id": "ssgn_01k7c8m4q2f3e9v6t5r1n0p8yz", "document_id": "sdoc_01k7c8m4q2f3e9v6t5r1n0p8yz", "type": "signature", "page": 2, "x": 72, "y": 640, "width": 140, "height": 12, "required": true, "label": null, "anchor": "{{signature:signer_1}}" } ], "metadata": {}, "sandbox": false, "reminder_interval_days": 3, "expires_at": null, "expired_at": null, "sent_at": "2026-10-26T15:04:05.000Z", "completed_at": null, "canceled_at": null, "declined_at": null, "signed_document": null, "created_at": "2026-10-26T15:04:05.000Z"}