Skip to main content

API reference

Signers

Search signer assignments and delegate a signer slot.

2 endpoints. Every path below is relative to the base URL.

On this page
Base URL
https://api-uat.softsages.com/core

POST/api/v1/inkfree/envelopes/{id}/signers/{email}/delegate

Delegate a signer slot

Requires the X-API-Key header

Reassigns one signer slot to a different person. The original signer identified by {email} is replaced by the signer described in the request body, who receives a fresh signing invitation. Emits a signer.delegated event.

Parameters

NameInTypeRequiredDescription
idpathstringRequiredEnvelope id — a 36-character UUID.Example: env_xyz789
emailpathstring (email)RequiredEmail address of the current signer whose slot is being delegated.Example: priya.sharma@example.com

Request bodyapplication/json · required

Schema: DocumentSigner

FieldTypeRequiredDescription
namestringOptionalSigner's display name.
emailstring (email)OptionalSigner's email address — where the invitation is sent.
signstringOptionalSignature state or captured signature reference.
initialsstringOptionalCaptured initials reference.
groupstringOptionalSigner group, when signers are batched into rounds.
requestRolestringOptionalRole this signer plays, e.g. Signer, Approver, CC.
companyNamestringOptionalSigner's company, when collected.
titlestringOptionalSigner's job title, when collected.
privateMessagestringOptionalMessage shown only to this signer.
delegatedbooleanOptionalTrue once this slot has been delegated away.default: false
delegatedTostringOptionalEmail of the person this slot was delegated to.
delegatedFromstringOptionalEmail of the person who delegated this slot.
formUrlstringOptionalRead-only signing URL for this signer.read-only
Example body
{
  "name": "Sam Okafor",
  "email": "sam.okafor@example.com",
  "privateMessage": "Priya is out this week — please sign in her place."
}

Responses

200

Signer delegated.

Returns ApiResponse

FieldTypeRequiredDescription
codeintegerOptionalHTTP status code, repeated in the body.
messagestringOptionalCreated object id, or a confirmation message.
200 response
{
  "code": 200,
  "message": "Signer delegated successfully."
}
400

The request was malformed or violated a validation rule.

Returns Error

400 response
{
  "code": 400,
  "message": "name is required"
}
401

The API key is missing, malformed, unknown, expired, revoked, or inactive.

Returns Error

401 response
{
  "code": 401,
  "message": "Invalid API key"
}
404

The envelope does not exist, or it belongs to another tenant. The two cases are deliberately indistinguishable.

Returns Error

404 response
{
  "code": 404,
  "message": "envelope not found"
}
429

Per-key rate limit exceeded. Back off and retry.

Returns Error

429 response
{
  "code": 429,
  "message": "Rate limit exceeded. Try again later."
}

Example request

curl
curl -X POST "https://api-uat.softsages.com/core/api/v1/inkfree/envelopes/env_xyz789/signers/priya.sharma%40example.com/delegate" \
  -H "X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Sam Okafor",
  "email": "sam.okafor@example.com",
  "privateMessage": "Priya is out this week — please sign in her place."
}'

GET/api/v1/inkfree/signers

Find signer assignments by email

Requires the X-API-Key header

Returns every signer assignment matching an email address across the tenant's envelopes — pending and completed alike — newest first, capped at 100 items.

Keys in each row are the SQL column labels, in upper case. SIGNER holds the full signer object from the envelope; the remaining keys describe the envelope it belongs to.

Parameters

NameInTypeRequiredDescription
emailquerystring (email)RequiredSigner email address to search for. Required.Example: priya.sharma@example.com
sincequerystringOptionalKeyset cursor — ISO 8601 local date-time of the last item from the previous page. No Z suffix and no numeric offset; both are rejected with 400.Example: 2026-01-15T10:30:00
afterquerystringOptionalKeyset cursor — envelope id of the last item from the previous page. Pair with since.Example: env_xyz789

Responses

200

Up to 100 signer assignments.

Returns SignerAssignmentRow[]

FieldTypeRequiredDescription
SIGNERDocumentSignerOptional
ENVELOPE_IDstringOptionalId of the envelope this assignment belongs to — a UUID.
ENVELOPE_SUBJECTstringOptionalSubject line of that envelope.
ENVELOPE_STATUSstringOptionalStatus of that envelope.
ENVELOPE_UPDATED_ONstringOptionalWhen the envelope last changed. Also the sort key — results are newest-first.
ENVELOPE_CREATED_ONstringOptionalWhen the envelope was created.
200 response
[
  {
    "SIGNER": {
      "name": "Priya Sharma",
      "email": "priya.sharma@example.com",
      "sign": "signed"
    },
    "ENVELOPE_ID": "env_xyz789",
    "ENVELOPE_SUBJECT": "NDA for review",
    "ENVELOPE_STATUS": "Signed",
    "ENVELOPE_UPDATED_ON": "2026-01-15T10:30:00",
    "ENVELOPE_CREATED_ON": "2026-01-14T09:00:00"
  }
]
400

The request was malformed or violated a validation rule.

Returns Error

400 response
{
  "code": 400,
  "message": "name is required"
}
401

The API key is missing, malformed, unknown, expired, revoked, or inactive.

Returns Error

401 response
{
  "code": 401,
  "message": "Invalid API key"
}
429

Per-key rate limit exceeded. Back off and retry.

Returns Error

429 response
{
  "code": 429,
  "message": "Rate limit exceeded. Try again later."
}

Example request

curl
curl "https://api-uat.softsages.com/core/api/v1/inkfree/signers?email=priya.sharma%40example.com" \
  -H "X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"