当前在线  

/v1/auth/

Auth session management endpoints for native v2 account surfaces. Email-code and Google-state initiation are public by design. Session-management endpoints are authenticated-only. They expose the viewer's active browser sessions, allow a user to remove one session, remove every other session, or remove all sessions. Removing the current browser session clears the current browser session cookie and returns signedOut=true so native v2 clients can hard-navigate into the logged-out shell.
GET

/v1/auth/get_sessions

#
Return the authenticated user's active sessions, with the current browser session marked for display on the native v2 Session Manager.
请求示例(cURL)
curl --get \
  'https://cn.appointmenttrader.com/v1/auth/get_sessions' \
  --data-urlencode 'key={{API_KEY}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$auth_get_sessions_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.sessionsarray 是的
$.oneOf[0].allOf[1].Payload.sessions[]object 否
$.oneOf[0].allOf[1].Payload.sessions[].sessionIDstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].createdDatestring 是的
$.oneOf[0].allOf[1].Payload.sessions[].createdLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].lastActivityDatestring 是的
$.oneOf[0].allOf[1].Payload.sessions[].lastActivityLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].ipstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].citystring 是的
$.oneOf[0].allOf[1].Payload.sessions[].countrystring 是的
$.oneOf[0].allOf[1].Payload.sessions[].locationLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].deviceLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].browserLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].agentstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].lastOriginstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].releaseVersionstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].buildModestring 是的
$.oneOf[0].allOf[1].Payload.sessions[].clientTypestring 是的
$.oneOf[0].allOf[1].Payload.sessions[].isCurrentboolean 是的
$.oneOf[0].allOf[1].Payload.sessions[].isAlternativePortalSessionboolean 是的
$.oneOf[0].allOf[1].Payload.currentSession 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].sessionIDstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].createdDatestring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].createdLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].lastActivityDatestring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].lastActivityLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].ipstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].citystring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].countrystring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].locationLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].deviceLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].browserLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].agentstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].lastOriginstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].releaseVersionstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].buildModestring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].clientTypestring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].isCurrentboolean 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].isAlternativePortalSessionboolean 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.otherSessionsarray 是的
$.oneOf[0].allOf[1].Payload.otherSessions[]object 否
$.oneOf[0].allOf[1].Payload.otherSessions[].sessionIDstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].createdDatestring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].createdLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].lastActivityDatestring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].lastActivityLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].ipstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].citystring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].countrystring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].locationLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].deviceLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].browserLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].agentstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].lastOriginstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].releaseVersionstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].buildModestring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].clientTypestring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].isCurrentboolean 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].isAlternativePortalSessionboolean 是的
$.oneOf[0].allOf[1].Payload.currentSessionIDstring 是的
$.oneOf[0].allOf[1].Payload.otherSessionCountinteger 是的
$.oneOf[0].allOf[1].Payload.signedOutboolean 是的
$.oneOf[0].allOf[1].Payload.redirectUrlstring 是的
$.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 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/auth/get_sessions",
    "RequestUserAlias": "example-user",
    "Payload": {
        "sessions": [],
        "currentSession": {
            "sessionID": "synthetic-example",
            "createdDate": "synthetic-example",
            "createdLabel": "synthetic-example",
            "lastActivityDate": "synthetic-example",
            "lastActivityLabel": "synthetic-example",
            "ip": "synthetic-example",
            "city": "synthetic-example",
            "country": "synthetic-example",
            "locationLabel": "synthetic-example",
            "deviceLabel": "synthetic-example",
            "browserLabel": "synthetic-example",
            "agent": "synthetic-example",
            "lastOrigin": "synthetic-example",
            "releaseVersion": "synthetic-example",
            "buildMode": "synthetic-example",
            "clientType": "synthetic-example",
            "isCurrent": false,
            "isAlternativePortalSession": false
        },
        "otherSessions": [],
        "currentSessionID": "synthetic-example",
        "otherSessionCount": 0,
        "signedOut": false,
        "redirectUrl": "synthetic-example"
    }
}
机器可读的端点文档
POST

