CommonPaper API Docs
API Documentation

Access and manage agreement templates


List Templates

GET
https://api.commonpaper.com
/v1/templates

This endpoint returns a list of agreement templates that have been created within Common Paper, including uploaded PDF templates.

By default, the list response includes shared template attributes only (such as name, version, roles, and agreement_type). Type-specific attributes and nested objects (such as governing_law_region or template_csa_order_form) are excluded. Pass full=true to include those attributes in the list response, or use GET /v1/templates/{id} to retrieve a single full template.

Uploaded PDF templates appear with type uploaded_template. These are PDFs uploaded in Common Paper (not Common Paper standard forms). For uploaded_template resources, version, negotiations_allowed, sender_role, recipient_role, and include_terms are blank (null), and standard_version is omitted.

List Templates › query Parameters

page[number]
​integer

Page number to retrieve. Defaults to 1.

Default: 1
page[size]
​integer

Number of records per page. Defaults to 15.

Default: 15
full
​boolean

When true, list responses include type-specific attributes and nested objects (such as governing_law_region and template_csa_order_form). Defaults to false.

Default: false

List Templates › Headers

Authorization
​string · required

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

List Templates › Responses

OK


Create Template

POST
https://api.commonpaper.com
/v1/templates

This endpoint creates a new agreement template in Common Paper. Choose the schema variant that matches the template type you want to create. If type is omitted, the template defaults to NDA. All parameters within a variant are optional and set defaults pre-filled when agreements are created from the template. See Template Parameters for field descriptions.

Create Template › Headers

Authorization
​string · required

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Create Template › Request Body optional

oneOf
Exactly one variant must match.

Decision Table

VariantMatching Criteria
type = object
type = object · requires: type
type = object · requires: type
type = object · requires: type
type = object · requires: type
type = object · requires: type
type = object · requires: type
type = object · requires: type
type = object · requires: type
type = object · requires: type
Properties for NDA template:
type
​string · enum

Optional. When omitted, the template defaults to NDA.

Enum values:
NDA
name
​string

A name for the template.

governing_law_region
​string

The state or region whose laws govern agreements created from this template.

governing_law_country
​string

The country whose laws govern agreements created from this template.

chosen_courts_region
​string

The state or region in which disputes will be resolved.

chosen_courts_country
​string

The country in which disputes will be resolved.

district_or_county
​string

The district or county for dispute resolution.

negotiations_allowed
​boolean

Whether counterparties can propose changes to agreements created from this template.

default_signer_email
​string · email

Default email address pre-filled as the signer when creating agreements from this template.

sender_role
​string

The label for the sending party in the agreement.

recipient_role
​string

The label for the receiving party in the agreement.

sender_last_to_sign
​boolean

When true, the sender signs after the recipient.

include_terms
​boolean

Whether to include standard terms in the agreement.

include_additional_changes
​boolean

Whether to include the additional changes section.

additional_changes
​string

Text of additional changes to include when include_additional_changes is true.

term
​integer
confidentiality_period
​integer
confidentiality_period_perpetual
​boolean
term_period_perpetual
​boolean
purpose
​string
effective_date_type
​string · enum
Enum values:
signature
date
effective_date
​string · date
effective_date_of_confidentiality
​string
​object

Template settings such as standard version and message.

Create Template › Responses

Created


Get Template

GET
https://api.commonpaper.com
/v1/templates/{id}

This endpoint returns the details of a specific agreement template within Common Paper by providing its uuid. Supports both Common Paper standard templates and uploaded PDF templates.

Uploaded PDF templates appear with type uploaded_template. These are PDFs uploaded in Common Paper (not Common Paper standard forms). For uploaded_template resources, version, negotiations_allowed, sender_role, recipient_role, and include_terms are blank (null), and standard_version is omitted.

Get Template › path Parameters

id
​string · uuid · required

The UUID of the resource.

Get Template › Headers

Authorization
​string · required

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Get Template › Responses

OK

​template-schema

A standard template (type template_nda, template_csa, etc.) or an uploaded PDF template (type uploaded_template). Uploaded templates have no standard_version.


Update Template

PATCH
https://api.commonpaper.com
/v1/templates/{id}

This endpoint updates an existing agreement template. Choose the schema variant that matches the template's agreement type (from GET /v1/templates/{id}). Only the fields provided in the request body are changed — omitted fields retain their current values. The template type cannot be changed after creation.

Example: Rename a template and change governing law

TerminalCode
curl -X PATCH "https://api.commonpaper.com/v1/templates/TEMPLATE_UUID" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated NDA", "governing_law_region": "California", "governing_law_country": "United States of America", "chosen_courts_region": "California", "chosen_courts_country": "United States of America" }'

Example: Update NDA term and purpose

TerminalCode
curl -X PATCH "https://api.commonpaper.com/v1/templates/TEMPLATE_UUID" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "term": 2, "confidentiality_period": 3, "purpose": "Evaluating a potential acquisition." }'

Example: Update CSA order form subscription period

TerminalCode
curl -X PATCH "https://api.commonpaper.com/v1/templates/TEMPLATE_UUID" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "template_csa_order_form_attributes": { "subscription_period": 2, "subscription_period_unit": "year(s)", "cloud_service_description": "An analytics and reporting platform." } }'

Example: Enable negotiations and set a default signer

TerminalCode
curl -X PATCH "https://api.commonpaper.com/v1/templates/TEMPLATE_UUID" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "negotiations_allowed": true, "default_signer_email": "legal@example.com", "sender_last_to_sign": true }'

See Template Parameters for field descriptions.

Update Template › path Parameters

id
​string · uuid · required

The UUID of the template to update.

Update Template › Headers

Authorization
​string · required

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Update Template › Request Body

anyOf
At least one variant must match. Multiple variants may match simultaneously.

Decision Table

VariantMatching Criteria
type = object
type = object
type = object
type = object
type = object
type = object
type = object
type = object
type = object
type = object
Properties for Update NDA template:
name
​string

A name for the template.

governing_law_region
​string

The state or region whose laws govern agreements created from this template.

governing_law_country
​string

The country whose laws govern agreements created from this template.

chosen_courts_region
​string

The state or region in which disputes will be resolved.

chosen_courts_country
​string

The country in which disputes will be resolved.

district_or_county
​string

The district or county for dispute resolution.

negotiations_allowed
​boolean

Whether counterparties can propose changes to agreements created from this template.

default_signer_email
​string · email

Default email address pre-filled as the signer when creating agreements from this template.

sender_role
​string

The label for the sending party in the agreement.

recipient_role
​string

The label for the receiving party in the agreement.

sender_last_to_sign
​boolean

When true, the sender signs after the recipient.

include_terms
​boolean

Whether to include standard terms in the agreement.

include_additional_changes
​boolean

Whether to include the additional changes section.

additional_changes
​string

Text of additional changes to include when include_additional_changes is true.

term
​integer
confidentiality_period
​integer
confidentiality_period_perpetual
​boolean
term_period_perpetual
​boolean
purpose
​string
effective_date_type
​string · enum
Enum values:
signature
date
effective_date
​string · date
effective_date_of_confidentiality
​string
​object

Template settings such as standard version and message.

Update Template › Responses

OK


Archive Template

DELETE
https://api.commonpaper.com
/v1/templates/{id}

This endpoint archives an agreement template within Common Paper. Archived templates are removed from the active template list but can be restored from the Common Paper UI.

Archive Template › path Parameters

id
​string · uuid · required

The UUID of the template to archive.

Archive Template › Headers

Authorization
​string · required

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Archive Template › Responses

No Content. The template was archived successfully.

No data returned