현재 온라인  

/v1/customer_survey/

Seller-private customer surveys with customer-confirmed answer reuse.
GET

/v1/customer_survey/get_catalog

#
List AT and private templates, reusable fields, and optional chat recipient/sales context. Never returns customer answers.

매개변수

이름유형필수기본값설명
chatID int 아니요 0 Accepted direct or bid chat; zero lists the acting seller's catalog.
요청 예제(cURL)
curl --get \
  'https://kr.appointmenttrader.com/v1/customer_survey/get_catalog' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'chatID={{chatID}}'

반환값

JSON
See the shared response schema and synthetic example.
응답 필드
필드유형필수설명
$customer_survey_get_catalog_Response 예
$.oneOf[0] 예
$.oneOf[0].allOf[0]object 예
$.oneOf[0].allOf[0].RequestUserAliasstring 예
$.oneOf[0].allOf[0].RequestPathstring | null 예
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 예
$.oneOf[0].allOf[0].ResponseCodeinteger 예
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[0].allOf[1]object 예
$.oneOf[0].allOf[1].Payloadobject 예
$.oneOf[0].allOf[1].Payload.fieldsarray 예
$.oneOf[0].allOf[1].Payload.fields[]object 아니요
$.oneOf[0].allOf[1].Payload.fields[].IDDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.fields[].ID.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.fields[].ID.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.fields[].CreatedDatestring 예
$.oneOf[0].allOf[1].Payload.fields[].OwnerUserID 예
$.oneOf[0].allOf[1].Payload.fields[].OwnerUserID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.fields[].OwnerUserID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.fields[].OwnerUserID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.fields[].OwnerUserID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.fields[].FieldKeystring 예
$.oneOf[0].allOf[1].Payload.fields[].Labelstring 예
$.oneOf[0].allOf[1].Payload.fields[].LabelKey 예
$.oneOf[0].allOf[1].Payload.fields[].LabelKey.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.fields[].LabelKey.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.fields[].FieldGroupstring 예
$.oneOf[0].allOf[1].Payload.fields[].FieldTypestring ["text","number","boolean","single_select","multi_select","longtext"] 예
$.oneOf[0].allOf[1].Payload.fields[].ValueScopestring ["customer","booking"] 예
$.oneOf[0].allOf[1].Payload.fields[].ValidationJSONstring (application/json) 예
$.oneOf[0].allOf[1].Payload.fields[].ValidationJSONSurveyValidation (디코딩된 JSON) 예
$.oneOf[0].allOf[1].Payload.fields[].ValidationJSON.anyOf[0]object 예
$.oneOf[0].allOf[1].Payload.fields[].ValidationJSON.anyOf[0].maxLengthinteger 아니요
$.oneOf[0].allOf[1].Payload.fields[].ValidationJSON.anyOf[0].integerboolean 아니요
$.oneOf[0].allOf[1].Payload.fields[].ValidationJSON.anyOf[0].minnumber 아니요
$.oneOf[0].allOf[1].Payload.fields[].ValidationJSON.anyOf[0].maxnumber 아니요
$.oneOf[0].allOf[1].Payload.fields[].ValidationJSON.anyOf[1] = [] 예
$.oneOf[0].allOf[1].Payload.fields[].IsActiveDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.fields[].IsActive.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.fields[].IsActive.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.fields[].Optionsarray 예
$.oneOf[0].allOf[1].Payload.fields[].Options[]object 아니요
$.oneOf[0].allOf[1].Payload.fields[].Options[].IDDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.fields[].Options[].ID.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.fields[].Options[].ID.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.fields[].Options[].FieldIDDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.fields[].Options[].FieldID.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.fields[].Options[].FieldID.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.fields[].Options[].OptionKeystring 예
$.oneOf[0].allOf[1].Payload.fields[].Options[].Labelstring 예
$.oneOf[0].allOf[1].Payload.fields[].Options[].LabelKey 예
$.oneOf[0].allOf[1].Payload.fields[].Options[].LabelKey.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.fields[].Options[].LabelKey.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.fields[].Options[].SortOrderDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.fields[].Options[].SortOrder.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.fields[].Options[].SortOrder.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.templatesarray 예
$.oneOf[0].allOf[1].Payload.templates[]object 아니요
$.oneOf[0].allOf[1].Payload.templates[].IDDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.templates[].ID.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.templates[].ID.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.templates[].CreatedDatestring 예
$.oneOf[0].allOf[1].Payload.templates[].OwnerUserID 예
$.oneOf[0].allOf[1].Payload.templates[].OwnerUserID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.templates[].OwnerUserID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.templates[].OwnerUserID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.templates[].OwnerUserID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.templates[].StarterKey 예
$.oneOf[0].allOf[1].Payload.templates[].StarterKey.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.templates[].StarterKey.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.templates[].SourceTemplateID 예
$.oneOf[0].allOf[1].Payload.templates[].SourceTemplateID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.templates[].SourceTemplateID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.templates[].SourceTemplateID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.templates[].SourceTemplateID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.templates[].CurrentVersionID 예
$.oneOf[0].allOf[1].Payload.templates[].CurrentVersionID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.templates[].CurrentVersionID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.templates[].CurrentVersionID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.templates[].CurrentVersionID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.templates[].ArchivedDate 예
$.oneOf[0].allOf[1].Payload.templates[].ArchivedDate.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.templates[].ArchivedDate.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.templates[].Titlestring 예
$.oneOf[0].allOf[1].Payload.templates[].TitleKey 예
$.oneOf[0].allOf[1].Payload.templates[].TitleKey.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.templates[].TitleKey.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.templates[].VersionNumberDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.templates[].VersionNumber.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.templates[].VersionNumber.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.context 예
$.oneOf[0].allOf[1].Payload.context.anyOf[0]object 예
$.oneOf[0].allOf[1].Payload.context.anyOf[0].canSendboolean 예
$.oneOf[0].allOf[1].Payload.context.anyOf[0].writableboolean 예
$.oneOf[0].allOf[1].Payload.context.anyOf[0].chatIDinteger 예
$.oneOf[0].allOf[1].Payload.context.anyOf[0].customerIDinteger 예
$.oneOf[0].allOf[1].Payload.context.anyOf[0].bidIDinteger 예
$.oneOf[0].allOf[1].Payload.context.anyOf[0].reasonCodestring 아니요
$.oneOf[0].allOf[1].Payload.context.anyOf[0].reasonstring 아니요
$.oneOf[0].allOf[1].Payload.context.anyOf[0].otherUserIDinteger 아니요
$.oneOf[0].allOf[1].Payload.context.anyOf[0].buyerIdentityHiddenboolean 아니요True when the authenticated viewer cannot see the buyer during the current response race.
$.oneOf[0].allOf[1].Payload.context.anyOf[0].buyerIdentityHiddenUntilinteger | null 아니요Saved current-round ClosesAt as Unix seconds; null when identity is visible. Reveal is authoritative only on a new response.
$.oneOf[0].allOf[1].Payload.context.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.customer 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0]object 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].aliasstring | null 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].avatarstring | null 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].avatarEmojistring | null 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImageUrlstring | null 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImageURLstring | null 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].labelstring 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileUrlstring | null 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileURLstring | null 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].titlestring 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].customColorstring | null 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].customTextColorstring | null 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].avatarModestring | null 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].htmlstring 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].idinteger | null 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].userIDinteger | null 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].isRichboolean 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage.anyOf[0]object 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage.anyOf[0].idinteger 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage.anyOf[0].thumbUrlstring 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage.anyOf[0].mediaUrlstring 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage.anyOf[0].mediaTypestring 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage.anyOf[0].widthinteger 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage.anyOf[0].heightinteger 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage.anyOf[0].titlestring 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage.anyOf[0].isImageboolean 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage.anyOf[0].isEmbeddedboolean 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage.anyOf[0].frameobject 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage.anyOf[0].frame.positionXPercentnumber 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage.anyOf[0].frame.positionYPercentnumber 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage.anyOf[0].frame.zoomPercentnumber 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage.anyOf[0].backgroundUrlstring 아니요
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].profileImage.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].medalsarray 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].medals[]object 아니요
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].medals[].Namestring 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].medals[].URLstring 예
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].identityHiddenboolean 아니요An anonymized author has no profile or follow action.
$.oneOf[0].allOf[1].Payload.customer.anyOf[0].identityHiddenUntilinteger | null 아니요Current response-race closing timestamp in Unix seconds.
$.oneOf[0].allOf[1].Payload.customer.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.salesarray 예
$.oneOf[0].allOf[1].Payload.sales[]object 아니요
$.oneOf[0].allOf[1].Payload.sales[].IDDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.sales[].ID.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.sales[].ID.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.sales[].BidID 예
$.oneOf[0].allOf[1].Payload.sales[].BidID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.sales[].BidID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.sales[].BidID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.sales[].BidID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.sales[].AppointmentID 예
$.oneOf[0].allOf[1].Payload.sales[].AppointmentID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.sales[].AppointmentID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.sales[].AppointmentID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.sales[].AppointmentID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.sales[].TransactionCompletedDate 예
$.oneOf[0].allOf[1].Payload.sales[].TransactionCompletedDate.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.sales[].TransactionCompletedDate.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.sales[].LocationName 예
$.oneOf[0].allOf[1].Payload.sales[].LocationName.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.sales[].LocationName.anyOf[1]null 예
$.oneOf[1]object 예
$.oneOf[1].RequestUserAliasstring 예
$.oneOf[1].RequestPathstring | null 예
$.oneOf[1].RequestStatus = "Failed" 예
$.oneOf[1].ResponseCodeinteger 예
$.oneOf[1].ResponseMessageAPIResponseMessage 예
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[1].ResponseMessage.oneOf[1]array 예
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[1].ResponseMessage.oneOf[2]object 예
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[1].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[1].ErrorReasonstring ["active_bid_selection","chat_permission_unavailable"] 아니요
응답 예제
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/customer_survey/get_catalog",
    "RequestUserAlias": "example-user",
    "Payload": {
        "fields": [],
        "templates": [],
        "context": {
            "canSend": false,
            "writable": false,
            "chatID": 0,
            "customerID": 0,
            "bidID": 0
        },
        "customer": {
            "alias": "synthetic-example",
            "avatar": "synthetic-example",
            "avatarEmoji": "synthetic-example",
            "profileImageUrl": "synthetic-example",
            "profileImageURL": "synthetic-example",
            "label": "synthetic-example",
            "profileUrl": "synthetic-example",
            "profileURL": "synthetic-example",
            "title": "synthetic-example",
            "customColor": "synthetic-example",
            "customTextColor": "synthetic-example",
            "avatarMode": "synthetic-example",
            "html": "synthetic-example",
            "id": 0,
            "userID": 0,
            "isRich": false,
            "profileImage": {
                "id": 0,
                "thumbUrl": "synthetic-example",
                "mediaUrl": "synthetic-example",
                "mediaType": "synthetic-example",
                "width": 0,
                "height": 0,
                "title": "synthetic-example",
                "isImage": false,
                "isEmbedded": false,
                "frame": {
                    "positionXPercent": 0,
                    "positionYPercent": 0,
                    "zoomPercent": 100
                }
            },
            "medals": []
        },
        "sales": []
    }
}
기계가 읽을 수 있는 엔드포인트 문서
GET

