Skip to main content
GET
Get an offer by ID — returns the full envelope (offer + payment plans + assets).

Authorizations

x-api-key
string
header
required

API key for authentication (can be generated in the settings)

Path Parameters

id
string
required

Response

Offer retrieved successfully

id
string
required

The ID of the element

createdAt
string<date-time>
required

The created at date of the element

updatedAt
string<date-time>
required

The updated at date of the element

publicId
string
required

Short URL-safe identifier used in the public share link

offerNumber
string | null
required

User-set business reference number

status
enum<string>
required

Current offer status

Available options:
DRAFT,
SENT,
WON,
LOST
title
string | null
required

Offer title shown to the client

subtitle
string | null
required

Subtitle shown beneath the title

introduction
string | null
required

Introductory text shown at the top of the offer page

price
number | null
required

Total offer price in the smallest currency unit (cents)

validUntil
string<date-time> | null
required

Date until which the offer is valid

clientFirstName
string | null
required

Client first name

clientLastName
string | null
required

Client last name

clientEmail
string | null
required

Client email address

clientPhone
string | null
required

Client phone number

clientCompanyName
string | null
required

Client company name

sentToEmail
string | null
required

Email address the offer was actually sent to (snapshot at send-time)

sentAt
string<date-time> | null
required

Timestamp when the offer was sent

wonAt
string<date-time> | null
required

Timestamp when the offer was marked as won

lostAt
string<date-time> | null
required

Timestamp when the offer was marked as lost

archivedAt
string<date-time> | null
required

Timestamp when the offer was archived

acceptedByFirstName
string | null
required

First name of the person who accepted the offer via the public surface

acceptedByLastName
string | null
required

Last name of the person who accepted the offer via the public surface

acceptedByEmail
string | null
required

Email of the person who accepted the offer

acceptedByPhone
string | null
required

Phone number of the person who accepted the offer

signatureFileId
string | null
required

File ID of the captured signature image

declineReason
enum<string> | null
required

Reason given by the recipient when declining the offer (NONE if no reason provided)

Available options:
NONE,
TOO_EXPENSIVE,
OTHER_PRIORITIES,
TIMELINE,
MISSING_EXPERTISE,
PERSONAL_FIT
documentFileId
string | null
required

File ID of the attached PDF document

availableActions
object
required

Server-computed map of dashboard actions the caller may currently perform on this offer

publicUrl
string | null
required

Fully constructed public share URL (includes the auth token) - null if the offer is not sent yet

signatureFileThumbnail
object | null
required

Thumbnail of the captured signature — null when no signature is attached (offer not yet accepted via the public surface)

acceptedPaymentPlan
object | null
required

The plan the recipient chose at accept-time — null until the offer is accepted (WON). All other plans are fetched via GET /offers/:offerId/payment-plans.

paymentPlans
object
required

Grouped payment-plans snapshot for the offer. Same shape as GET /offers/:offerId/payment-plans.

assets
object
required

Grouped assets snapshot for the offer. Same shape as GET /offers/:offerId/assets.