/v1/auth/set_all_sessions_removed

#
Remove every active session owned by the authenticated user, including the current browser session. The browser cookie is expired and the response includes signedOut=true.

参数

名称类型必填默认值描述
isWritingRequest bool 否 false Set true to actually remove all sessions.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/auth/set_all_sessions_removed' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$auth_set_all_sessions_removed_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.sessionsarray 是的
$.oneOf[0].allOf[1].Payload.sessions[]object 否
$.oneOf[0].allOf[1].Payload.sessions[].sessionIDstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].createdDatestring 是的
$.oneOf[0].allOf[1].Payload.sessions[].createdLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].lastActivityDatestring 是的
$.oneOf[0].allOf[1].Payload.sessions[].lastActivityLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].ipstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].citystring 是的
$.oneOf[0].allOf[1].Payload.sessions[].countrystring 是的
$.oneOf[0].allOf[1].Payload.sessions[].locationLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].deviceLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].browserLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].agentstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].lastOriginstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].releaseVersionstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].buildModestring 是的
$.oneOf[0].allOf[1].Payload.sessions[].clientTypestring 是的
$.oneOf[0].allOf[1].Payload.sessions[].isCurrentboolean 是的
$.oneOf[0].allOf[1].Payload.sessions[].isAlternativePortalSessionboolean 是的
$.oneOf[0].allOf[1].Payload.currentSession 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].sessionIDstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].createdDatestring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].createdLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].lastActivityDatestring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].lastActivityLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].ipstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].citystring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].countrystring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].locationLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].deviceLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].browserLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].agentstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].lastOriginstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].releaseVersionstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].buildModestring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].clientTypestring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].isCurrentboolean 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].isAlternativePortalSessionboolean 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.otherSessionsarray 是的
$.oneOf[0].allOf[1].Payload.otherSessions[]object 否
$.oneOf[0].allOf[1].Payload.otherSessions[].sessionIDstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].createdDatestring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].createdLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].lastActivityDatestring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].lastActivityLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].ipstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].citystring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].countrystring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].locationLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].deviceLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].browserLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].agentstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].lastOriginstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].releaseVersionstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].buildModestring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].clientTypestring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].isCurrentboolean 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].isAlternativePortalSessionboolean 是的
$.oneOf[0].allOf[1].Payload.currentSessionIDstring 是的
$.oneOf[0].allOf[1].Payload.otherSessionCountinteger 是的
$.oneOf[0].allOf[1].Payload.signedOutboolean 是的
$.oneOf[0].allOf[1].Payload.redirectUrlstring 是的
$.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 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/auth/set_all_sessions_removed",
    "RequestUserAlias": "example-user",
    "Payload": {
        "sessions": [],
        "currentSession": {
            "sessionID": "synthetic-example",
            "createdDate": "synthetic-example",
            "createdLabel": "synthetic-example",
            "lastActivityDate": "synthetic-example",
            "lastActivityLabel": "synthetic-example",
            "ip": "synthetic-example",
            "city": "synthetic-example",
            "country": "synthetic-example",
            "locationLabel": "synthetic-example",
            "deviceLabel": "synthetic-example",
            "browserLabel": "synthetic-example",
            "agent": "synthetic-example",
            "lastOrigin": "synthetic-example",
            "releaseVersion": "synthetic-example",
            "buildMode": "synthetic-example",
            "clientType": "synthetic-example",
            "isCurrent": false,
            "isAlternativePortalSession": false
        },
        "otherSessions": [],
        "currentSessionID": "synthetic-example",
        "otherSessionCount": 0,
        "signedOut": false,
        "redirectUrl": "synthetic-example"
    }
}
机器可读的端点文档
POST

/v1/auth/set_google_oauth_state

#
Create signed Google OAuth state, including optional signup-page context. Public-by-design: anonymous users must be able to begin Google authentication.

参数