/v1/customer_survey/get_customer_fields

#
Read own remembered values, or values this customer explicitly shared with the acting seller. Other sellers' responses are never returned.

매개변수

이름유형필수기본값설명
customerID int 예 — Customer user ID.
요청 예제(cURL)
curl --get \
  'https://kr.appointmenttrader.com/v1/customer_survey/get_customer_fields' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'customerID={{customerID}}'

반환값

JSON
See the shared response schema and synthetic example.
응답 필드
필드유형필수설명
$customer_survey_get_customer_fields_Response 예
$.oneOf[0] 예
$.oneOf[0].allOf[0]object 예
$.oneOf[0].allOf[0].RequestUserAliasstring 예
$.oneOf[0].allOf[0].RequestPathstring | null 예
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 예
$.oneOf[0].allOf[0].ResponseCodeinteger 예
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[0].allOf[1]object 예
$.oneOf[0].allOf[1].Payloadobject 예
$.oneOf[0].allOf[1].Payload.canForgetboolean 예
$.oneOf[0].allOf[1].Payload.itemsarray 예
$.oneOf[0].allOf[1].Payload.items[]object 아니요
$.oneOf[0].allOf[1].Payload.items[].fieldIDinteger 예
$.oneOf[0].allOf[1].Payload.items[].labelstring 예
$.oneOf[0].allOf[1].Payload.items[].typestring ["text","longtext","number","boolean","single_select","multi_select"] 예
$.oneOf[0].allOf[1].Payload.items[].valueSurveyAnswerValue 예Value follows the question type: text or selected key, decimal numeric string, boolean, selected-key list, or null when unanswered.
$.oneOf[0].allOf[1].Payload.items[].value.anyOf[0]null 예
$.oneOf[0].allOf[1].Payload.items[].value.anyOf[1]string 예
$.oneOf[0].allOf[1].Payload.items[].value.anyOf[2]number 예
$.oneOf[0].allOf[1].Payload.items[].value.anyOf[3]boolean 예
$.oneOf[0].allOf[1].Payload.items[].value.anyOf[4]array 예
$.oneOf[0].allOf[1].Payload.items[].value.anyOf[4][]string 아니요
$.oneOf[0].allOf[1].Payload.items[].optionsarray 예
$.oneOf[0].allOf[1].Payload.items[].options[]object 아니요
$.oneOf[0].allOf[1].Payload.items[].options[].keystring 예
$.oneOf[0].allOf[1].Payload.items[].options[].labelstring 예
$.oneOf[0].allOf[1].Payload.items[].confirmedDate 예
$.oneOf[0].allOf[1].Payload.items[].confirmedDate.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.items[].confirmedDate.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.items[].requestIDinteger 예
$.oneOf[0].allOf[1].Payload.items[].sourceTitlestring 예
$.oneOf[0].allOf[1].Payload.items[].revisioninteger 예
$.oneOf[1]object 예
$.oneOf[1].RequestUserAliasstring 예
$.oneOf[1].RequestPathstring | null 예
$.oneOf[1].RequestStatus = "Failed" 예
$.oneOf[1].ResponseCodeinteger 예
$.oneOf[1].ResponseMessageAPIResponseMessage 예
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[1].ResponseMessage.oneOf[1]array 예
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[1].ResponseMessage.oneOf[2]object 예
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[1].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[1].ErrorReasonstring ["active_bid_selection","chat_permission_unavailable"] 아니요
응답 예제
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/customer_survey/get_customer_fields",
    "RequestUserAlias": "example-user",
    "Payload": {
        "canForget": false,
        "items": []
    }
}
기계가 읽을 수 있는 엔드포인트 문서
GET

/v1/customer_survey/get_request

#
Read a questionnaire. Only its customer receives drafts, remembered prefills and memory revisions. Sellers receive submitted history only.

매개변수

이름유형필수기본값설명
requestID int 예 — Sent questionnaire identifier.
adminInspection bool 아니요 false Explicit read-only inspection requiring AccessSpecialFunctions; logged with actor and request.
요청 예제(cURL)
curl --get \
  'https://kr.appointmenttrader.com/v1/customer_survey/get_request' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'requestID={{requestID}}' \
  --data-urlencode 'adminInspection={{adminInspection}}'

