Online Now  

/v1/listing/

Manages portfolio related functions such as price changes and status changes
GET

/v1/listing/get_competing_listings

#
Lists competing listings in a certain timeframe, along with pricing information

Parameters

NameTypeRequiredDefaultDescription
listingID string Yes — unique listing IDs to provide competing listing information for which can be retrieved by /v1/listing/get_portfolio_listings or when creating a new listing with /v1/location/set_listing
Request example (cURL)
curl --get \
  'https://ca.appointmenttrader.com/v1/listing/get_competing_listings' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingID={{listingID}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_get_competing_listings_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.Name = "Competing Listings" Yes
$.oneOf[0].allOf[1].Payload.MetaInformationobject Yes
$.oneOf[0].allOf[1].Payload.MetaInformation.ListingCountinteger Yes
$.oneOf[0].allOf[1].Payload.KeyValueListarray Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[]object No
$.oneOf[0].allOf[1].Payload.KeyValueList[].listingIDstring Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].locationAliasstring Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].inventoryTypeNamestring Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].listingDatestring Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].listingDetailStatementstring Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].listingRespondByTimestring Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].inventoryTypeIDinteger Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].listingCurrentAskingPriceinteger Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].listingViewsOneDayinteger Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].listingViewsAllTimeinteger Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].listingPopularityScoreBracketinteger Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].listingStartHour Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].listingStartHour.anyOf[0] Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].listingStartHour.anyOf[0].anyOf[0]number Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].listingStartHour.anyOf[0].anyOf[1]string Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].listingStartHour.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].isRequestingUserListingboolean Yes
$.oneOf[0].allOf[1].Payload.KeyValueFieldListarray Yes
$.oneOf[0].allOf[1].Payload.KeyValueFieldList[]string No
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/get_competing_listings",
    "RequestUserAlias": "example-user",
    "Payload": {
        "Name": "Competing Listings",
        "MetaInformation": {
            "ListingCount": 0
        },
        "KeyValueList": [],
        "KeyValueFieldList": []
    }
}
Machine-readable endpoint documentation
GET

/v1/listing/get_discount_viewers

#
List eligible signed-in viewers from the last 30 days. Only the current listing owner may read this audience.

Parameters

NameTypeRequiredDefaultDescription
listingID string Yes — Listing UUID.
searchText string No "" Optional alias search.
page int No 1 One-based page; 50 viewers per page.
Request example (cURL)
curl --get \
  'https://ca.appointmenttrader.com/v1/listing/get_discount_viewers' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingID={{listingID}}' \
  --data-urlencode 'searchText={{searchText}}' \
  --data-urlencode 'page={{page}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_get_discount_viewers_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.viewersarray Yes
$.oneOf[0].allOf[1].Payload.viewers[]object No
$.oneOf[0].allOf[1].Payload.viewers[].userIDinteger Yes
$.oneOf[0].allOf[1].Payload.viewers[].aliasstring Yes
$.oneOf[0].allOf[1].Payload.viewers[].avatarEmojistring Yes
$.oneOf[0].allOf[1].Payload.viewers[].lastViewedAtstring Yes
$.oneOf[0].allOf[1].Payload.totalinteger Yes
$.oneOf[0].allOf[1].Payload.pageinteger Yes
$.oneOf[0].allOf[1].Payload.hasMoreboolean Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/get_discount_viewers",
    "RequestUserAlias": "example-user",
    "Payload": {
        "viewers": [],
        "total": 0,
        "page": 0,
        "hasMore": false
    }
}
Machine-readable endpoint documentation
GET

/v1/listing/get_portfolio_listings

#
Legacy alias for /v1/portfolio/get_listings

Parameters

NameTypeRequiredDefaultDescription
getPopularityScoreBracket bool No false if true, the popularity score for all listings will be returned
Request example (cURL)
curl --get \
  'https://ca.appointmenttrader.com/v1/listing/get_portfolio_listings' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'getPopularityScoreBracket={{getPopularityScoreBracket}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_get_portfolio_listings_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.Name = "Portfolio Listing Items" Yes
