# Retrieve details of existing signing session

Returns details of the existing signing session.

Endpoint: GET /sign/sessions/{session_id}
Version: 1.0.0
Security: APIKey

## Security:

  - `APIKey` (unknown)
    http bearer API Key

## Path parameters:

  - `session_id` (string, required)
    The UUID of the signing session.

## Header parameters:

  - `Accept` (string, required)
    Specify the response format.

## Response 200:

  - `200` (unknown)
    Successfully retrieved the signing session.

## Response 200 fields (application/json):

  - `data` (object, required)

  - `data.id` (string, required)
    Example: 0196ae5b-2e9d-729f-aba5-fa4db6f881fd

  - `data.status` (string, required)
    Lifecycle status of the signing session.
- `pending`: session created; files and participants can still be changed
- `starting`: start is in progress
- `started`: signing is open; participants can access Sign UI
- `completed`: all participants have signed
- `cancelled`: session was cancelled after signing started
- `expired`: session expired before completion
- `discarded`: session was discarded
    Enum: "pending", "starting", "started", "completed", "cancelled", "expired", "discarded"

  - `data.document_name` (string, required)
    Name of the document shown in the signing UI.
    Example: Employment Agreement

  - `data.document_author` (string, required)
    Author name associated with the document.
    Example: HR Department

  - `data.external_id` (any, required)

  - `data.signature_position` (string, required)
    Where signatures are placed in the final PDF.
- `inline`: signatures are placed in the provided participant `signature_location`. Participants without a location remain invisible but are still digitally signed.
- `start`: a separate signature page is attached to the beginning of the PDF.
- `end`: a separate signature page is attached to the end of the PDF.
    Enum: "inline", "start", "end"

  - `data.expires_at` (string, required)
    Expiration time as an RFC 3339 timestamp, including a timezone. Must be at least one hour and no more than 180 days after creation. Defaults to 180 days.
    Example: 2026-03-31T10:30:00.000Z

  - `data.ui_domain` (any, required)

  - `data.email_from` (any, required)

  - `data.files` (array)

  - `data.files.id` (string, required)

  - `data.files.file_name` (string, required)
    Example: Employment Agreement.pdf

  - `data.files.file_size` (integer, required)

  - `data.files.index` (integer, required)
    Zero-based position of the file in the session.

  - `data.participants` (array)
    Signers on the signing session.

  - `data.participants.id` (string, required)
    Example: 0196ae5b-2e9d-729f-aba5-fa4db6f88211

  - `data.participants.status` (string, required)
    Lifecycle status of a participant on a signing session.