반환값

JSON
See the shared response schema and synthetic example.
응답 필드
필드유형필수설명
$customer_survey_get_request_Response 예
$.oneOf[0] 예
$.oneOf[0].allOf[0]object 예
$.oneOf[0].allOf[0].RequestUserAliasstring 예
$.oneOf[0].allOf[0].RequestPathstring | null 예
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 예
$.oneOf[0].allOf[0].ResponseCodeinteger 예
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[0].allOf[1]object 예
$.oneOf[0].allOf[1].Payloadobject 예
$.oneOf[0].allOf[1].Payload.requestobject 예
$.oneOf[0].allOf[1].Payload.request.idinteger 예
$.oneOf[0].allOf[1].Payload.request.revisioninteger 예
$.oneOf[0].allOf[1].Payload.request.customerIDinteger 예
$.oneOf[0].allOf[1].Payload.request.sellerIDinteger 예
$.oneOf[0].allOf[1].Payload.request.chatIDinteger 예
$.oneOf[0].allOf[1].Payload.request.bidIDinteger 예
$.oneOf[0].allOf[1].Payload.request.transactionIDinteger 예
$.oneOf[0].allOf[1].Payload.request.titlestring 예
$.oneOf[0].allOf[1].Payload.request.statusstring ["sent","in_progress","submitted","cancelled"] 예
$.oneOf[0].allOf[1].Payload.request.submittedDate 예
$.oneOf[0].allOf[1].Payload.request.submittedDate.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.request.submittedDate.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.request.urlstring 예
$.oneOf[0].allOf[1].Payload.request.buyerIdentityHiddenboolean 아니요True when the authenticated viewer cannot see the buyer during the current response race.
$.oneOf[0].allOf[1].Payload.request.buyerIdentityHiddenUntilinteger | null 아니요Saved current-round ClosesAt as Unix seconds; null when identity is visible. Reveal is authoritative only on a new response.
$.oneOf[0].allOf[1].Payload.titlestring 예
$.oneOf[0].allOf[1].Payload.introductionstring 예
$.oneOf[0].allOf[1].Payload.questionsarray 예
$.oneOf[0].allOf[1].Payload.questions[]object 아니요
$.oneOf[0].allOf[1].Payload.questions[].IDDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].ID.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].ID.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].VersionIDDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].VersionID.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].VersionID.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].FieldID 예
$.oneOf[0].allOf[1].Payload.questions[].FieldID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].FieldID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].FieldID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].FieldID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.questions[].QuestionKeystring 예
$.oneOf[0].allOf[1].Payload.questions[].Labelstring 예
$.oneOf[0].allOf[1].Payload.questions[].LabelKey 예
$.oneOf[0].allOf[1].Payload.questions[].LabelKey.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.questions[].LabelKey.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.questions[].HelpTextstring 예
$.oneOf[0].allOf[1].Payload.questions[].FieldTypestring ["text","number","boolean","single_select","multi_select","longtext"] 예
$.oneOf[0].allOf[1].Payload.questions[].RequiredDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].Required.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].Required.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].SortOrderDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].SortOrder.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].SortOrder.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].ValidationJSONstring (application/json) 예
$.oneOf[0].allOf[1].Payload.questions[].ValidationJSONSurveyValidation (디코딩된 JSON) 예
$.oneOf[0].allOf[1].Payload.questions[].ValidationJSON.anyOf[0]object 예
$.oneOf[0].allOf[1].Payload.questions[].ValidationJSON.anyOf[0].maxLengthinteger 아니요
$.oneOf[0].allOf[1].Payload.questions[].ValidationJSON.anyOf[0].integerboolean 아니요
$.oneOf[0].allOf[1].Payload.questions[].ValidationJSON.anyOf[0].minnumber 아니요
$.oneOf[0].allOf[1].Payload.questions[].ValidationJSON.anyOf[0].maxnumber 아니요
$.oneOf[0].allOf[1].Payload.questions[].ValidationJSON.anyOf[1] = [] 예
$.oneOf[0].allOf[1].Payload.questions[].FieldOwnerUserID 예
$.oneOf[0].allOf[1].Payload.questions[].FieldOwnerUserID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].FieldOwnerUserID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].FieldOwnerUserID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].FieldOwnerUserID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.questions[].ValueScope 예
$.oneOf[0].allOf[1].Payload.questions[].ValueScope.anyOf[0]string ["customer","booking"] 예
$.oneOf[0].allOf[1].Payload.questions[].ValueScope.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.questions[].FieldKey 예
$.oneOf[0].allOf[1].Payload.questions[].FieldKey.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.questions[].FieldKey.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.questions[].validationSurveyValidation 예
$.oneOf[0].allOf[1].Payload.questions[].validation.anyOf[0]object 예
$.oneOf[0].allOf[1].Payload.questions[].validation.anyOf[0].maxLengthinteger 아니요
$.oneOf[0].allOf[1].Payload.questions[].validation.anyOf[0].integerboolean 아니요
$.oneOf[0].allOf[1].Payload.questions[].validation.anyOf[0].minnumber 아니요
$.oneOf[0].allOf[1].Payload.questions[].validation.anyOf[0].maxnumber 아니요
$.oneOf[0].allOf[1].Payload.questions[].validation.anyOf[1] = [] 예
$.oneOf[0].allOf[1].Payload.questions[].Optionsarray 예
$.oneOf[0].allOf[1].Payload.questions[].Options[]object 아니요
$.oneOf[0].allOf[1].Payload.questions[].Options[].IDDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].Options[].ID.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].ID.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].QuestionIDDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].Options[].QuestionID.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].QuestionID.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].FieldOptionID 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].FieldOptionID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].Options[].FieldOptionID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].FieldOptionID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].FieldOptionID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].OptionKeystring 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].Labelstring 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].LabelKey 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].LabelKey.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].LabelKey.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].SortOrderDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].Options[].SortOrder.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].SortOrder.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.historyarray 예
$.oneOf[0].allOf[1].Payload.history[]object 아니요
$.oneOf[0].allOf[1].Payload.history[].idinteger 예
$.oneOf[0].allOf[1].Payload.history[].revisioninteger 예
$.oneOf[0].allOf[1].Payload.history[].submittedDate 예
$.oneOf[0].allOf[1].Payload.history[].submittedDate.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.history[].submittedDate.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.history[].answersobject 예
$.oneOf[0].allOf[1].Payload.history[].answers.*SurveyAnswerValue 아니요Value follows the question type: text or selected key, decimal numeric string, boolean, selected-key list, or null when unanswered.
$.oneOf[0].allOf[1].Payload.history[].answers.*.anyOf[0]null 아니요
$.oneOf[0].allOf[1].Payload.history[].answers.*.anyOf[1]string 아니요
$.oneOf[0].allOf[1].Payload.history[].answers.*.anyOf[2]number 아니요
$.oneOf[0].allOf[1].Payload.history[].answers.*.anyOf[3]boolean 아니요
$.oneOf[0].allOf[1].Payload.history[].answers.*.anyOf[4]array 아니요
$.oneOf[0].allOf[1].Payload.history[].answers.*.anyOf[4][]string 아니요
$.oneOf[0].allOf[1].Payload.draft 예
$.oneOf[0].allOf[1].Payload.draft.anyOf[0]object 예
$.oneOf[0].allOf[1].Payload.draft.anyOf[0].idinteger 예
$.oneOf[0].allOf[1].Payload.draft.anyOf[0].revisioninteger 예
$.oneOf[0].allOf[1].Payload.draft.anyOf[0].submittedDate 예
$.oneOf[0].allOf[1].Payload.draft.anyOf[0].submittedDate.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.draft.anyOf[0].submittedDate.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.draft.anyOf[0].answersobject 예
$.oneOf[0].allOf[1].Payload.draft.anyOf[0].answers.*SurveyAnswerValue 아니요Value follows the question type: text or selected key, decimal numeric string, boolean, selected-key list, or null when unanswered.
$.oneOf[0].allOf[1].Payload.draft.anyOf[0].answers.*.anyOf[0]null 아니요
$.oneOf[0].allOf[1].Payload.draft.anyOf[0].answers.*.anyOf[1]string 아니요
$.oneOf[0].allOf[1].Payload.draft.anyOf[0].answers.*.anyOf[2]number 아니요
$.oneOf[0].allOf[1].Payload.draft.anyOf[0].answers.*.anyOf[3]boolean 아니요
$.oneOf[0].allOf[1].Payload.draft.anyOf[0].answers.*.anyOf[4]array 아니요
$.oneOf[0].allOf[1].Payload.draft.anyOf[0].answers.*.anyOf[4][]string 아니요
$.oneOf[0].allOf[1].Payload.draft.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.prefillobject 예
$.oneOf[0].allOf[1].Payload.prefill.*object 아니요
$.oneOf[0].allOf[1].Payload.prefill.*.valueSurveyAnswerValue 예Value follows the question type: text or selected key, decimal numeric string, boolean, selected-key list, or null when unanswered.
$.oneOf[0].allOf[1].Payload.prefill.*.value.anyOf[0]null 예
$.oneOf[0].allOf[1].Payload.prefill.*.value.anyOf[1]string 예
$.oneOf[0].allOf[1].Payload.prefill.*.value.anyOf[2]number 예
$.oneOf[0].allOf[1].Payload.prefill.*.value.anyOf[3]boolean 예
$.oneOf[0].allOf[1].Payload.prefill.*.value.anyOf[4]array 예
$.oneOf[0].allOf[1].Payload.prefill.*.value.anyOf[4][]string 아니요
$.oneOf[0].allOf[1].Payload.prefill.*.sourcestring ["saved","booking"] 예
$.oneOf[0].allOf[1].Payload.memoryRevisionsobject 예
$.oneOf[0].allOf[1].Payload.memoryRevisions.*integer 아니요
$.oneOf[0].allOf[1].Payload.canAnswerboolean 예
$.oneOf[0].allOf[1].Payload.canCancelboolean 예
$.oneOf[0].allOf[1].Payload.canAttachboolean 예
$.oneOf[0].allOf[1].Payload.isCustomerboolean 예
$.oneOf[0].allOf[1].Payload.salesarray 예
$.oneOf[0].allOf[1].Payload.sales[]object 아니요
$.oneOf[0].allOf[1].Payload.sales[].IDDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.sales[].ID.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.sales[].ID.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.sales[].BidID 예
$.oneOf[0].allOf[1].Payload.sales[].BidID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.sales[].BidID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.sales[].BidID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.sales[].BidID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.sales[].AppointmentID 예
$.oneOf[0].allOf[1].Payload.sales[].AppointmentID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.sales[].AppointmentID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.sales[].AppointmentID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.sales[].AppointmentID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.sales[].TransactionCompletedDate 예
$.oneOf[0].allOf[1].Payload.sales[].TransactionCompletedDate.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.sales[].TransactionCompletedDate.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.sales[].LocationName 예
$.oneOf[0].allOf[1].Payload.sales[].LocationName.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.sales[].LocationName.anyOf[1]null 예
$.oneOf[1]object 예
$.oneOf[1].RequestUserAliasstring 예
$.oneOf[1].RequestPathstring | null 예
$.oneOf[1].RequestStatus = "Failed" 예
$.oneOf[1].ResponseCodeinteger 예
$.oneOf[1].ResponseMessageAPIResponseMessage 예
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[1].ResponseMessage.oneOf[1]array 예
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[1].ResponseMessage.oneOf[2]object 예
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[1].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[1].ErrorReasonstring ["active_bid_selection","chat_permission_unavailable"] 아니요
응답 예제
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/customer_survey/get_request",
    "RequestUserAlias": "example-user",
    "Payload": {
        "request": {
            "id": 0,
            "revision": 0,
            "customerID": 0,
            "sellerID": 0,
            "chatID": 0,
            "bidID": 0,
            "transactionID": 0,
            "title": "synthetic-example",
            "status": "sent",
            "submittedDate": "synthetic-example",
            "url": "synthetic-example"
        },
        "title": "synthetic-example",
        "introduction": "synthetic-example",
        "questions": [],
        "history": [],
        "draft": {
            "id": 0,
            "revision": 0,
            "submittedDate": "synthetic-example",
            "answers": []
        },
        "prefill": [],
        "memoryRevisions": [],
        "canAnswer": false,
        "canCancel": false,
        "canAttach": false,
        "isCustomer": false,
        "sales": []
    }
}
기계가 읽을 수 있는 엔드포인트 문서
GET