$.oneOf[0].allOf[1].Payload.MetaInformation = [] Yes
$.oneOf[0].allOf[1].Payload.KeyValueListarray Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[]object No
$.oneOf[0].allOf[1].Payload.KeyValueList[].Namestring ["AppointmentDrafts","ApprovedAppointments","PrivateAppointments","UnlockedAppointments","SubmittedListings_Rejections","SubmittedListings_InReview","SubmittedListings_WaitingForReview"] Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].MetaInformationobject Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].MetaInformation.ListingCountinteger Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueListarray Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[]object No
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingIDstring | null Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].locationAliasstring Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].locationIDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].locationID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].locationID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingRespondByTime Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingRespondByTime.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingRespondByTime.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].locationCitySlug Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].locationCitySlug.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].locationCitySlug.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].creatorUserAlias Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].creatorUserAlias.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].creatorUserAlias.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].inventoryTypeIDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].inventoryTypeID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].inventoryTypeID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].inventoryTypeName Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].inventoryTypeName.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].inventoryTypeName.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingDatestring Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingTimestring Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingStartHourDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingStartHour.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingStartHour.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingCurrentAskingPriceDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingCurrentAskingPrice.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingCurrentAskingPrice.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].bid-communityPostID Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].bid-communityPostID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].bid-communityPostID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].bid-communityPostID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].bid-communityPostID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingDetailStatementstring Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingStatusstring Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingPublicConfirmationNumberstring Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].orderListID Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].orderListID.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].orderListID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingPopularityScoreBracket No
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingPopularityScoreBracket.anyOf[0]number No
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingPopularityScoreBracket.anyOf[1]string No
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingPopularityScoreBracket.anyOf[2]null No
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingViewsOneDayDatabaseInteger NoInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingViewsOneDay.oneOf[0]integer No
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingViewsOneDay.oneOf[1]string No
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingViewsAllTimeDatabaseInteger NoInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingViewsAllTime.oneOf[0]integer No
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueList[].listingViewsAllTime.oneOf[1]string No
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueFieldListarray Yes
$.oneOf[0].allOf[1].Payload.KeyValueList[].KeyValueFieldList[]string No
$.oneOf[0].allOf[1].Payload.KeyValueFieldList = [] Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/get_portfolio_listings",
    "RequestUserAlias": "example-user",
    "Payload": {
        "Name": "Portfolio Listing Items",
        "MetaInformation": [],
        "KeyValueList": [],
        "KeyValueFieldList": []
    }
}
Machine-readable endpoint documentation
GET

/v1/listing/get_viewer_discount_preview

#
Preview a seller-funded fixed-amount offer. Public price stays unchanged; fees use the discounted price.

Parameters

NameTypeRequiredDefaultDescription
listingID string Yes — Listing UUID.
discountAmountInSmallestUnit int Yes — Positive USD cents.
currencyCode string No "USD" Listing discount currency; USD.
durationHours int No 24 One of 1, 6, 24, 48, capped by listing expiry.
allViewers bool No true Include all eligible viewers across every page.
recipientUserIDList string No "" Comma-separated selected IDs when allViewers is false.
Request example (cURL)
curl --get \
  'https://ca.appointmenttrader.com/v1/listing/get_viewer_discount_preview' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingID={{listingID}}' \
  --data-urlencode 'discountAmountInSmallestUnit={{discountAmountInSmallestUnit}}' \
  --data-urlencode 'currencyCode={{currencyCode}}' \
  --data-urlencode 'durationHours={{durationHours}}' \
  --data-urlencode 'allViewers={{allViewers}}' \
  --data-urlencode 'recipientUserIDList={{recipientUserIDList}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_get_viewer_discount_preview_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.listingIDstring Yes
$.oneOf[0].allOf[1].Payload.currencyCode = "USD" Yes
$.oneOf[0].allOf[1].Payload.originalPriceCentsinteger Yes
$.oneOf[0].allOf[1].Payload.discountCentsinteger Yes
$.oneOf[0].allOf[1].Payload.buyerPriceCentsinteger Yes
$.oneOf[0].allOf[1].Payload.feeCentsinteger Yes
$.oneOf[0].allOf[1].Payload.sellerProceedsCentsinteger Yes
$.oneOf[0].allOf[1].Payload.recipientCountinteger Yes
$.oneOf[0].allOf[1].Payload.expiresAtstring Yes
$.oneOf[0].allOf[1].Payload.expiresAtISOstring Yes
$.oneOf[0].allOf[1].Payload.previewTokenstring Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/get_viewer_discount_preview",
    "RequestUserAlias": "example-user",
    "Payload": {
        "listingID": "synthetic-example",
        "currencyCode": "USD",
        "originalPriceCents": 0,
        "discountCents": 0,
        "buyerPriceCents": 0,
        "feeCents": 0,
        "sellerProceedsCents": 0,
        "recipientCount": 0,
        "expiresAt": "synthetic-example",
        "expiresAtISO": "synthetic-example",
        "previewToken": "synthetic-example"
    }
}
Machine-readable endpoint documentation
GET