名称类型必填默认值描述
signupContext string 否 "" Optional base64 JSON {path,locationID,capturedAt}; capturedAt is Unix seconds.
isWritingRequest bool 否 false Set true to issue state and its anti-CSRF cookie.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/auth/set_google_oauth_state' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'signupContext={{signupContext}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
参数: signupContext
字段类型必填描述
signupContextstring (application/json) 否
signupContextobject (解码后的 JSON) 否
signupContext.pathstring 是的
signupContext.locationIDDatabaseInteger 否Integer value; legacy MySQL reads may serialize it as a numeric string.
signupContext.locationID.oneOf[0]integer 否
signupContext.locationID.oneOf[1]string 否
signupContext.capturedAtDatabaseInteger 否Integer value; legacy MySQL reads may serialize it as a numeric string.
signupContext.capturedAt.oneOf[0]integer 否
signupContext.capturedAt.oneOf[1]string 否
响应字段
字段类型必填描述
$auth_set_google_oauth_state_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].Payload 是的
$.oneOf[0].allOf[1].Payload.oneOf[0]object 是的
$.oneOf[0].allOf[1].Payload.oneOf[0].State = "Success" 是的
$.oneOf[0].allOf[1].Payload.oneOf[0].Payloadstring 是的
$.oneOf[0].allOf[1].Payload.oneOf[1]object 是的
$.oneOf[0].allOf[1].Payload.oneOf[1].State = "Failed" 是的
$.oneOf[0].allOf[1].Payload.oneOf[1].ErrorMessagestring 是的
$.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 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/auth/set_google_oauth_state",
    "RequestUserAlias": "example-user",
    "Payload": {
        "State": "Success",
        "Payload": "synthetic-example"
    }
}
机器可读的端点文档
POST

/v1/auth/set_other_sessions_removed

#
Remove every active session except the current browser session. The viewer remains signed in on this device and receives a refreshed list.

参数

名称类型必填默认值描述
isWritingRequest bool 否 false Set true to actually remove other sessions.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/auth/set_other_sessions_removed' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$auth_set_other_sessions_removed_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.sessionsarray 是的
$.oneOf[0].allOf[1].Payload.sessions[]object 否
$.oneOf[0].allOf[1].Payload.sessions[].sessionIDstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].createdDatestring 是的
$.oneOf[0].allOf[1].Payload.sessions[].createdLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].lastActivityDatestring 是的
$.oneOf[0].allOf[1].Payload.sessions[].lastActivityLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].ipstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].citystring 是的
$.oneOf[0].allOf[1].Payload.sessions[].countrystring 是的
$.oneOf[0].allOf[1].Payload.sessions[].locationLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].deviceLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].browserLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].agentstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].lastOriginstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].releaseVersionstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].buildModestring 是的
$.oneOf[0].allOf[1].Payload.sessions[].clientTypestring 是的
$.oneOf[0].allOf[1].Payload.sessions[].isCurrentboolean 是的
$.oneOf[0].allOf[1].Payload.sessions[].isAlternativePortalSessionboolean 是的
$.oneOf[0].allOf[1].Payload.currentSession 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].sessionIDstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].createdDatestring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].createdLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].lastActivityDatestring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].lastActivityLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].ipstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].citystring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].countrystring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].locationLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].deviceLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].browserLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].agentstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].lastOriginstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].releaseVersionstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].buildModestring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].clientTypestring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].isCurrentboolean 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].isAlternativePortalSessionboolean 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.otherSessionsarray 是的
$.oneOf[0].allOf[1].Payload.otherSessions[]object 否
$.oneOf[0].allOf[1].Payload.otherSessions[].sessionIDstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].createdDatestring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].createdLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].lastActivityDatestring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].lastActivityLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].ipstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].citystring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].countrystring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].locationLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].deviceLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].browserLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].agentstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].lastOriginstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].releaseVersionstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].buildModestring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].clientTypestring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].isCurrentboolean 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].isAlternativePortalSessionboolean 是的
$.oneOf[0].allOf[1].Payload.currentSessionIDstring 是的
$.oneOf[0].allOf[1].Payload.otherSessionCountinteger 是的
$.oneOf[0].allOf[1].Payload.signedOutboolean 是的
$.oneOf[0].allOf[1].Payload.redirectUrlstring 是的
$.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 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/auth/set_other_sessions_removed",
    "RequestUserAlias": "example-user",
    "Payload": {
        "sessions": [],
        "currentSession": {
            "sessionID": "synthetic-example",
            "createdDate": "synthetic-example",
            "createdLabel": "synthetic-example",
            "lastActivityDate": "synthetic-example",
            "lastActivityLabel": "synthetic-example",
            "ip": "synthetic-example",
            "city": "synthetic-example",
            "country": "synthetic-example",
            "locationLabel": "synthetic-example",
            "deviceLabel": "synthetic-example",
            "browserLabel": "synthetic-example",
            "agent": "synthetic-example",
            "lastOrigin": "synthetic-example",
            "releaseVersion": "synthetic-example",
            "buildMode": "synthetic-example",
            "clientType": "synthetic-example",
            "isCurrent": false,
            "isAlternativePortalSession": false
        },
        "otherSessions": [],
        "currentSessionID": "synthetic-example",
        "otherSessionCount": 0,
        "signedOut": false,
        "redirectUrl": "synthetic-example"
    }
}
机器可读的端点文档
POST