/v1/customer_survey/get_requests

#
List only questionnaires sent or received by the acting user. Context filters never widen that access.

매개변수

이름유형필수기본값설명
customerID int 아니요 0 Filter recipient.
transactionID int 아니요 0 Filter a sale, including surveys for its bid and same original pair.
bidID int 아니요 0 Filter bid.
beforeID int 아니요 0 Pagination cursor.
sentOnly bool 아니요 false Seller dashboard filter.
completedOnly bool 아니요 false Only requests with a submitted response; excludes unanswered requests and private drafts.
요청 예제(cURL)
curl --get \
  'https://kr.appointmenttrader.com/v1/customer_survey/get_requests' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'customerID={{customerID}}' \
  --data-urlencode 'transactionID={{transactionID}}' \
  --data-urlencode 'bidID={{bidID}}' \
  --data-urlencode 'beforeID={{beforeID}}' \
  --data-urlencode 'sentOnly={{sentOnly}}' \
  --data-urlencode 'completedOnly={{completedOnly}}'

반환값

JSON
See the shared response schema and synthetic example.
응답 필드
필드유형필수설명
$customer_survey_get_requests_Response 예
$.oneOf[0] 예
$.oneOf[0].allOf[0]object 예
$.oneOf[0].allOf[0].RequestUserAliasstring 예
$.oneOf[0].allOf[0].RequestPathstring | null 예
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 예
$.oneOf[0].allOf[0].ResponseCodeinteger 예
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[0].allOf[1]object 예
$.oneOf[0].allOf[1].Payloadobject 예
$.oneOf[0].allOf[1].Payload.itemsarray 예
$.oneOf[0].allOf[1].Payload.items[]object 아니요
$.oneOf[0].allOf[1].Payload.items[].idinteger 예
$.oneOf[0].allOf[1].Payload.items[].revisioninteger 예
$.oneOf[0].allOf[1].Payload.items[].customerIDinteger 예
$.oneOf[0].allOf[1].Payload.items[].sellerIDinteger 예
$.oneOf[0].allOf[1].Payload.items[].chatIDinteger 예
$.oneOf[0].allOf[1].Payload.items[].bidIDinteger 예
$.oneOf[0].allOf[1].Payload.items[].transactionIDinteger 예
$.oneOf[0].allOf[1].Payload.items[].titlestring 예
$.oneOf[0].allOf[1].Payload.items[].statusstring ["sent","in_progress","submitted","cancelled"] 예
$.oneOf[0].allOf[1].Payload.items[].submittedDate 예
$.oneOf[0].allOf[1].Payload.items[].submittedDate.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.items[].submittedDate.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.items[].urlstring 예
$.oneOf[0].allOf[1].Payload.items[].buyerIdentityHiddenboolean 아니요True when the authenticated viewer cannot see the buyer during the current response race.
$.oneOf[0].allOf[1].Payload.items[].buyerIdentityHiddenUntilinteger | null 아니요Saved current-round ClosesAt as Unix seconds; null when identity is visible. Reveal is authoritative only on a new response.
$.oneOf[0].allOf[1].Payload.hasMoreboolean 예
$.oneOf[0].allOf[1].Payload.beforeIDinteger 예
$.oneOf[1]object 예
$.oneOf[1].RequestUserAliasstring 예
$.oneOf[1].RequestPathstring | null 예
$.oneOf[1].RequestStatus = "Failed" 예
$.oneOf[1].ResponseCodeinteger 예
$.oneOf[1].ResponseMessageAPIResponseMessage 예
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[1].ResponseMessage.oneOf[1]array 예
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[1].ResponseMessage.oneOf[2]object 예
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[1].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[1].ErrorReasonstring ["active_bid_selection","chat_permission_unavailable"] 아니요
응답 예제
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/customer_survey/get_requests",
    "RequestUserAlias": "example-user",
    "Payload": {
        "items": [],
        "hasMore": false,
        "beforeID": 0
    }
}
기계가 읽을 수 있는 엔드포인트 문서
GET