/v1/listing/get_viewer_discount_status

#
Read delivery progress for an offer belonging to the current listing owner.

Parameters

NameTypeRequiredDefaultDescription
listingID string Yes — Listing UUID.
offerID int Yes — Offer returned by /v1/listing/set_send_viewer_discount.
Request example (cURL)
curl --get \
  'https://ca.appointmenttrader.com/v1/listing/get_viewer_discount_status' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingID={{listingID}}' \
  --data-urlencode 'offerID={{offerID}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_get_viewer_discount_status_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.offerIDinteger Yes
$.oneOf[0].allOf[1].Payload.countsobject Yes
$.oneOf[0].allOf[1].Payload.counts.queuedinteger Yes
$.oneOf[0].allOf[1].Payload.counts.sentinteger Yes
$.oneOf[0].allOf[1].Payload.counts.skippedinteger Yes
$.oneOf[0].allOf[1].Payload.counts.failedinteger Yes
$.oneOf[0].allOf[1].Payload.expiresAtstring Yes
$.oneOf[0].allOf[1].Payload.activeboolean Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/get_viewer_discount_status",
    "RequestUserAlias": "example-user",
    "Payload": {
        "offerID": 0,
        "counts": {
            "queued": 0,
            "sent": 0,
            "skipped": 0,
            "failed": 0
        },
        "expiresAt": "synthetic-example",
        "active": false
    }
}
Machine-readable endpoint documentation
POST

/v1/listing/set_archive

#
Archive Listing

Parameters

NameTypeRequiredDefaultDescription
listingUUID string Yes — Unique listing ID that can be retrieved by /v1/listing/get_portfolio_listings or /v1/location/set_listing
isWritingRequest bool No false all set_[...] functions have this parameter - if false (which is default) the method will execute without writing any data. Set this parameter to true once you are sure that you tested your logic and want to execute a writing request
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/listing/set_archive' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingUUID={{listingUUID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_set_archive_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payload = true Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/set_archive",
    "RequestUserAlias": "example-user",
    "Payload": true
}
Machine-readable endpoint documentation
POST

/v1/listing/set_begin_transfer

#
Start working on a transfer-service listing.

Parameters

NameTypeRequiredDefaultDescription
listingID string Yes — unique listing ID that can be retrieved by /v1/listing/get_portfolio_listings
isWritingRequest bool No false all set_[...] functions have this parameter - if false (which is default) the method will execute without writing any data
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/listing/set_begin_transfer' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingID={{listingID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_set_begin_transfer_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.success = true Yes
$.oneOf[0].allOf[1].Payload.messagestring Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/set_begin_transfer",
    "RequestUserAlias": "example-user",
    "Payload": {
        "success": true,
        "message": "synthetic-example"
    }
}
Machine-readable endpoint documentation
POST

/v1/listing/set_cancel_bid

#
Cancels a bid

Parameters

NameTypeRequiredDefaultDescription
bidID int Yes — unique bid ID
isWritingRequest bool No false all set_[...] functions have this parameter - if false (which is default) the method will execute without writing any data. Set this parameter to true once you are sure that you tested your logic and want to execute a writing request
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/listing/set_cancel_bid' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'bidID={{bidID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_set_cancel_bid_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payload = true Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/set_cancel_bid",
    "RequestUserAlias": "example-user",
    "Payload": true
}
Machine-readable endpoint documentation
POST

/v1/listing/set_cancel_transfer_service

#
Cancel transfer service for a seller-owned listing.

Parameters

NameTypeRequiredDefaultDescription
listingID string Yes — unique listing ID that can be retrieved by /v1/listing/get_portfolio_listings
isWritingRequest bool No false all set_[...] functions have this parameter - if false (which is default) the method will execute without writing any data
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/listing/set_cancel_transfer_service' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingID={{listingID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_set_cancel_transfer_service_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.success = true Yes
$.oneOf[0].allOf[1].Payload.messagestring Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/set_cancel_transfer_service",
    "RequestUserAlias": "example-user",
    "Payload": {
        "success": true,
        "message": "synthetic-example"
    }
}
Machine-readable endpoint documentation
POST

