Skip to main content
GET
/
public
/
proposals
curl -i -X GET \
  'https://sandbox.api.portal.io/public/proposals?PageNumber=1&PageSize=25' \
  -H 'Accept: application/json' \
  -H 'X-MSS-API-APPID: YOUR_APP_ID' \
  -H 'X-MSS-API-USERKEY: YOUR_USER_KEY' \
  -H 'X-MSS-CUSTOM-DATE: Mon, 06 Apr 2026 00:22:19 GMT' \
  -H 'X-MSS-SIGNATURE: BASE64_SIGNATURE'
{
  "proposals": [
    {
      "id": 1042,
      "number": 1001,
      "name": "Smith Residence AV",
      "status": "Draft",
      "total": {
        "proposalTotal": 12500.00,
        "currency": {
          "code": "USD",
          "symbol": "$"
        }
      },
      "createdDate": "2026-03-10T14:00:00Z",
      "lastModifiedDate": "2026-04-01T09:30:00Z",
      "customer": {
        "id": 88,
        "firstName": "Jane",
        "lastName": "Smith",
        "companyName": "",
        "contactEmail": "jane.smith@example.com"
      }
    }
  ],
  "proposalCount": 1
}
Returns the proposals belonging to the authenticated account. You can narrow results by status, contact, modified date, search text, and archive state. The response includes a flat array of proposal summaries and a total count, making this the standard starting point for most proposal workflows.
curl -i -X GET \
  'https://sandbox.api.portal.io/public/proposals?PageNumber=1&PageSize=25' \
  -H 'Accept: application/json' \
  -H 'X-MSS-API-APPID: YOUR_APP_ID' \
  -H 'X-MSS-API-USERKEY: YOUR_USER_KEY' \
  -H 'X-MSS-CUSTOM-DATE: Mon, 06 Apr 2026 00:22:19 GMT' \
  -H 'X-MSS-SIGNATURE: BASE64_SIGNATURE'
{
  "proposals": [
    {
      "id": 1042,
      "number": 1001,
      "name": "Smith Residence AV",
      "status": "Draft",
      "total": {
        "proposalTotal": 12500.00,
        "currency": {
          "code": "USD",
          "symbol": "$"
        }
      },
      "createdDate": "2026-03-10T14:00:00Z",
      "lastModifiedDate": "2026-04-01T09:30:00Z",
      "customer": {
        "id": 88,
        "firstName": "Jane",
        "lastName": "Smith",
        "companyName": "",
        "contactEmail": "jane.smith@example.com"
      }
    }
  ],
  "proposalCount": 1
}

Headers

Accept
enum<string>
required

Accept Header

Available options:
application/json
X-MSS-API-APPID
string
required

Application Id

X-MSS-CUSTOM-DATE
string
required

A date timestamp of the request

X-MSS-SIGNATURE
string
required

A signature for the request

X-MSS-API-USERKEY
string
required

User API Key

Query Parameters

SearchText
string

Search proposal by this text

Statuses
enum<string>[]
Available options:
Draft,
Submitted,
ViewedByClient,
Accepted,
Declined,
Delayed,
Completed,
EmailFailed,
Expired
ContactId
integer<int32>
ModifiedAfter
string<date-time>

Modified after timestamp in UTC

SortBy
enum<string>
Available options:
CreatedDate,
ModifiedDate,
Number,
Name,
ClientName,
Status,
LastModifiedByMe
IsArchive
boolean

If true return only archived proposals otherwise return non archive proposals

SortDirection
string
PageNumber
integer<int32>

Page number. Starting from 1

PageSize
integer<int32>

Page Size

SalespersonId
integer<int32>

Filter proposals by salesperson user ID

Response

Success

Paginated proposal list

proposals
PublicProposalModel · object[]
required

Proposals returned within the current page boundaries

proposalCount
integer<int32>
required

Total number of proposals matching the query across all pages