/v1/customer_survey/get_template

#
Read a versioned AT or seller-owned template for preview/edit/copy.

매개변수

이름유형필수기본값설명
templateID int 예 — Template identifier.
요청 예제(cURL)
curl --get \
  'https://kr.appointmenttrader.com/v1/customer_survey/get_template' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'templateID={{templateID}}'

반환값

JSON
See the shared response schema and synthetic example.
응답 필드
필드유형필수설명
$customer_survey_get_template_Response 예
$.oneOf[0] 예
$.oneOf[0].allOf[0]object 예
$.oneOf[0].allOf[0].RequestUserAliasstring 예
$.oneOf[0].allOf[0].RequestPathstring | null 예
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 예
$.oneOf[0].allOf[0].ResponseCodeinteger 예
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[0].allOf[1]object 예
$.oneOf[0].allOf[1].Payloadobject 예
$.oneOf[0].allOf[1].Payload.IDDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.ID.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.ID.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.CreatedDatestring 예
$.oneOf[0].allOf[1].Payload.OwnerUserID 예
$.oneOf[0].allOf[1].Payload.OwnerUserID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.OwnerUserID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.OwnerUserID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.OwnerUserID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.StarterKey 예
$.oneOf[0].allOf[1].Payload.StarterKey.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.StarterKey.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.SourceTemplateID 예
$.oneOf[0].allOf[1].Payload.SourceTemplateID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.SourceTemplateID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.SourceTemplateID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.SourceTemplateID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.CurrentVersionID 예
$.oneOf[0].allOf[1].Payload.CurrentVersionID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.CurrentVersionID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.CurrentVersionID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.CurrentVersionID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.ArchivedDate 예
$.oneOf[0].allOf[1].Payload.ArchivedDate.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.ArchivedDate.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.Titlestring 예
$.oneOf[0].allOf[1].Payload.TitleKey 예
$.oneOf[0].allOf[1].Payload.TitleKey.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.TitleKey.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.VersionNumber 예
$.oneOf[0].allOf[1].Payload.VersionNumber.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.VersionNumber.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.VersionNumber.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.VersionNumber.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.Introduction 예
$.oneOf[0].allOf[1].Payload.Introduction.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.Introduction.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.questionsarray 예
$.oneOf[0].allOf[1].Payload.questions[]object 아니요
$.oneOf[0].allOf[1].Payload.questions[].IDDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].ID.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].ID.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].VersionIDDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].VersionID.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].VersionID.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].FieldID 예
$.oneOf[0].allOf[1].Payload.questions[].FieldID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].FieldID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].FieldID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].FieldID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.questions[].QuestionKeystring 예
$.oneOf[0].allOf[1].Payload.questions[].Labelstring 예
$.oneOf[0].allOf[1].Payload.questions[].LabelKey 예
$.oneOf[0].allOf[1].Payload.questions[].LabelKey.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.questions[].LabelKey.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.questions[].HelpTextstring 예
$.oneOf[0].allOf[1].Payload.questions[].FieldTypestring ["text","number","boolean","single_select","multi_select","longtext"] 예
$.oneOf[0].allOf[1].Payload.questions[].RequiredDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].Required.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].Required.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].SortOrderDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].SortOrder.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].SortOrder.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].ValidationJSONstring (application/json) 예
$.oneOf[0].allOf[1].Payload.questions[].ValidationJSONSurveyValidation (디코딩된 JSON) 예
$.oneOf[0].allOf[1].Payload.questions[].ValidationJSON.anyOf[0]object 예
$.oneOf[0].allOf[1].Payload.questions[].ValidationJSON.anyOf[0].maxLengthinteger 아니요
$.oneOf[0].allOf[1].Payload.questions[].ValidationJSON.anyOf[0].integerboolean 아니요
$.oneOf[0].allOf[1].Payload.questions[].ValidationJSON.anyOf[0].minnumber 아니요
$.oneOf[0].allOf[1].Payload.questions[].ValidationJSON.anyOf[0].maxnumber 아니요
$.oneOf[0].allOf[1].Payload.questions[].ValidationJSON.anyOf[1] = [] 예
$.oneOf[0].allOf[1].Payload.questions[].FieldOwnerUserID 예
$.oneOf[0].allOf[1].Payload.questions[].FieldOwnerUserID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].FieldOwnerUserID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].FieldOwnerUserID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].FieldOwnerUserID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.questions[].ValueScope 예
$.oneOf[0].allOf[1].Payload.questions[].ValueScope.anyOf[0]string ["customer","booking"] 예
$.oneOf[0].allOf[1].Payload.questions[].ValueScope.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.questions[].FieldKey 예
$.oneOf[0].allOf[1].Payload.questions[].FieldKey.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.questions[].FieldKey.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.questions[].validationSurveyValidation 예
$.oneOf[0].allOf[1].Payload.questions[].validation.anyOf[0]object 예
$.oneOf[0].allOf[1].Payload.questions[].validation.anyOf[0].maxLengthinteger 아니요
$.oneOf[0].allOf[1].Payload.questions[].validation.anyOf[0].integerboolean 아니요
$.oneOf[0].allOf[1].Payload.questions[].validation.anyOf[0].minnumber 아니요
$.oneOf[0].allOf[1].Payload.questions[].validation.anyOf[0].maxnumber 아니요
$.oneOf[0].allOf[1].Payload.questions[].validation.anyOf[1] = [] 예
$.oneOf[0].allOf[1].Payload.questions[].Optionsarray 예
$.oneOf[0].allOf[1].Payload.questions[].Options[]object 아니요
$.oneOf[0].allOf[1].Payload.questions[].Options[].IDDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].Options[].ID.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].ID.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].QuestionIDDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].Options[].QuestionID.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].QuestionID.oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].FieldOptionID 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].FieldOptionID.anyOf[0]DatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].Options[].FieldOptionID.anyOf[0].oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].FieldOptionID.anyOf[0].oneOf[1]string 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].FieldOptionID.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].OptionKeystring 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].Labelstring 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].LabelKey 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].LabelKey.anyOf[0]string 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].LabelKey.anyOf[1]null 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].SortOrderDatabaseInteger 예Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.questions[].Options[].SortOrder.oneOf[0]integer 예
$.oneOf[0].allOf[1].Payload.questions[].Options[].SortOrder.oneOf[1]string 예
$.oneOf[1]object 예
$.oneOf[1].RequestUserAliasstring 예
$.oneOf[1].RequestPathstring | null 예
$.oneOf[1].RequestStatus = "Failed" 예
$.oneOf[1].ResponseCodeinteger 예
$.oneOf[1].ResponseMessageAPIResponseMessage 예
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[1].ResponseMessage.oneOf[1]array 예
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[1].ResponseMessage.oneOf[2]object 예
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[1].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[1].ErrorReasonstring ["active_bid_selection","chat_permission_unavailable"] 아니요
응답 예제
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/customer_survey/get_template",
    "RequestUserAlias": "example-user",
    "Payload": {
        "ID": 0,
        "CreatedDate": "synthetic-example",
        "OwnerUserID": 0,
        "StarterKey": "synthetic-example",
        "SourceTemplateID": 0,
        "CurrentVersionID": 0,
        "ArchivedDate": "synthetic-example",
        "Title": "synthetic-example",
        "TitleKey": "synthetic-example",
        "VersionNumber": 0,
        "Introduction": "synthetic-example",
        "questions": []
    }
}
기계가 읽을 수 있는 엔드포인트 문서
POST