/v1/auth/set_send_login_code

#
Send an email login code using the existing authentication flow. A new account retains optional signup-page context independently from its post-login return destination. Public-by-design: anonymous users must be able to begin email authentication.

参数

名称类型必填默认值描述
email string 是的 — Email address to authenticate.
origin string 否 "Sign in" Existing auth action label.
originalRequest string 否 "" Base64-encoded post-login return URL.
signupContext string 否 "" Optional base64 JSON {path,locationID,capturedAt}; capturedAt is Unix seconds.
isWritingRequest bool 否 false Set true to send the code.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/auth/set_send_login_code' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'email={{email}}' \
  --data-urlencode 'origin={{origin}}' \
  --data-urlencode 'originalRequest={{originalRequest}}' \
  --data-urlencode 'signupContext={{signupContext}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
参数: signupContext
字段类型必填描述
signupContextstring (application/json) 否
signupContextobject (解码后的 JSON) 否
signupContext.pathstring 是的
signupContext.locationIDDatabaseInteger 否Integer value; legacy MySQL reads may serialize it as a numeric string.
signupContext.locationID.oneOf[0]integer 否
signupContext.locationID.oneOf[1]string 否
signupContext.capturedAtDatabaseInteger 否Integer value; legacy MySQL reads may serialize it as a numeric string.
signupContext.capturedAt.oneOf[0]integer 否
signupContext.capturedAt.oneOf[1]string 否
响应字段
字段类型必填描述
$auth_set_send_login_code_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].Payload 是的
$.oneOf[0].allOf[1].Payload.oneOf[0]object 是的
$.oneOf[0].allOf[1].Payload.oneOf[0].State = "Success" 是的
$.oneOf[0].allOf[1].Payload.oneOf[0].URLstring 是的
$.oneOf[0].allOf[1].Payload.oneOf[1]object 是的
$.oneOf[0].allOf[1].Payload.oneOf[1].State = "Failed" 是的
$.oneOf[0].allOf[1].Payload.oneOf[1].ErrorMessagestring 是的
$.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[2]object 是的Legacy authenticate.php exits directly after a checkout email-binding failure, before CallLegacyEndpoint can wrap this JSON.
$.oneOf[2].State = "Failed" 是的
$.oneOf[2].ErrorMessagestring 是的
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/auth/set_send_login_code",
    "RequestUserAlias": "example-user",
    "Payload": {
        "State": "Success",
        "URL": "synthetic-example"
    }
}
机器可读的端点文档
POST