/v1/listing/set_complete_transfer

#
Mark a transfer-service listing as successfully transferred.

Parameters

NameTypeRequiredDefaultDescription
listingID string Yes — unique listing ID that can be retrieved by /v1/listing/get_portfolio_listings
givenName string Yes — first name now on the reservation
familyName string Yes — last name now on the reservation
dynamicFieldsJson string No "" optional JSON object of location field id to value
isWritingRequest bool No false all set_[...] functions have this parameter - if false (which is default) the method will execute without writing any data
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/listing/set_complete_transfer' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingID={{listingID}}' \
  --data-urlencode 'givenName={{givenName}}' \
  --data-urlencode 'familyName={{familyName}}' \
  --data-urlencode 'dynamicFieldsJson={{dynamicFieldsJson}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Parameters: dynamicFieldsJson
FieldTypeRequiredDescription
dynamicFieldsJsonstring (application/json) No
dynamicFieldsJsonobject (decoded JSON) No
dynamicFieldsJson.*string No
Response fields
FieldTypeRequiredDescription
$listing_set_complete_transfer_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.success = true Yes
$.oneOf[0].allOf[1].Payload.messagestring Yes
$.oneOf[0].allOf[1].Payload.currencyReceivednumber Yes
$.oneOf[0].allOf[1].Payload.newBalance Yes
$.oneOf[0].allOf[1].Payload.newBalance.anyOf[0]number Yes
$.oneOf[0].allOf[1].Payload.newBalance.anyOf[1]null Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/set_complete_transfer",
    "RequestUserAlias": "example-user",
    "Payload": {
        "success": true,
        "message": "synthetic-example",
        "currencyReceived": 0,
        "newBalance": 0
    }
}
Machine-readable endpoint documentation
POST

/v1/listing/set_create_from_template

#
Creates an appointment from a template, only appointments owned by api user may be copied. With publishListing and discardTemplateListing true, a locked Private reservation is relisted in place at the selected price in unrestricted markets only. Owner, permission, listing-limit, future-date, and refund/no-show checks still apply. An Approved original may be retried without duplicating the reservation or status history.

Parameters

NameTypeRequiredDefaultDescription
templateListingID string Yes — unique listing ID which can be retrieved by /v1/listing/get_portfolio_listings or when creating a new listing with /v1/location/set_listing
publishListing bool No false if true, the listing will be published to the market, if false it will be taken private
bidID int No -1 optional matching bid to fill when publishListing is true; -1 leaves the listing unlinked
discardTemplateListing bool No false archive the original after copying; with publishListing true, Private and Approved originals are updated in place instead
priceAmountInSmallestUnit int No -1 optional asking price for the relisted or copied listing in the smallest currency unit; rounded to USD 5 steps within the configured minimum and USD 10000 maximum
isWritingRequest bool No false false (default) prevents writes; set true to publish or copy the listing
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/listing/set_create_from_template' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'templateListingID={{templateListingID}}' \
  --data-urlencode 'publishListing={{publishListing}}' \
  --data-urlencode 'bidID={{bidID}}' \
  --data-urlencode 'discardTemplateListing={{discardTemplateListing}}' \
  --data-urlencode 'priceAmountInSmallestUnit={{priceAmountInSmallestUnit}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_set_create_from_template_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadstring YesUUID of the resulting listing.
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/set_create_from_template",
    "RequestUserAlias": "example-user",
    "Payload": "synthetic-example"
}
Machine-readable endpoint documentation
POST

/v1/listing/set_delete_review

#
Take a listing out of review and delete it.

Parameters

NameTypeRequiredDefaultDescription
listingUUID string Yes — Unique listing ID that can be retrieved by /v1/listing/get_portfolio_listings or /v1/location/set_listing
isWritingRequest bool No false all set_[...] functions have this parameter - if false (which is default) the method will execute without writing any data. Set this parameter to true once you are sure that you tested your logic and want to execute a writing request
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/listing/set_delete_review' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingUUID={{listingUUID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_set_delete_review_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.listingIDstring Yes
$.oneOf[0].allOf[1].Payload.status = "deleted" Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/set_delete_review",
    "RequestUserAlias": "example-user",
    "Payload": {
        "listingID": "synthetic-example",
        "status": "deleted"
    }
}
Machine-readable endpoint documentation
POST