/v1/customer_survey/set_attach

#
Attach a customer/bid questionnaire to a completed sale between its original seller and customer. Existing sale links cannot be moved.

매개변수

이름유형필수기본값설명
requestID int 예 — Questionnaire identifier.
transactionID int 예 — Completed sale identifier.
expectedRevision int 예 — Last observed request revision.
isWritingRequest bool 아니요 false Confirm write.
요청 예제(cURL)
curl --request POST \
  'https://kr.appointmenttrader.com/v1/customer_survey/set_attach' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'requestID={{requestID}}' \
  --data-urlencode 'transactionID={{transactionID}}' \
  --data-urlencode 'expectedRevision={{expectedRevision}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

반환값

JSON
See the shared response schema and synthetic example.
응답 필드
필드유형필수설명
$customer_survey_set_attach_Response 예
$.oneOf[0] 예
$.oneOf[0].allOf[0]object 예
$.oneOf[0].allOf[0].RequestUserAliasstring 예
$.oneOf[0].allOf[0].RequestPathstring | null 예
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 예
$.oneOf[0].allOf[0].ResponseCodeinteger 예
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[0].allOf[1]object 예
$.oneOf[0].allOf[1].Payloadobject 예
$.oneOf[0].allOf[1].Payload.requestIDinteger 예
$.oneOf[0].allOf[1].Payload.chatIDinteger 예
$.oneOf[1]object 예
$.oneOf[1].RequestUserAliasstring 예
$.oneOf[1].RequestPathstring | null 예
$.oneOf[1].RequestStatus = "Failed" 예
$.oneOf[1].ResponseCodeinteger 예
$.oneOf[1].ResponseMessageAPIResponseMessage 예
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[1].ResponseMessage.oneOf[1]array 예
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[1].ResponseMessage.oneOf[2]object 예
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[1].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[1].ErrorReasonstring ["active_bid_selection","chat_permission_unavailable"] 아니요
응답 예제
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/customer_survey/set_attach",
    "RequestUserAlias": "example-user",
    "Payload": {
        "requestID": 0,
        "chatID": 0
    }
}
기계가 읽을 수 있는 엔드포인트 문서
POST

/v1/customer_survey/set_cancel

#
Cancel an unanswered questionnaire as its sending seller.

매개변수

이름유형필수기본값설명
requestID int 예 — Questionnaire identifier.
expectedRevision int 예 — Last observed request revision.
isWritingRequest bool 아니요 false Confirm write.
요청 예제(cURL)
curl --request POST \
  'https://kr.appointmenttrader.com/v1/customer_survey/set_cancel' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'requestID={{requestID}}' \
  --data-urlencode 'expectedRevision={{expectedRevision}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

반환값

JSON
See the shared response schema and synthetic example.
응답 필드
필드유형필수설명
$customer_survey_set_cancel_Response 예
$.oneOf[0] 예
$.oneOf[0].allOf[0]object 예
$.oneOf[0].allOf[0].RequestUserAliasstring 예
$.oneOf[0].allOf[0].RequestPathstring | null 예
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 예
$.oneOf[0].allOf[0].ResponseCodeinteger 예
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[0].allOf[1]object 예
$.oneOf[0].allOf[1].Payloadobject 예
$.oneOf[0].allOf[1].Payload.requestIDinteger 예
$.oneOf[0].allOf[1].Payload.chatIDinteger 예
$.oneOf[1]object 예
$.oneOf[1].RequestUserAliasstring 예
$.oneOf[1].RequestPathstring | null 예
$.oneOf[1].RequestStatus = "Failed" 예
$.oneOf[1].ResponseCodeinteger 예
$.oneOf[1].ResponseMessageAPIResponseMessage 예
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[1].ResponseMessage.oneOf[1]array 예
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[1].ResponseMessage.oneOf[2]object 예
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[1].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[1].ErrorReasonstring ["active_bid_selection","chat_permission_unavailable"] 아니요
응답 예제
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/customer_survey/set_cancel",
    "RequestUserAlias": "example-user",
    "Payload": {
        "requestID": 0,
        "chatID": 0
    }
}
기계가 읽을 수 있는 엔드포인트 문서
POST

/v1/customer_survey/set_draft

#
Save a customer-only draft. Drafts never update seller CRM or remembered values.

매개변수

이름유형필수기본값설명
dataJSON string 예 — UTF-8 JSON object, preferably encoded as base64url: followed by unpadded URL-safe base64 to preserve authored text. Object: requestID, expectedRevision, operationKey, answers keyed by question ID, memoryRevisions keyed by field ID. Null means unanswered; false and zero are answers.
isWritingRequest bool 아니요 false Confirm write.
요청 예제(cURL)
curl --request POST \
  'https://kr.appointmenttrader.com/v1/customer_survey/set_draft' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'dataJSON={{dataJSON}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

반환값

JSON
See the shared response schema and synthetic example.
매개변수: dataJSON
필드유형필수설명
dataJSONstring (application/json) 예
dataJSONobject (디코딩된 JSON) 예
dataJSON.requestIDinteger 예
dataJSON.operationKeystring 예
dataJSON.expectedRevisioninteger 예
dataJSON.answersobject 예
dataJSON.answers.*SurveyAnswerValue 아니요Value follows the question type: text or selected key, decimal numeric string, boolean, selected-key list, or null when unanswered.
dataJSON.answers.*.anyOf[0]null 아니요
dataJSON.answers.*.anyOf[1]string 아니요
dataJSON.answers.*.anyOf[2]number 아니요
dataJSON.answers.*.anyOf[3]boolean 아니요
dataJSON.answers.*.anyOf[4]array 아니요
dataJSON.answers.*.anyOf[4][]string 아니요
dataJSON.memoryRevisionsobject 예
dataJSON.memoryRevisions.*integer 아니요
응답 필드
필드유형필수설명
$customer_survey_set_draft_Response 예
$.oneOf[0] 예
$.oneOf[0].allOf[0]object 예
$.oneOf[0].allOf[0].RequestUserAliasstring 예
$.oneOf[0].allOf[0].RequestPathstring | null 예
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 예
$.oneOf[0].allOf[0].ResponseCodeinteger 예
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[0].allOf[1]object 예
$.oneOf[0].allOf[1].Payloadobject 예
$.oneOf[0].allOf[1].Payload.requestIDinteger 예
$.oneOf[0].allOf[1].Payload.revisioninteger 예
$.oneOf[0].allOf[1].Payload.chatIDinteger 아니요
$.oneOf[1]object 예
$.oneOf[1].RequestUserAliasstring 예
$.oneOf[1].RequestPathstring | null 예
$.oneOf[1].RequestStatus = "Failed" 예
$.oneOf[1].ResponseCodeinteger 예
$.oneOf[1].ResponseMessageAPIResponseMessage 예
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[1].ResponseMessage.oneOf[1]array 예
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[1].ResponseMessage.oneOf[2]object 예
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[1].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[1].ErrorReasonstring ["active_bid_selection","chat_permission_unavailable"] 아니요
응답 예제
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/customer_survey/set_draft",
    "RequestUserAlias": "example-user",
    "Payload": {
        "requestID": 0,
        "revision": 0
    }
}
기계가 읽을 수 있는 엔드포인트 문서
POST