/v1/auth/set_session_removed

#
Remove one active session owned by the authenticated user. If that session is the current browser session, the browser cookie is expired and the response includes signedOut=true.

参数

名称类型必填默认值描述
sessionID string 是的 — Session token returned by get_sessions.
isWritingRequest bool 否 false Set true to actually remove the session.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/auth/set_session_removed' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'sessionID={{sessionID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$auth_set_session_removed_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.sessionsarray 是的
$.oneOf[0].allOf[1].Payload.sessions[]object 否
$.oneOf[0].allOf[1].Payload.sessions[].sessionIDstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].createdDatestring 是的
$.oneOf[0].allOf[1].Payload.sessions[].createdLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].lastActivityDatestring 是的
$.oneOf[0].allOf[1].Payload.sessions[].lastActivityLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].ipstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].citystring 是的
$.oneOf[0].allOf[1].Payload.sessions[].countrystring 是的
$.oneOf[0].allOf[1].Payload.sessions[].locationLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].deviceLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].browserLabelstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].agentstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].lastOriginstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].releaseVersionstring 是的
$.oneOf[0].allOf[1].Payload.sessions[].buildModestring 是的
$.oneOf[0].allOf[1].Payload.sessions[].clientTypestring 是的
$.oneOf[0].allOf[1].Payload.sessions[].isCurrentboolean 是的
$.oneOf[0].allOf[1].Payload.sessions[].isAlternativePortalSessionboolean 是的
$.oneOf[0].allOf[1].Payload.currentSession 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].sessionIDstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].createdDatestring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].createdLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].lastActivityDatestring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].lastActivityLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].ipstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].citystring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].countrystring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].locationLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].deviceLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].browserLabelstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].agentstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].lastOriginstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].releaseVersionstring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].buildModestring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].clientTypestring 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].isCurrentboolean 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[0].isAlternativePortalSessionboolean 是的
$.oneOf[0].allOf[1].Payload.currentSession.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.otherSessionsarray 是的
$.oneOf[0].allOf[1].Payload.otherSessions[]object 否
$.oneOf[0].allOf[1].Payload.otherSessions[].sessionIDstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].createdDatestring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].createdLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].lastActivityDatestring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].lastActivityLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].ipstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].citystring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].countrystring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].locationLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].deviceLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].browserLabelstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].agentstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].lastOriginstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].releaseVersionstring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].buildModestring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].clientTypestring 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].isCurrentboolean 是的
$.oneOf[0].allOf[1].Payload.otherSessions[].isAlternativePortalSessionboolean 是的
$.oneOf[0].allOf[1].Payload.currentSessionIDstring 是的
$.oneOf[0].allOf[1].Payload.otherSessionCountinteger 是的
$.oneOf[0].allOf[1].Payload.signedOutboolean 是的
$.oneOf[0].allOf[1].Payload.redirectUrlstring 是的
$.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 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/auth/set_session_removed",
    "RequestUserAlias": "example-user",
    "Payload": {
        "sessions": [],
        "currentSession": {
            "sessionID": "synthetic-example",
            "createdDate": "synthetic-example",
            "createdLabel": "synthetic-example",
            "lastActivityDate": "synthetic-example",
            "lastActivityLabel": "synthetic-example",
            "ip": "synthetic-example",
            "city": "synthetic-example",
            "country": "synthetic-example",
            "locationLabel": "synthetic-example",
            "deviceLabel": "synthetic-example",
            "browserLabel": "synthetic-example",
            "agent": "synthetic-example",
            "lastOrigin": "synthetic-example",
            "releaseVersion": "synthetic-example",
            "buildMode": "synthetic-example",
            "clientType": "synthetic-example",
            "isCurrent": false,
            "isAlternativePortalSession": false
        },
        "otherSessions": [],
        "currentSessionID": "synthetic-example",
        "otherSessionCount": 0,
        "signedOut": false,
        "redirectUrl": "synthetic-example"
    }
}
机器可读的端点文档