Get a package document
curl --request GET \
--url https://my.flowsign.app/api/v1/packages/{packageId}/documents/{documentId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://my.flowsign.app/api/v1/packages/{packageId}/documents/{documentId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://my.flowsign.app/api/v1/packages/{packageId}/documents/{documentId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://my.flowsign.app/api/v1/packages/{packageId}/documents/{documentId}';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://my.flowsign.app/api/v1/packages/{packageId}/documents/{documentId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://my.flowsign.app/api/v1/packages/{packageId}/documents/{documentId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
using RestSharp;
var options = new RestClientOptions("https://my.flowsign.app/api/v1/packages/{packageId}/documents/{documentId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
$headers=@{}
$headers.Add("Authorization", "Bearer <token>")
$response = Invoke-WebRequest -Uri 'https://my.flowsign.app/api/v1/packages/{packageId}/documents/{documentId}' -Method GET -Headers $headers{
"data": {
"id": "cmg4v8q2k0003s7xhq1w8n5r7",
"title": "Employment agreement",
"pageCount": 4,
"downloadUrl": "https://xyzcompany.supabase.co/storage/v1/object/sign/pdf/cmg1org00001/cmg1ws000001/packages/cmg1p4k2a0003v9x0hq7d2e1s/completed/cmg1p4k2a0007v9x0d8n3f5t2.pdf?token=eyJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJwZGYvLi4uIn0.k3Yv8Qm2pL1nR7tW4xZc9aB5dE0fG6hJ",
"fields": [
{
"id": "cmg1p4k2a000bv9x0f2r6s8u4",
"pageNumber": 1,
"fieldType": "signature",
"position": {
"x": 0.12,
"y": 0.78
},
"size": {
"width": 0.28,
"height": 0.05
},
"isRequired": true,
"placeholder": "Sign here",
"dropdownOptions": [
"Full time",
"Part time",
"Casual"
],
"radioGroup": "employment-type",
"recipientId": "cmg1p4k2a0005v9x0r1c9t3m7"
}
],
"createdAt": "2026-03-12T09:41:07.000Z",
"updatedAt": "2026-03-12T09:43:52.000Z"
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}Packages
Get a package document
Returns one document with its fields and a download URL that expires after an hour.
GET
https://my.flowsign.app
/
api
/
v1
/
packages
/
{packageId}
/
documents
/
{documentId}
Get a package document
curl --request GET \
--url https://my.flowsign.app/api/v1/packages/{packageId}/documents/{documentId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://my.flowsign.app/api/v1/packages/{packageId}/documents/{documentId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://my.flowsign.app/api/v1/packages/{packageId}/documents/{documentId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://my.flowsign.app/api/v1/packages/{packageId}/documents/{documentId}';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://my.flowsign.app/api/v1/packages/{packageId}/documents/{documentId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://my.flowsign.app/api/v1/packages/{packageId}/documents/{documentId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
using RestSharp;
var options = new RestClientOptions("https://my.flowsign.app/api/v1/packages/{packageId}/documents/{documentId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
$headers=@{}
$headers.Add("Authorization", "Bearer <token>")
$response = Invoke-WebRequest -Uri 'https://my.flowsign.app/api/v1/packages/{packageId}/documents/{documentId}' -Method GET -Headers $headers{
"data": {
"id": "cmg4v8q2k0003s7xhq1w8n5r7",
"title": "Employment agreement",
"pageCount": 4,
"downloadUrl": "https://xyzcompany.supabase.co/storage/v1/object/sign/pdf/cmg1org00001/cmg1ws000001/packages/cmg1p4k2a0003v9x0hq7d2e1s/completed/cmg1p4k2a0007v9x0d8n3f5t2.pdf?token=eyJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJwZGYvLi4uIn0.k3Yv8Qm2pL1nR7tW4xZc9aB5dE0fG6hJ",
"fields": [
{
"id": "cmg1p4k2a000bv9x0f2r6s8u4",
"pageNumber": 1,
"fieldType": "signature",
"position": {
"x": 0.12,
"y": 0.78
},
"size": {
"width": 0.28,
"height": 0.05
},
"isRequired": true,
"placeholder": "Sign here",
"dropdownOptions": [
"Full time",
"Part time",
"Casual"
],
"radioGroup": "employment-type",
"recipientId": "cmg1p4k2a0005v9x0r1c9t3m7"
}
],
"createdAt": "2026-03-12T09:41:07.000Z",
"updatedAt": "2026-03-12T09:43:52.000Z"
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
The workspace the key was issued for, as returned by GET /api/v1/workspaces. Optional: omitting it acts in the key's workspace, and any other id is rejected with 401.
Response
Success
A document attached to a package or template.
Show child attributes
Show child attributes
Was this page helpful?