/v1/listing/set_fail_transfer

#
Mark a transfer-service listing as failed.

Parameters

NameTypeRequiredDefaultDescription
listingID string Yes — unique listing ID that can be retrieved by /v1/listing/get_portfolio_listings
failedOption string Yes — Unlock if the buyer can still use the listing, Failed otherwise
reason string Yes — transfer failure note
isWritingRequest bool No false all set_[...] functions have this parameter - if false (which is default) the method will execute without writing any data
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/listing/set_fail_transfer' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingID={{listingID}}' \
  --data-urlencode 'failedOption={{failedOption}}' \
  --data-urlencode 'reason={{reason}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_set_fail_transfer_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.success = true Yes
$.oneOf[0].allOf[1].Payload.messagestring Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/set_fail_transfer",
    "RequestUserAlias": "example-user",
    "Payload": {
        "success": true,
        "message": "synthetic-example"
    }
}
Machine-readable endpoint documentation
POST

/v1/listing/set_fill_bid

#
Fills a bid with a portfolio bid answer that is either off market or publicly available to fill a bid with a new bid answer please use /v1/location/set_listing An ordinary pickup requiring an auction returns auctionRequired and auctionURL instead of filling. Ready inventory must win the auction first; the winner can attach this listing to their awarded hold. Available normal bids also accept complete inventory without FillBids or a prior hold, after response selection finishes. A submitted listing claims the bid for review; approved inventory completes the fill. Buyer-selected, unexpired direct hires also accept Premium confirmations without FillBids or HoldPremiumBids. This grants no pickup or round access.

Parameters

NameTypeRequiredDefaultDescription
listingID string Yes — unique listing ID which can be retrieved by /v1/listing/get_portfolio_listings or when creating a new listing with /v1/location/set_listing
bidID int Yes — Requested bid. Complete inventory must match its accepted terms and seller-selection policy.
isWritingRequest bool No false all set_[...] functions have this parameter - if false (which is default) the method will execute without writing any data. Set this parameter to true once you are sure that you tested your logic and want to execute a writing request
outsideRequestedTimeframeAcknowledged bool No false Set true only after the concierge accepts the held answer's out-of-timeframe warning. Recorded against this answer and current bid terms for completion or later review; does not waive non-time requirements or direct-fill matching.
selfReviewConfirmed bool No false Explicit final confirmation for eligible self-review of an unapproved confirmation; defaults to false.
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/listing/set_fill_bid' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingID={{listingID}}' \
  --data-urlencode 'bidID={{bidID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}' \
  --data-urlencode 'outsideRequestedTimeframeAcknowledged={{outsideRequestedTimeframeAcknowledged}}' \
  --data-urlencode 'selfReviewConfirmed={{selfReviewConfirmed}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_set_fill_bid_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadstring YesUUID of the resulting listing.
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/set_fill_bid",
    "RequestUserAlias": "example-user",
    "Payload": "synthetic-example"
}
Machine-readable endpoint documentation
POST

/v1/listing/set_market_visibility

#
Changes the visibility in the market. In the portal private listings appear in the private section and public in 'Publicly traded listings'

Parameters

NameTypeRequiredDefaultDescription
listingID string Yes — unique listing ID which can be retrieved by /v1/listing/get_portfolio_listings or when creating a new listing with /v1/location/set_listing
publishListing bool Yes — if true, the listing will be published to the market, if false it will be taken private
isWritingRequest bool No false all set_[...] functions have this parameter - if false (which is default) the method will execute without writing any data. Set this parameter to true once you are sure that you tested your logic and want to execute a writing request
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/listing/set_market_visibility' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingID={{listingID}}' \
  --data-urlencode 'publishListing={{publishListing}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_set_market_visibility_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payload = true Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/set_market_visibility",
    "RequestUserAlias": "example-user",
    "Payload": true
}
Machine-readable endpoint documentation
POST

/v1/listing/set_price

#
Changes the current listing price

Parameters

