Appearance
Get a template
GET /api/v1/templates/{id}
With its fill-ins and the intake form that answers them, so you know what to supply. Needs the read permission.
| Permission | read |
| MCP tool | get_template |
Request
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | — |
Responses
| Status | Meaning |
|---|---|
200 | The template. |
401 | No key, or a key that is unknown, expired or revoked, or whose creator is no longer an owner or admin. |
403 | The key lacks the permission, or it is an API key and the workspace isn't on Teams & Platform. |
404 | Not found in the key's workspace (a key works only in the workspace it was made in; get_workspace says which). |
429 | More than 120 calls a minute through this key, more than 2000 from one network address (for IPv6, its /56 block) across all keys, or a limit on sending reached: the key's daily sends, the plan's or a recipient's daily requests, or the workspace's waiting approvals. |
Errors share one shape, { "message": "…" }: see Errors and rate limits.
200 body
| Field | Type | Description |
|---|---|---|
id | string (uuid) | — |
title | string | — |
source_type | string | — |
status | string | — |
draft_revision | integer | — |
fill_ins | array of objects | — |
fill_ins[].key | string | — |
fill_ins[].label | string | — |
fill_ins[].value | string or null | — |
team_access | string | — |
created_at | string (date-time) or null | — |
updated_at | string (date-time) or null | — |
roles | array of string | Who signs, by role, in the order the fields appear: a signing request names a recipient for each. |
form | object or null | The intake form whose answers fill the template, if it has fill-ins. |
Example
json
{
"id": "5d0f8c3a-6b1e-4f2a-9c7d-3e8b1a2f4c6d",
"title": "Mutual NDA",
"source_type": "template",
"status": "draft",
"draft_revision": 4,
"fill_ins": [
{
"key": "client_name",
"label": "Client name",
"value": null
},
{
"key": "effective_date",
"label": "Effective date",
"value": null
}
],
"team_access": "view",
"created_at": "2026-10-02T14:03:19.000Z",
"updated_at": "2026-10-28T09:12:44.000Z",
"roles": [
"client"
],
"form": {
"version": 1,
"title": "Mutual NDA",
"steps": [
{
"id": "parties",
"title": "The other party",
"questions": [
{
"key": "client_name",
"label": "Client name",
"type": "text",
"required": true,
"fills": [
"client_name"
]
},
{
"key": "effective_date",
"label": "Effective date",
"type": "date",
"required": true,
"fills": [
"effective_date"
]
}
]
}
]
}
}Examples
bash
curl https://tryjustdocs.com/api/v1/templates/5d0f8c3a-6b1e-4f2a-9c7d-3e8b1a2f4c6d \
-H "Authorization: Bearer $JUSTDOCS_API_KEY"js
const response = await fetch("https://tryjustdocs.com/api/v1/templates/5d0f8c3a-6b1e-4f2a-9c7d-3e8b1a2f4c6d", {
headers: {
Authorization: `Bearer ${process.env.JUSTDOCS_API_KEY}`,
},
});
if (!response.ok) throw new Error((await response.json()).message);
const result = await response.json();python
import os
import requests
response = requests.get(
"https://tryjustdocs.com/api/v1/templates/5d0f8c3a-6b1e-4f2a-9c7d-3e8b1a2f4c6d",
headers={"Authorization": f"Bearer {os.environ['JUSTDOCS_API_KEY']}"},
timeout=30,
)
response.raise_for_status()
result = response.json()