/v1/customer_survey/set_forget

#
Forget an own remembered value for future prefills. Existing seller-shared submissions remain unchanged.

매개변수

이름유형필수기본값설명
fieldID int 예 — Remembered field identifier.
expectedRevision int 예 — Memory revision returned by get_customer_fields.
isWritingRequest bool 아니요 false Confirm write.
요청 예제(cURL)
curl --request POST \
  'https://kr.appointmenttrader.com/v1/customer_survey/set_forget' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'fieldID={{fieldID}}' \
  --data-urlencode 'expectedRevision={{expectedRevision}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

반환값

JSON
See the shared response schema and synthetic example.
응답 필드
필드유형필수설명
$customer_survey_set_forget_Response 예
$.oneOf[0] 예
$.oneOf[0].allOf[0]object 예
$.oneOf[0].allOf[0].RequestUserAliasstring 예
$.oneOf[0].allOf[0].RequestPathstring | null 예
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 예
$.oneOf[0].allOf[0].ResponseCodeinteger 예
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[0].allOf[1]object 예
$.oneOf[0].allOf[1].Payloadobject 예
$.oneOf[0].allOf[1].Payload.fieldIDinteger 예
$.oneOf[1]object 예
$.oneOf[1].RequestUserAliasstring 예
$.oneOf[1].RequestPathstring | null 예
$.oneOf[1].RequestStatus = "Failed" 예
$.oneOf[1].ResponseCodeinteger 예
$.oneOf[1].ResponseMessageAPIResponseMessage 예
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[1].ResponseMessage.oneOf[1]array 예
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[1].ResponseMessage.oneOf[2]object 예
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[1].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[1].ErrorReasonstring ["active_bid_selection","chat_permission_unavailable"] 아니요
응답 예제
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/customer_survey/set_forget",
    "RequestUserAlias": "example-user",
    "Payload": {
        "fieldID": 0
    }
}
기계가 읽을 수 있는 엔드포인트 문서
POST

/v1/customer_survey/set_send

#
Send one questionnaire to the server-resolved customer in an accepted chat. Reuse operationKey for retries only. Active bid selection pauses incoming questionnaires unless the sender has GlobalCommunityAdministration; ErrorReason=active_bid_selection.

매개변수

이름유형필수기본값설명
dataJSON string 예 — UTF-8 JSON object, preferably encoded as base64url: followed by unpadded URL-safe base64 to preserve authored text. Object: chatID, templateID, versionID, transactionID (optional), operationKey (16-80 ASCII letters/digits/hyphens/underscores).
isWritingRequest bool 아니요 false Confirm write.
요청 예제(cURL)
curl --request POST \
  'https://kr.appointmenttrader.com/v1/customer_survey/set_send' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'dataJSON={{dataJSON}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

반환값

JSON
See the shared response schema and synthetic example.
매개변수: dataJSON
필드유형필수설명
dataJSONstring (application/json) 예
dataJSONobject (디코딩된 JSON) 예
dataJSON.chatIDinteger 예
dataJSON.templateIDinteger 예
dataJSON.versionIDinteger 예
dataJSON.transactionIDinteger 아니요
dataJSON.operationKeystring 예
응답 필드
필드유형필수설명
$customer_survey_set_send_Response 예
$.oneOf[0] 예
$.oneOf[0].allOf[0]object 예
$.oneOf[0].allOf[0].RequestUserAliasstring 예
$.oneOf[0].allOf[0].RequestPathstring | null 예
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 예
$.oneOf[0].allOf[0].ResponseCodeinteger 예
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[0].allOf[1]object 예
$.oneOf[0].allOf[1].Payloadobject 예
$.oneOf[0].allOf[1].Payload.requestIDinteger 예
$.oneOf[0].allOf[1].Payload.chatIDinteger 아니요
$.oneOf[1]object 예
$.oneOf[1].RequestUserAliasstring 예
$.oneOf[1].RequestPathstring | null 예
$.oneOf[1].RequestStatus = "Failed" 예
$.oneOf[1].ResponseCodeinteger 예
$.oneOf[1].ResponseMessageAPIResponseMessage 예
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[1].ResponseMessage.oneOf[1]array 예
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[1].ResponseMessage.oneOf[2]object 예
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[1].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[1].ErrorReasonstring ["active_bid_selection","chat_permission_unavailable"] 아니요
응답 예제
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/customer_survey/set_send",
    "RequestUserAlias": "example-user",
    "Payload": {
        "requestID": 0
    }
}
기계가 읽을 수 있는 엔드포인트 문서
POST

/v1/customer_survey/set_submit

#
Confirm and share a new immutable response revision with this seller. Also updates customer memory and this seller's CRM pointers atomically.

매개변수

이름유형필수기본값설명
dataJSON string 예 — UTF-8 JSON object, preferably encoded with the base64url: prefix. Same object as /v1/customer_survey/set_draft; required answers and memory revisions are enforced.
isWritingRequest bool 아니요 false Confirm customer sharing.
요청 예제(cURL)
curl --request POST \
  'https://kr.appointmenttrader.com/v1/customer_survey/set_submit' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'dataJSON={{dataJSON}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

반환값

JSON
See the shared response schema and synthetic example.
매개변수: dataJSON
필드유형필수설명
dataJSONstring (application/json) 예
dataJSONobject (디코딩된 JSON) 예
dataJSON.requestIDinteger 예
dataJSON.operationKeystring 예
dataJSON.expectedRevisioninteger 예
dataJSON.answersobject 예
dataJSON.answers.*SurveyAnswerValue 아니요Value follows the question type: text or selected key, decimal numeric string, boolean, selected-key list, or null when unanswered.
dataJSON.answers.*.anyOf[0]null 아니요
dataJSON.answers.*.anyOf[1]string 아니요
dataJSON.answers.*.anyOf[2]number 아니요
dataJSON.answers.*.anyOf[3]boolean 아니요
dataJSON.answers.*.anyOf[4]array 아니요
dataJSON.answers.*.anyOf[4][]string 아니요
dataJSON.memoryRevisionsobject 예
dataJSON.memoryRevisions.*integer 아니요
응답 필드
필드유형필수설명
$customer_survey_set_submit_Response 예
$.oneOf[0] 예
$.oneOf[0].allOf[0]object 예
$.oneOf[0].allOf[0].RequestUserAliasstring 예
$.oneOf[0].allOf[0].RequestPathstring | null 예
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 예
$.oneOf[0].allOf[0].ResponseCodeinteger 예
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[0].allOf[1]object 예
$.oneOf[0].allOf[1].Payloadobject 예
$.oneOf[0].allOf[1].Payload.requestIDinteger 예
$.oneOf[0].allOf[1].Payload.revisioninteger 예
$.oneOf[0].allOf[1].Payload.chatIDinteger 아니요
$.oneOf[1]object 예
$.oneOf[1].RequestUserAliasstring 예
$.oneOf[1].RequestPathstring | null 예
$.oneOf[1].RequestStatus = "Failed" 예
$.oneOf[1].ResponseCodeinteger 예
$.oneOf[1].ResponseMessageAPIResponseMessage 예
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[1].ResponseMessage.oneOf[1]array 예
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[1].ResponseMessage.oneOf[2]object 예
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[1].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[1].ErrorReasonstring ["active_bid_selection","chat_permission_unavailable"] 아니요
응답 예제
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/customer_survey/set_submit",
    "RequestUserAlias": "example-user",
    "Payload": {
        "requestID": 0,
        "revision": 0
    }
}
기계가 읽을 수 있는 엔드포인트 문서
POST

