Settings
Sig's settings and the month's usage.
The SigSettings object
Attributes
file_to_foliorequired Type:booleanFile each completed package, its certificate and its evidence in Folio. Needs Folio.
check_with_nibrequired Type:booleanCheck each signature with Nib against the signer's references as it's made.
folio_folderrequired Type:stringThe Folio folder packages are filed in.
folio_classrequired Type:stringnullThe retention class they're filed under; null is Folio's default.
folio_sender_choosesrequired Type:booleanSenders may choose the folder and class for each package.
replies_to_orgrequired Type:booleanSigners' replies go to your organisation's reply-to address rather than to the person who sent the package.
attach_copyrequired Type:booleanThe signed copy is attached to the email everyone gets once the package is complete. Off sends a link instead.
updated_atrequired Type:stringnullWhen the settings were last changed; null when they never have been.
{
"file_to_folio": true,
"check_with_nib": false,
"folio_folder": "Signed",
"folio_class": null,
"folio_sender_chooses": false,
"replies_to_org": false,
"attach_copy": true,
"updated_at": "2026-10-13T10:00:00Z"
} Read Sig's settings
GET /sig/settings
Needs sig:packages:read: See packages, their signers and signed files
Whether completed packages are filed in Folio and whether signatures are checked with Nib. Both are off until the organisation turns them on.
Returns
200Type:SigSettingsThe settings400Type:Probleminvalid_request,invalid_version,idempotency_key_requiredorinvalid_signature401Type:Problemunauthorized403Type:Problempermission_denied,org_suspended, oraddress_not_allowed(your organisation only accepts requests from the addresses it has listed)404Type:Problemnot_found421Type:Problemwrong_region429Type:Problemrate_limitedorquota_exceededdefaultType:Probleminternal
curl "https://api.unforged.sh/sig/settings" \
-H "Authorization: Bearer $UNFORGED_KEY" \
-H "Unforged-Version: 2026-10-14" import requests
r = requests.get(
"https://api.unforged.sh/sig/settings",
headers={"Authorization": f"Bearer {UNFORGED_KEY}", "Unforged-Version": "2026-10-14"},
)
print(r.json()) const res = await fetch('https://api.unforged.sh/sig/settings', {
method: 'GET',
headers: { Authorization: `Bearer ${process.env.UNFORGED_KEY}`, 'Unforged-Version': '2026-10-14' },
});
console.log(await res.json()); {
"file_to_folio": true,
"check_with_nib": false,
"folio_folder": "Signed",
"folio_class": null,
"folio_sender_chooses": false,
"replies_to_org": false,
"attach_copy": true,
"updated_at": "2026-10-13T10:00:00Z"
} Change Sig's settings
PUT /sig/settings
Needs sig:settings:manage: Sig settings: Folio filing and Nib checks
Turning on Folio filing needs Folio for the organisation (else 400).
Request body
file_to_foliorequired Type:booleancheck_with_nibrequired Type:booleanfolio_folderoptional Type:stringUnchanged when left out.
folio_classoptional Type:stringEmpty for Folio's default; unchanged when left out.
folio_sender_choosesoptional Type:booleanUnchanged when left out.
replies_to_orgoptional Type:booleanUnchanged when left out.
attach_copyoptional Type:booleanUnchanged when left out.
Returns
200Type:SigSettingsChanged400Type:Probleminvalid_request,invalid_version,idempotency_key_requiredorinvalid_signature401Type:Problemunauthorized403Type:Problempermission_denied,org_suspended, oraddress_not_allowed(your organisation only accepts requests from the addresses it has listed)404Type:Problemnot_found413Type:Problemtoo_large421Type:Problemwrong_region429Type:Problemrate_limitedorquota_exceededdefaultType:Probleminternal
curl -X PUT "https://api.unforged.sh/sig/settings" \
-H "Authorization: Bearer $UNFORGED_KEY" \
-H "Unforged-Version: 2026-10-14" \
-H "Content-Type: application/json" \
-d '{}' import requests
r = requests.put(
"https://api.unforged.sh/sig/settings",
headers={"Authorization": f"Bearer {UNFORGED_KEY}", "Unforged-Version": "2026-10-14"},
json={},
)
print(r.json()) const res = await fetch('https://api.unforged.sh/sig/settings', {
method: 'PUT',
headers: { Authorization: `Bearer ${process.env.UNFORGED_KEY}`, 'Unforged-Version': '2026-10-14', 'Content-Type': 'application/json' },
body: JSON.stringify({}),
});
console.log(await res.json()); {
"file_to_folio": true,
"check_with_nib": false,
"folio_folder": "Signed",
"folio_class": null,
"folio_sender_chooses": false,
"replies_to_org": false,
"attach_copy": true,
"updated_at": "2026-10-13T10:00:00Z"
} Read where signers go once they've finished
GET /sig/settings/return
Needs sig:packages:read: See packages, their signers and signed files
The link signers are sent back to once they've signed or declined, unless a package has its own return_url, and the origins a return link may use besides your verified domains.
Returns
200Type:SigReturnSettingsThe settings400Type:Probleminvalid_request,invalid_version,idempotency_key_requiredorinvalid_signature401Type:Problemunauthorized403Type:Problempermission_denied,org_suspended, oraddress_not_allowed(your organisation only accepts requests from the addresses it has listed)404Type:Problemnot_found421Type:Problemwrong_region429Type:Problemrate_limitedorquota_exceededdefaultType:Probleminternal
curl "https://api.unforged.sh/sig/settings/return" \
-H "Authorization: Bearer $UNFORGED_KEY" \
-H "Unforged-Version: 2026-10-14" import requests
r = requests.get(
"https://api.unforged.sh/sig/settings/return",
headers={"Authorization": f"Bearer {UNFORGED_KEY}", "Unforged-Version": "2026-10-14"},
)
print(r.json()) const res = await fetch('https://api.unforged.sh/sig/settings/return', {
method: 'GET',
headers: { Authorization: `Bearer ${process.env.UNFORGED_KEY}`, 'Unforged-Version': '2026-10-14' },
});
console.log(await res.json()); Change where signers go once they've finished
PUT /sig/settings/return
Needs sig:settings:manage: Sig settings: Folio filing and Nib checks
A return link must start with https:// and be on one of your verified domains, or on one of the origins you list here (400 otherwise). Signers arrive with package_id, signer_id and outcome (signed, approved or declined) added to the link.
Request body
default_urloptional Type:stringnulloriginsoptional Type:string[]
Returns
200Type:SigReturnSettingsChanged400Type:Probleminvalid_request,invalid_version,idempotency_key_requiredorinvalid_signature401Type:Problemunauthorized403Type:Problempermission_denied,org_suspended, oraddress_not_allowed(your organisation only accepts requests from the addresses it has listed)404Type:Problemnot_found413Type:Problemtoo_large421Type:Problemwrong_region429Type:Problemrate_limitedorquota_exceededdefaultType:Probleminternal
curl -X PUT "https://api.unforged.sh/sig/settings/return" \
-H "Authorization: Bearer $UNFORGED_KEY" \
-H "Unforged-Version: 2026-10-14" \
-H "Content-Type: application/json" \
-d '{}' import requests
r = requests.put(
"https://api.unforged.sh/sig/settings/return",
headers={"Authorization": f"Bearer {UNFORGED_KEY}", "Unforged-Version": "2026-10-14"},
json={},
)
print(r.json()) const res = await fetch('https://api.unforged.sh/sig/settings/return', {
method: 'PUT',
headers: { Authorization: `Bearer ${process.env.UNFORGED_KEY}`, 'Unforged-Version': '2026-10-14', 'Content-Type': 'application/json' },
body: JSON.stringify({}),
});
console.log(await res.json()); The month's signing and what it costs
GET /sig/usage
Needs org:read: See org, members, usage
One UTC month (period: current, the default, or YYYY-MM): packages sent and completed, documents signed and the estimated charge so far, in the currency your organisation is billed for Sig in. Only signed documents are charged.
Parameters
periodqueryoptional Type:string
Returns
200Type:SigUsageThe month's usage400Type:Probleminvalid_request,invalid_version,idempotency_key_requiredorinvalid_signature401Type:Problemunauthorized403Type:Problempermission_denied,org_suspended, oraddress_not_allowed(your organisation only accepts requests from the addresses it has listed)404Type:Problemnot_found421Type:Problemwrong_region429Type:Problemrate_limitedorquota_exceededdefaultType:Probleminternal
curl "https://api.unforged.sh/sig/usage" \
-H "Authorization: Bearer $UNFORGED_KEY" \
-H "Unforged-Version: 2026-10-14" import requests
r = requests.get(
"https://api.unforged.sh/sig/usage",
headers={"Authorization": f"Bearer {UNFORGED_KEY}", "Unforged-Version": "2026-10-14"},
)
print(r.json()) const res = await fetch('https://api.unforged.sh/sig/usage', {
method: 'GET',
headers: { Authorization: `Bearer ${process.env.UNFORGED_KEY}`, 'Unforged-Version': '2026-10-14' },
});
console.log(await res.json()); {
"period_start": "2026-10-01T00:00:00Z",
"period_end": "2026-11-01T00:00:00Z",
"packages_sent": 42,
"packages_completed": 37,
"documents_signed": 61,
"unit_price": "0.65",
"estimated_charge": "39.65",
"currency": "gbp",
"pricing": "list"
}