- `pending`: created; has not yet opened Sign UI
- `viewing`: participant has opened Sign UI
- `signing`: signing in progress
- `signed`: participant has signed
- `declined`: participant declined to sign
- `excused`: participant was excused from signing
    Enum: "pending", "viewing", "signing", "signed", "declined", "excused"

  - `data.participants.status_changed_at` (string, required)
    When the participant status last changed.

  - `data.participants.decline_reason` (string)
    Reason given when the participant declined.
    Example: Terms are not acceptable

  - `data.participants.name` (string, required)
    Example: John Doe

  - `data.participants.external_id` (any, required)

  - `data.participants.ui_language` (string)
    Enum: "en-GB", "fi", "de", "pl", "sv"

  - `data.participants.signing_order` (integer)
    Participants sign in ascending order from 0 to N. Participants sharing the same value sign in parallel.
    Example: 0

  - `data.participants.invitations` (array)
    Optional list of invitations for this participant.

  - `data.participants.invitations.id` (string, required)
    Example: 0196ae5b-2e9d-729f-aba5-fa4db6f88311

  - `data.participants.invitations.signing_url` (string)
    URL to open the signing flow for this invitation. Present only for manual delivery, when you share the link yourself. Omitted for email or SMS, which Docue delivers.
    Example: https://sign.docue.com/s/#access-code

  - `data.participants.invitations.delivery` (object, required)
    Invitation delivery channel. Manual means you share the signing URL; Docue does not send email or SMS. Email and SMS require a target.

  - `data.participants.invitations.delivery.type` (string, required)
    Enum: "email", "sms", "manual"

  - `data.participants.invitations.delivery.target` (string | null)
    Email address or E.164 phone number. Unused for manual.
    Example: john.doe@example.org

  - `data.participants.invitations.delivery.message` (string)
    Optional short note shown with the signing link. Not the full email or SMS body — the surrounding template is fixed.
    Example: Please sign by Friday.

  - `data.participants.invitations.timeline` (object, required)

  - `data.participants.invitations.timeline.created_at` (string, required)
    When the invitation was created.
    Example: 2026-06-30T11:04:45.331Z

  - `data.participants.invitations.timeline.sent_at` (string | null, required)
    When the invitation was sent, or null if not yet sent.
    Example: null

  - `data.participants.invitations.timeline.opened_at` (string | null, required)
    When the recipient first opened the signing link, or null if not yet opened.
    Example: null

  - `data.participants.invitations.timeline.revoked_at` (string | null, required)
    When the invitation was revoked, or null if still active.
    Example: null

  - `data.participants.signing_methods` (array)
    List of allowed signature methods for this participant.

  - `data.participants.signing_methods.type` (string, required)
    Authentication method type. `password` is only valid for `view_gate`.
    Enum: "password", "otp_email", "otp_sms", "eid"

  - `data.participants.signing_methods.target` (string)
    Optional target value for this type (see schema description).
    Example: fi_nordea

  - `data.participants.view_gate` (object)
    View gate configuration, if one was set at create/update time.
For `type: "password"`, `target` is **not** returned on subsequent reads.
The single exception: when a request creates or rotates a password gate
without supplying a `target` (i.e. the server generates one —
`view_gate: { type: "password" }`), the response to **that one request**
carries the generated plaintext as `view_gate.target`. You must capture it
on the originating response and deliver it to the signer through a separate
channel; it is not retrievable later.
For `type: "eid"`, `target` (when set) reflects the pinned provider key.
For `type: "otp_email"` / `"otp_sms"`, `target` is always omitted (signer-
entered at challenge time).

  - `data.webhooks` (array)

  - `data.webhooks.url` (string, required)

  - `data.webhooks.secret_configured` (boolean, required)
    Whether a signing secret was set for this endpoint.

  - `meta` (object, required)

  - `meta.status` (object, required)

  - `meta.status.code` (integer, required)

  - `meta.status.text` (string, required)

  - `meta.pagination` (object)
    Present when the result is paged. Send the next pointer back to read the following page.

  - `meta.pagination.items` (integer, required)
    How many records are in this page.

  - `meta.pagination.total` (integer | null, required)
    How many records match in total. Empty when the total was not counted.

  - `meta.pagination.last_page` (integer | null, required)
    Last page number for this page size. Empty when the total was not counted.

  - `meta.pagination.page_size` (integer, required)
    Maximum number of records in a page.

  - `meta.pagination.has_pages` (boolean, required)
    Whether another page exists before or after this one.

  - `meta.pagination.is_first` (boolean, required)
    Whether this is the first page.

  - `meta.pagination.pointer` (object, required)

  - `meta.pagination.pointer.previous` (string | null, required)
    Pointer to the previous page. Empty on the first page.

  - `meta.pagination.pointer.current` (string | null, required)
    Pointer for this page. Empty on the first page.

  - `meta.pagination.pointer.next` (string | null, required)
    Pointer to the next page. Empty on the last page.

## Response 404:

  - `404` (unknown)
    Resource not found.

## Response 404 fields (application/json):

  - `data` (null, required)
    Always null for error responses.

  - `meta` (object, required)

  - `meta.status` (object, required)

  - `meta.status.code` (integer, required)

  - `meta.status.text` (string, required)

  - `meta.error` (object, required)

  - `meta.error.text` (string, required)

  - `meta.error.details` (object)
    Validation details, when available, as a map of what failed to a message or a list of messages.