NameTypeRequiredDefaultDescription
listingID string Yes — unique listing ID which can be retrieved by /v1/listing/get_portfolio_listings or when creating a new listing with /v1/location/set_listing
priceAmountInSmallestUnit int Yes — Smallest possible currency unit, for example USD 100 would be 10000 (usd-cents), amounts will be rounded to next 5 increment. Refer to the MetaInformation of the return object of /v1/location/get_comparable_trades for pricing information. Endpoint will also return if there is an available bid - if available bid price is matched in your upload, bid will automatically be filled.
isWritingRequest bool No false all set_[...] functions have this parameter - if false (which is default) the method will execute without writing any data. Set this parameter to true once you are sure that you tested your logic and want to execute a writing request
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/listing/set_price' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingID={{listingID}}' \
  --data-urlencode 'priceAmountInSmallestUnit={{priceAmountInSmallestUnit}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_set_price_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payload = true Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/set_price",
    "RequestUserAlias": "example-user",
    "Payload": true
}
Machine-readable endpoint documentation
POST

/v1/listing/set_purchase

#
Purchase a listing

Parameters

NameTypeRequiredDefaultDescription
fundingAccountID int Yes — ID of the account that will fund the bid, accountIDs can be found in /v1/account/get_list
listingID string Yes — the unique listing ID that shall be purchased
orderListID string No "" If this bid is part of an orderList, set the ID here.
isWritingRequest bool No false all set_[...] functions have this parameter - if false (which is default) the method will execute without writing any data. Set this parameter to true once you are sure that you tested your logic and want to execute a writing request
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/listing/set_purchase' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'fundingAccountID={{fundingAccountID}}' \
  --data-urlencode 'listingID={{listingID}}' \
  --data-urlencode 'orderListID={{orderListID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_set_purchase_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payload = true Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/set_purchase",
    "RequestUserAlias": "example-user",
    "Payload": true
}
Machine-readable endpoint documentation
POST

/v1/listing/set_send_viewer_discount

#
Send one private offer per viewer per listing through normal notifications. Reuse requestID for uncertain retries.

Parameters

NameTypeRequiredDefaultDescription
listingID string Yes — Listing UUID.
discountAmountInSmallestUnit int Yes — Fixed discount in USD cents.
previewToken string Yes — Unchanged token from /v1/listing/get_viewer_discount_preview.
requestID string Yes — Unique request identifier, 16-64 letters/digits/hyphens. Reusing it with different parameters fails.
currencyCode string No "USD" USD.
durationHours int No 24 1, 6, 24 or 48.
allViewers bool No true Send to all eligible viewers, not just the visible page.
recipientUserIDList string No "" Comma-separated selected user IDs when allViewers is false.
isWritingRequest bool No false Must be true to queue notifications.
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/listing/set_send_viewer_discount' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingID={{listingID}}' \
  --data-urlencode 'discountAmountInSmallestUnit={{discountAmountInSmallestUnit}}' \
  --data-urlencode 'previewToken={{previewToken}}' \
  --data-urlencode 'requestID={{requestID}}' \
  --data-urlencode 'currencyCode={{currencyCode}}' \
  --data-urlencode 'durationHours={{durationHours}}' \
  --data-urlencode 'allViewers={{allViewers}}' \
  --data-urlencode 'recipientUserIDList={{recipientUserIDList}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_set_send_viewer_discount_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.offerIDinteger Yes
$.oneOf[0].allOf[1].Payload.countsobject Yes
$.oneOf[0].allOf[1].Payload.counts.queuedinteger Yes
$.oneOf[0].allOf[1].Payload.counts.sentinteger Yes
$.oneOf[0].allOf[1].Payload.counts.skippedinteger Yes
$.oneOf[0].allOf[1].Payload.counts.failedinteger Yes
$.oneOf[0].allOf[1].Payload.expiresAtstring Yes
$.oneOf[0].allOf[1].Payload.activeboolean Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/set_send_viewer_discount",
    "RequestUserAlias": "example-user",
    "Payload": {
        "offerID": 0,
        "counts": {
            "queued": 0,
            "sent": 0,
            "skipped": 0,
            "failed": 0
        },
        "expiresAt": "synthetic-example",
        "active": false
    }
}
Machine-readable endpoint documentation
POST

/v1/listing/set_unarchive

#
Restore an archived listing to its previous market visibility.

Parameters

