Create a request from a template

POST
/v1/sign/templates/{id}/requests

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.

Authorization

bearerAuth
headerAuthorizationBearer <token>

A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.

Path Parameters

id*string

The template's id.

Header Parameters

Idempotency-Key?string

Makes 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.

Length1 <= length <= 256
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.

Value in"2026-10-10"

Request Body

application/json
  1. body
title?string

Default: the template's title (else its name).

Length1 <= length <= 200
message?string
Lengthlength <= 5000
signers*array<>

One signer for each of the template's roles.

Items1 <= items <= 20
merge_fields?

Values of the template's merge fields, by merge_key.

signing_order?string

Default: the template's.

Value in"parallel""sequential"
expires_at?string
Formatdate-time
metadata?

Your own key-value pairs, returned with the request and its webhooks.

reminder_interval_days?|
Range1 <= value <= 30
send?boolean

Default true.

Response Body

The signature request.

application/json
  1. response
object*"sign_request"
Value in"sign_request"
id*string
status*string

draft until sent, sent while signers sign, then completed (everyone signed), declined (a signer declined), canceled or expired.

Value in"draft""sent""completed""declined""canceled""expired"
title*string
message*string|null
signing_order*string
Value in"parallel""sequential"
documents*array<>
signers*array<>
fields*array<>
metadata*
sandbox*boolean
reminder_interval_days*|

Days between automatic reminders to email signers; null: none.

expires_at*|
Formatdate-time
expired_at*|
Formatdate-time
sent_at*|
Formatdate-time
completed_at*|
Formatdate-time
canceled_at*|
Formatdate-time
declined_at*|
Formatdate-time
signed_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*string
Formatdate-time
import { 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"}