curl --request GET \
--url https://app.vumasign.com/api/v1/templates/{templateId}/people \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.vumasign.com/api/v1/templates/{templateId}/people"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.vumasign.com/api/v1/templates/{templateId}/people', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.vumasign.com/api/v1/templates/{templateId}/people"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"people": [
{
"id": "3f2a9c51d07e48b6a1c4e95b0d2f7a68",
"heading": "Employee",
"kind": "principal",
"principal": true,
"document_id": "01960000-0000-4000-8000-00000000d0c5",
"page": 1,
"proposed": {
"decision": "signer",
"subject_key": null,
"subject_label": null,
"presence": null,
"role_name": "Employee",
"presign_hint": false
},
"offered": [
"signer",
"mandate_signed"
],
"reason": "A “Employee” section with 1 field on page 1",
"fields": [
{
"id": "01960000-0000-4000-8000-00000000f1e1",
"kind": "data",
"field_type": "text",
"data_key": "staff.full_name",
"suggested_key": "contract.employee_name"
}
],
"current": {
"subject_key": null,
"role_name": "Employee"
}
}
]
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}The people a template is about or signed by, each with a proposed decision.
What the editor’s People step shows: each person Vumasign found on the form — a heading such as “Spouse” or “Dependant 2”, or the caption under a signature line — with a stable id, the decision it proposes and why, the decisions it may take, the fields in that part of the form, and the subject and role that already exist for it. It writes nothing. ⚠️ heading and reason quote the form. Test and live keys alike.
curl --request GET \
--url https://app.vumasign.com/api/v1/templates/{templateId}/people \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.vumasign.com/api/v1/templates/{templateId}/people"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.vumasign.com/api/v1/templates/{templateId}/people', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.vumasign.com/api/v1/templates/{templateId}/people"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"people": [
{
"id": "3f2a9c51d07e48b6a1c4e95b0d2f7a68",
"heading": "Employee",
"kind": "principal",
"principal": true,
"document_id": "01960000-0000-4000-8000-00000000d0c5",
"page": 1,
"proposed": {
"decision": "signer",
"subject_key": null,
"subject_label": null,
"presence": null,
"role_name": "Employee",
"presign_hint": false
},
"offered": [
"signer",
"mandate_signed"
],
"reason": "A “Employee” section with 1 field on page 1",
"fields": [
{
"id": "01960000-0000-4000-8000-00000000f1e1",
"kind": "data",
"field_type": "text",
"data_key": "staff.full_name",
"suggested_key": "contract.employee_name"
}
],
"current": {
"subject_key": null,
"role_name": "Employee"
}
}
]
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}Authorizations
Authorization: Bearer vsk_live_…. Chosen over a bespoke X-API-KEY header because every client, proxy and log-redaction rule already knows this one. What a key may DO is its scopes — see x-scopes at the root of this document and x-required-scope on each operation. The scope list is not written here because OpenAPI reserves a requirement’s scope array for oauth2 and openIdConnect and requires it to be empty for an http scheme.
Path Parameters
The template’s id, as returned by the list endpoint.
A template id.
"01960000-0000-4000-8000-0000000007e1"
Response
Every person found on the template, with a proposed decision each.
The people.
In the order a reader meets them.
Show child attributes
Show child attributes