/v1/customer_survey/set_template

#
Create or append an immutable template version. A system-field ID owns type, label and options; clients cannot redefine them. Answer types: text (single-line input), longtext (multiline textarea), number, boolean, single_select, multi_select. Both text types preserve nonblank string values up to 4000 characters by default; empty or whitespace-only text is unanswered.

매개변수

이름유형필수기본값설명
dataJSON string 예 — UTF-8 JSON object, preferably encoded as base64url: followed by unpadded URL-safe base64 to preserve authored text. Object: templateID (zero creates), expectedVersionID, sourceTemplateID, title, introduction, questions [{fieldID, label, help, type, required, remember, integer, min, max, options:[{key,label}]}].
isWritingRequest bool 아니요 false Confirm write.
요청 예제(cURL)
curl --request POST \
  'https://kr.appointmenttrader.com/v1/customer_survey/set_template' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'dataJSON={{dataJSON}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

반환값

JSON
See the shared response schema and synthetic example.
매개변수: dataJSON
필드유형필수설명
dataJSONstring (application/json) 예
dataJSONobject (디코딩된 JSON) 예
dataJSON.titlestring 예
dataJSON.introductionstring 아니요
dataJSON.templateIDinteger 아니요
dataJSON.sourceTemplateIDinteger 아니요
dataJSON.expectedVersionIDinteger 아니요
dataJSON.questionsarray 예
dataJSON.questions[] 아니요
dataJSON.questions[].anyOf[0]object 아니요
dataJSON.questions[].anyOf[0].fieldIDinteger 예
dataJSON.questions[].anyOf[0].labelstring 아니요
dataJSON.questions[].anyOf[0].typestring ["text","longtext","number","boolean","single_select","multi_select"] 아니요
dataJSON.questions[].anyOf[0].helpstring 아니요
dataJSON.questions[].anyOf[0].requiredboolean 아니요
dataJSON.questions[].anyOf[0].rememberboolean 아니요
dataJSON.questions[].anyOf[0].integerboolean 아니요
dataJSON.questions[].anyOf[0].minDatabaseNumber 아니요Numeric value; MySQL reads can serialize numbers as numeric strings.
dataJSON.questions[].anyOf[0].min.oneOf[0]number 아니요
dataJSON.questions[].anyOf[0].min.oneOf[1]string 아니요
dataJSON.questions[].anyOf[0].maxDatabaseNumber 아니요Numeric value; MySQL reads can serialize numbers as numeric strings.
dataJSON.questions[].anyOf[0].max.oneOf[0]number 아니요
dataJSON.questions[].anyOf[0].max.oneOf[1]string 아니요
dataJSON.questions[].anyOf[0].optionsarray 아니요
dataJSON.questions[].anyOf[0].options[]object 아니요
dataJSON.questions[].anyOf[0].options[].keystring 아니요
dataJSON.questions[].anyOf[0].options[].labelstring 예
dataJSON.questions[].anyOf[1]object 아니요
dataJSON.questions[].anyOf[1].fieldIDinteger 아니요
dataJSON.questions[].anyOf[1].labelstring 예
dataJSON.questions[].anyOf[1].typestring ["text","longtext","number","boolean","single_select","multi_select"] 예
dataJSON.questions[].anyOf[1].helpstring 아니요
dataJSON.questions[].anyOf[1].requiredboolean 아니요
dataJSON.questions[].anyOf[1].rememberboolean 아니요
dataJSON.questions[].anyOf[1].integerboolean 아니요
dataJSON.questions[].anyOf[1].minDatabaseNumber 아니요Numeric value; MySQL reads can serialize numbers as numeric strings.
dataJSON.questions[].anyOf[1].min.oneOf[0]number 아니요
dataJSON.questions[].anyOf[1].min.oneOf[1]string 아니요
dataJSON.questions[].anyOf[1].maxDatabaseNumber 아니요Numeric value; MySQL reads can serialize numbers as numeric strings.
dataJSON.questions[].anyOf[1].max.oneOf[0]number 아니요
dataJSON.questions[].anyOf[1].max.oneOf[1]string 아니요
dataJSON.questions[].anyOf[1].optionsarray 아니요
dataJSON.questions[].anyOf[1].options[]object 아니요
dataJSON.questions[].anyOf[1].options[].keystring 아니요
dataJSON.questions[].anyOf[1].options[].labelstring 예
응답 필드
필드유형필수설명
$customer_survey_set_template_Response 예
$.oneOf[0] 예
$.oneOf[0].allOf[0]object 예
$.oneOf[0].allOf[0].RequestUserAliasstring 예
$.oneOf[0].allOf[0].RequestPathstring | null 예
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 예
$.oneOf[0].allOf[0].ResponseCodeinteger 예
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[0].allOf[1]object 예
$.oneOf[0].allOf[1].Payloadobject 예
$.oneOf[0].allOf[1].Payload.templateIDinteger 예
$.oneOf[0].allOf[1].Payload.versionIDinteger 예
$.oneOf[1]object 예
$.oneOf[1].RequestUserAliasstring 예
$.oneOf[1].RequestPathstring | null 예
$.oneOf[1].RequestStatus = "Failed" 예
$.oneOf[1].ResponseCodeinteger 예
$.oneOf[1].ResponseMessageAPIResponseMessage 예
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[1].ResponseMessage.oneOf[1]array 예
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[1].ResponseMessage.oneOf[2]object 예
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[1].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[1].ErrorReasonstring ["active_bid_selection","chat_permission_unavailable"] 아니요
응답 예제
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/customer_survey/set_template",
    "RequestUserAlias": "example-user",
    "Payload": {
        "templateID": 0,
        "versionID": 0
    }
}
기계가 읽을 수 있는 엔드포인트 문서
POST

/v1/customer_survey/set_template_archive

#
Archive an owned template without changing sent questionnaires.

매개변수

이름유형필수기본값설명
templateID int 예 — Template identifier.
expectedVersionID int 예 — Last observed current version ID.
isWritingRequest bool 아니요 false Confirm write.
요청 예제(cURL)
curl --request POST \
  'https://kr.appointmenttrader.com/v1/customer_survey/set_template_archive' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'templateID={{templateID}}' \
  --data-urlencode 'expectedVersionID={{expectedVersionID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

반환값

JSON
See the shared response schema and synthetic example.
응답 필드
필드유형필수설명
$customer_survey_set_template_archive_Response 예
$.oneOf[0] 예
$.oneOf[0].allOf[0]object 예
$.oneOf[0].allOf[0].RequestUserAliasstring 예
$.oneOf[0].allOf[0].RequestPathstring | null 예
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 예
$.oneOf[0].allOf[0].ResponseCodeinteger 예
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 예
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[0].allOf[1]object 예
$.oneOf[0].allOf[1].Payloadobject 예
$.oneOf[0].allOf[1].Payload.templateIDinteger 예
$.oneOf[1]object 예
$.oneOf[1].RequestUserAliasstring 예
$.oneOf[1].RequestPathstring | null 예
$.oneOf[1].RequestStatus = "Failed" 예
$.oneOf[1].ResponseCodeinteger 예
$.oneOf[1].ResponseMessageAPIResponseMessage 예
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 예
$.oneOf[1].ResponseMessage.oneOf[1]array 예
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 아니요
$.oneOf[1].ResponseMessage.oneOf[2]object 예
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 아니요
$.oneOf[1].RequestImpersonatedByUserAliasstring 아니요
$.oneOf[1].ErrorReasonstring ["active_bid_selection","chat_permission_unavailable"] 아니요
응답 예제
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/customer_survey/set_template_archive",
    "RequestUserAlias": "example-user",
    "Payload": {
        "templateID": 0
    }
}
기계가 읽을 수 있는 엔드포인트 문서