NameTypeRequiredDefaultDescription
listingUUID string Yes — Unique listing ID that can be retrieved by /v1/listing/get_portfolio_listings or /v1/location/set_listing
isWritingRequest bool No false all set_[...] functions have this parameter - if false (which is default) the method will execute without writing any data. Set this parameter to true once you are sure that you tested your logic and want to execute a writing request
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/listing/set_unarchive' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingUUID={{listingUUID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$listing_set_unarchive_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.listingIDstring Yes
$.oneOf[0].allOf[1].Payload.statusstring ["Approved","Private","Unlocked","Transfer Failed But Unlocked"] Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/set_unarchive",
    "RequestUserAlias": "example-user",
    "Payload": {
        "listingID": "synthetic-example",
        "status": "Approved"
    }
}
Machine-readable endpoint documentation
POST

/v1/listing/set_update

#
Updates an off-market seller listing using the same structured listing fields as the v2 listing composer.

Parameters

NameTypeRequiredDefaultDescription
listingID string Yes — unique listing ID which can be retrieved by /v1/listing/get_portfolio_listings or when creating a new listing with /v1/location/set_listing
locationAlias string Yes — Slug found after the slash when opening a location in the portal
inventoryTypeID int Yes — inventoryTypeID found in /v1/location/get_inventory_types
priceAmountInSmallestUnit int Yes — Smallest possible currency unit, for example USD 100 would be 10000 (usd-cents).
currencyCode string Yes — 3 digit currency code, currently all prices will be converted to USD and rounded
dateTime string Yes — Date and Time of listing. Date format: YYYY-MM-DD HH:MM:SS
firstName string Yes — First name of listing
lastName string Yes — Last name of listing
emailAddress string Yes — Email address associated with the listing
phoneNumber string Yes — Phone number associated with the listing
locationCategoryFieldIDValueList array Yes — Refer to /v1/location/get_category to identify the required and optional field list for the location you are submitting for.
isWritingRequest bool No false all set_[...] functions have this parameter - if false (which is default) the method will execute without writing any data. Set this parameter to true once you are sure that you tested your logic and want to execute a writing request
resubmitRejectedListing bool No false Set true when fixing a rejected listing and resubmitting it for review.
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/listing/set_update' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingID={{listingID}}' \
  --data-urlencode 'locationAlias={{locationAlias}}' \
  --data-urlencode 'inventoryTypeID={{inventoryTypeID}}' \
  --data-urlencode 'priceAmountInSmallestUnit={{priceAmountInSmallestUnit}}' \
  --data-urlencode 'currencyCode={{currencyCode}}' \
  --data-urlencode 'dateTime={{dateTime}}' \
  --data-urlencode 'firstName={{firstName}}' \
  --data-urlencode 'lastName={{lastName}}' \
  --data-urlencode 'emailAddress={{emailAddress}}' \
  --data-urlencode 'phoneNumber={{phoneNumber}}' \
  --data-urlencode 'locationCategoryFieldIDValueList={{locationCategoryFieldIDValueList}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}' \
  --data-urlencode 'resubmitRejectedListing={{resubmitRejectedListing}}'

Returns

JSON
See the shared response schema and synthetic example.
Parameters: locationCategoryFieldIDValueList
FieldTypeRequiredDescription
locationCategoryFieldIDValueListstring (application/json) YesPass a JSON-encoded string, not nested form fields.
locationCategoryFieldIDValueListarray (decoded JSON) Yes
locationCategoryFieldIDValueList[] No
locationCategoryFieldIDValueList[].oneOf[0]object No
locationCategoryFieldIDValueList[].oneOf[0].fieldIDinteger Yes
locationCategoryFieldIDValueList[].oneOf[0].fieldValuestring Yes
locationCategoryFieldIDValueList[].oneOf[1]object No
locationCategoryFieldIDValueList[].oneOf[1].ID Yes
locationCategoryFieldIDValueList[].oneOf[1].ID.anyOf[0]integer Yes
locationCategoryFieldIDValueList[].oneOf[1].ID.anyOf[1]string Yes
locationCategoryFieldIDValueList[].oneOf[1].Valuestring Yes
Response fields
FieldTypeRequiredDescription
$listing_set_update_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.listingIDstring Yes
$.oneOf[0].allOf[1].Payload.appointmentIDinteger Yes
$.oneOf[0].allOf[1].Payload.statusstring Yes
$.oneOf[0].allOf[1].Payload.locationNamestring Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/listing/set_update",
    "RequestUserAlias": "example-user",
    "Payload": {
        "listingID": "synthetic-example",
        "appointmentID": 0,
        "status": "synthetic-example",
        "locationName": "synthetic-example"
    }
}
Machine-readable endpoint documentation