当前在线  

/v1/infractions/

Private user-infraction reporting, staff adjudication and bounty administration.
GET

/v1/infractions/get_bounty_estimate

#
Estimate the maximum USD bounty for a signed-in reporter using the current type, reported user's penalty permission and reporter's bounty rate. Assumes a full contribution share; staff decides the actual outcome and may award no bounty. Does not create a report or financial entry.

参数

名称类型必填默认值描述
typeID int 是的 — Active infraction type.
userAlias string 是的 — Reported user's alias. Self-reporting is not allowed.
incidentDate string 否 "" Incident date in YYYY-MM-DD format; empty uses today for the estimate until a date is selected.
subjectTransactionSource string 否 "" Required for transaction-based types: transaction or custom_article.
subjectTransactionID int 否 0 Required canonical transaction ID for transaction-based types.
请求示例(cURL)
curl --get \
  'https://cn.appointmenttrader.com/v1/infractions/get_bounty_estimate' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'typeID={{typeID}}' \
  --data-urlencode 'userAlias={{userAlias}}' \
  --data-urlencode 'incidentDate={{incidentDate}}' \
  --data-urlencode 'subjectTransactionSource={{subjectTransactionSource}}' \
  --data-urlencode 'subjectTransactionID={{subjectTransactionID}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$infractions_get_bounty_estimate_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.amountCentsinteger 是的
$.oneOf[0].allOf[1].Payload.currency = "USD" 是的
$.oneOf[0].allOf[1].Payload.formattedAmountstring 是的
$.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/infractions/get_bounty_estimate",
    "RequestUserAlias": "example-user",
    "Payload": {
        "amountCents": 0,
        "currency": "USD",
        "formattedAmount": "synthetic-example"
    }
}
机器可读的端点文档
GET

/v1/infractions/get_my_reports

#
Get only reports submitted by the acting user, including when the caller is staff. Reports against the caller are excluded. Merged reports retain their private chat and use the current case status and classification.

参数

名称类型必填默认值描述
start int 否 0 Non-negative offset; negative values use zero.
请求示例(cURL)
curl --get \
  'https://cn.appointmenttrader.com/v1/infractions/get_my_reports' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'start={{start}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$infractions_get_my_reports_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.reportsarray 是的
$.oneOf[0].allOf[1].Payload.reports[]object 否
$.oneOf[0].allOf[1].Payload.reports[].reportIDinteger 是的
$.oneOf[0].allOf[1].Payload.reports[].caseIDinteger 是的
$.oneOf[0].allOf[1].Payload.reports[].reportedUserIDinteger 是的
$.oneOf[0].allOf[1].Payload.reports[].typeNamestring 是的
$.oneOf[0].allOf[1].Payload.reports[].createdDatestring 是的
$.oneOf[0].allOf[1].Payload.reports[].statusstring ["Open","Confirmed","Warning","Rejected","Merged"] 是的
$.oneOf[0].allOf[1].Payload.reports[].chatIDinteger 是的
$.oneOf[0].allOf[1].Payload.startinteger 是的
$.oneOf[0].allOf[1].Payload.hasMoreboolean 是的
$.oneOf[0].allOf[1].Payload.nextStart 是的
$.oneOf[0].allOf[1].Payload.nextStart.anyOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.nextStart.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 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/infractions/get_my_reports",
    "RequestUserAlias": "example-user",
    "Payload": {
        "reports": [],
        "start": 0,
        "hasMore": false,
        "nextStart": 0
    }
}
机器可读的端点文档
GET

/v1/infractions/get_options

#
Get reportable types or staff configuration, numeric permissions and audit history.

参数

名称类型必填默认值描述
admin bool 否 false Include inactive types and administration data; requires RefundAppointments.
请求示例(cURL)
curl --get \
  'https://cn.appointmenttrader.com/v1/infractions/get_options' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'admin={{admin}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$infractions_get_options_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.typesarray 是的
$.oneOf[0].allOf[1].Payload.types[]object 否
$.oneOf[0].allOf[1].Payload.types[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.types[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.types[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.types[].Slugstring 是的
$.oneOf[0].allOf[1].Payload.types[].Statusstring ["Draft","Active","Retired"] 是的
$.oneOf[0].allOf[1].Payload.types[].SortOrderDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.types[].SortOrder.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.types[].SortOrder.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.types[].CurrentVersionID 是的
$.oneOf[0].allOf[1].Payload.types[].CurrentVersionID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.types[].CurrentVersionID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.types[].CurrentVersionID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.types[].CurrentVersionID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.types[].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.types[].VersionNumberDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.types[].VersionNumber.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.types[].VersionNumber.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.types[].configobject 是的
$.oneOf[0].allOf[1].Payload.types[].config.namestring 是的
$.oneOf[0].allOf[1].Payload.types[].config.descriptionstring 是的
$.oneOf[0].allOf[1].Payload.types[].config.evidenceGuidancestring 是的
$.oneOf[0].allOf[1].Payload.types[].config.subjectstring ["seller","transaction","listing"] 是的
$.oneOf[0].allOf[1].Payload.types[].config.referenceRequired 是的
$.oneOf[0].allOf[1].Payload.types[].config.referenceRequired.oneOf[0]boolean 是的
$.oneOf[0].allOf[1].Payload.types[].config.referenceRequired.oneOf[1]integer [0,1] 是的
$.oneOf[0].allOf[1].Payload.types[].config.penaltyModestring ["warning","fixed","annual_sales","transaction_amount"] 是的
$.oneOf[0].allOf[1].Payload.types[].config.penaltyPermissionstring 是的
$.oneOf[0].allOf[1].Payload.types[].config.bountyEnabled 是的
$.oneOf[0].allOf[1].Payload.types[].config.bountyEnabled.oneOf[0]boolean 是的
$.oneOf[0].allOf[1].Payload.types[].config.bountyEnabled.oneOf[1]integer [0,1] 是的
$.oneOf[0].allOf[1].Payload.types[].config.bountyBasisPointsinteger 是的
$.oneOf[0].allOf[1].Payload.types[].config.buyerPosingAllowed 是的
$.oneOf[0].allOf[1].Payload.types[].config.buyerPosingAllowed.oneOf[0]boolean 是的
$.oneOf[0].allOf[1].Payload.types[].config.buyerPosingAllowed.oneOf[1]integer [0,1] 是的
$.oneOf[0].allOf[1].Payload.types[].config.translations 是的
$.oneOf[0].allOf[1].Payload.types[].config.translations.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.types[].config.translations.anyOf[0].*object 否
$.oneOf[0].allOf[1].Payload.types[].config.translations.anyOf[0].*.namestring 是的
$.oneOf[0].allOf[1].Payload.types[].config.translations.anyOf[0].*.descriptionstring 是的
$.oneOf[0].allOf[1].Payload.types[].config.translations.anyOf[0].*.evidenceGuidancestring 是的
$.oneOf[0].allOf[1].Payload.types[].config.translations.anyOf[1] = [] 是的
$.oneOf[0].allOf[1].Payload.types[].config.seedKeystring 否
$.oneOf[0].allOf[1].Payload.types[].config.penaltyMultiplier = 3 否
$.oneOf[0].allOf[1].Payload.types[].defaultPenaltyValue 是的
$.oneOf[0].allOf[1].Payload.types[].defaultPenaltyValue.anyOf[0]DatabaseNumber 是的Numeric value; MySQL reads can serialize numbers as numeric strings.
$.oneOf[0].allOf[1].Payload.types[].defaultPenaltyValue.anyOf[0].oneOf[0]number 是的
$.oneOf[0].allOf[1].Payload.types[].defaultPenaltyValue.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.types[].defaultPenaltyValue.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.types[].reporterBountyBasisPointsinteger 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfigobject 否
$.oneOf[0].allOf[1].Payload.types[].rawConfig.namestring 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.descriptionstring 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.evidenceGuidancestring 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.subjectstring ["seller","transaction","listing"] 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.referenceRequired 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.referenceRequired.oneOf[0]boolean 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.referenceRequired.oneOf[1]integer [0,1] 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.penaltyModestring ["warning","fixed","annual_sales","transaction_amount"] 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.penaltyPermissionstring 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.bountyEnabled 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.bountyEnabled.oneOf[0]boolean 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.bountyEnabled.oneOf[1]integer [0,1] 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.bountyBasisPointsinteger 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.buyerPosingAllowed 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.buyerPosingAllowed.oneOf[0]boolean 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.buyerPosingAllowed.oneOf[1]integer [0,1] 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.translations 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.translations.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.translations.anyOf[0].*object 否
$.oneOf[0].allOf[1].Payload.types[].rawConfig.translations.anyOf[0].*.namestring 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.translations.anyOf[0].*.descriptionstring 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.translations.anyOf[0].*.evidenceGuidancestring 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.translations.anyOf[1] = [] 是的
$.oneOf[0].allOf[1].Payload.types[].rawConfig.seedKeystring 否
$.oneOf[0].allOf[1].Payload.types[].rawConfig.penaltyMultiplier = 3 否
$.oneOf[0].allOf[1].Payload.permissionsarray 是的
$.oneOf[0].allOf[1].Payload.permissions[]object 否
$.oneOf[0].allOf[1].Payload.permissions[].Namestring 是的
$.oneOf[0].allOf[1].Payload.permissions[].Descriptionstring 是的
$.oneOf[0].allOf[1].Payload.permissions[].DefaultSettingPayloadstring 是的
$.oneOf[0].allOf[1].Payload.overridesarray 是的
$.oneOf[0].allOf[1].Payload.overrides[]object 否
$.oneOf[0].allOf[1].Payload.overrides[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.overrides[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.overrides[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.overrides[].UserIDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.overrides[].UserID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.overrides[].UserID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.overrides[].TypeIDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.overrides[].TypeID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.overrides[].TypeID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.overrides[].BountyBasisPointsDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.overrides[].BountyBasisPoints.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.overrides[].BountyBasisPoints.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.overrides[].UpdatedByUserIDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.overrides[].UpdatedByUserID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.overrides[].UpdatedByUserID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.overrides[].LastUpdateDatestring 是的
$.oneOf[0].allOf[1].Payload.auditarray 是的
$.oneOf[0].allOf[1].Payload.audit[]object 否
$.oneOf[0].allOf[1].Payload.audit[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.audit[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.audit[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.audit[].CaseID = null 是的
$.oneOf[0].allOf[1].Payload.audit[].TypeID 是的
$.oneOf[0].allOf[1].Payload.audit[].TypeID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.audit[].TypeID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.audit[].TypeID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.audit[].TypeID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.audit[].ActorUserIDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.audit[].ActorUserID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.audit[].ActorUserID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.audit[].EventNamestring 是的
$.oneOf[0].allOf[1].Payload.audit[].Payloadstring (application/json) 是的
$.oneOf[0].allOf[1].Payload.audit[].Payload (解码后的 JSON) 是的
$.oneOf[0].allOf[1].Payload.audit[].Payload.oneOf[0]object 是的
$.oneOf[0].allOf[1].Payload.audit[].Payload.oneOf[0].versionIDinteger 是的
$.oneOf[0].allOf[1].Payload.audit[].Payload.oneOf[0].statusstring ["Draft","Active","Retired"] 是的
$.oneOf[0].allOf[1].Payload.audit[].Payload.oneOf[0].sortOrderinteger 是的
$.oneOf[0].allOf[1].Payload.audit[].Payload.oneOf[1]object 是的
$.oneOf[0].allOf[1].Payload.audit[].Payload.oneOf[1].hunterIDinteger 是的
$.oneOf[0].allOf[1].Payload.audit[].Payload.oneOf[1].basisPoints 是的
$.oneOf[0].allOf[1].Payload.audit[].Payload.oneOf[1].basisPoints.anyOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.audit[].Payload.oneOf[1].basisPoints.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.audit[].CreatedDatestring 是的
$.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/infractions/get_options",
    "RequestUserAlias": "example-user",
    "Payload": {
        "types": [],
        "permissions": [],
        "overrides": [],
        "audit": []
    }
}
机器可读的端点文档
GET

/v1/infractions/get_report_context

#
Resolve report context from a listing, participant-owned transaction, accessible chat or reported user. Chat targets use structured context or the sole other participant; ambiguous groups leave the user unselected.

参数

名称类型必填默认值描述
listingID int 否 0 Listing identifier, or zero.
transactionID int 否 0 Transaction identifier, or zero.
chatID int 否 0 Source chat accessible to the reporter, or zero.
userID int 否 0 Reported user to preselect, or zero.
subjectTransactionSource string 否 "" Optional exact transaction source, transaction or custom_article; does not alter the reported user.
subjectTransactionID int 否 0 Canonical transaction ID paired with its source.
请求示例(cURL)
curl --get \
  'https://cn.appointmenttrader.com/v1/infractions/get_report_context' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'listingID={{listingID}}' \
  --data-urlencode 'transactionID={{transactionID}}' \
  --data-urlencode 'chatID={{chatID}}' \
  --data-urlencode 'userID={{userID}}' \
  --data-urlencode 'subjectTransactionSource={{subjectTransactionSource}}' \
  --data-urlencode 'subjectTransactionID={{subjectTransactionID}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$infractions_get_report_context_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].PayloadInfractionReportContext 是的
$.oneOf[0].allOf[1].Payload.oneOf[0]object 是的
$.oneOf[0].allOf[1].Payload.oneOf[0].chatIDinteger 否
$.oneOf[0].allOf[1].Payload.oneOf[0].chatNamestring 否
$.oneOf[0].allOf[1].Payload.oneOf[0].listingID 否
$.oneOf[0].allOf[1].Payload.oneOf[0].listingID.anyOf[0]DatabaseInteger 否Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.oneOf[0].listingID.anyOf[0].oneOf[0]integer 否
$.oneOf[0].allOf[1].Payload.oneOf[0].listingID.anyOf[0].oneOf[1]string 否
$.oneOf[0].allOf[1].Payload.oneOf[0].listingID.anyOf[1]null 否
$.oneOf[0].allOf[1].Payload.oneOf[0].transactionIDDatabaseInteger 否Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.oneOf[0].transactionID.oneOf[0]integer 否
$.oneOf[0].allOf[1].Payload.oneOf[0].transactionID.oneOf[1]string 否
$.oneOf[0].allOf[1].Payload.oneOf[0].sellerIDDatabaseInteger 否Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.oneOf[0].sellerID.oneOf[0]integer 否
$.oneOf[0].allOf[1].Payload.oneOf[0].sellerID.oneOf[1]string 否
$.oneOf[0].allOf[1].Payload.oneOf[0].sellerAliasstring 否
$.oneOf[0].allOf[1].Payload.oneOf[0].subjectTransaction 否
$.oneOf[0].allOf[1].Payload.oneOf[0].subjectTransaction.anyOf[0]object 否
$.oneOf[0].allOf[1].Payload.oneOf[0].subjectTransaction.anyOf[0].sourcestring ["transaction","custom_article"] 是的
$.oneOf[0].allOf[1].Payload.oneOf[0].subjectTransaction.anyOf[0].idinteger 是的
$.oneOf[0].allOf[1].Payload.oneOf[0].subjectTransaction.anyOf[0].amountCentsinteger 是的
$.oneOf[0].allOf[1].Payload.oneOf[0].subjectTransaction.anyOf[0].datestring 是的
$.oneOf[0].allOf[1].Payload.oneOf[0].subjectTransaction.anyOf[0].labelstring 是的
$.oneOf[0].allOf[1].Payload.oneOf[0].subjectTransaction.anyOf[0].statusstring ["PENDING","COMPLETED","RECORDED"] 是的
$.oneOf[0].allOf[1].Payload.oneOf[0].subjectTransaction.anyOf[0].formattedAmountstring 是的
$.oneOf[0].allOf[1].Payload.oneOf[0].subjectTransaction.anyOf[1]null 否
$.oneOf[0].allOf[1].Payload.oneOf[1] = [] 是的
$.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/infractions/get_report_context",
    "RequestUserAlias": "example-user",
    "Payload": []
}
机器可读的端点文档
GET

/v1/infractions/get_report_transactions

#
Resolve an exact transaction reference for a signed-in reporter, regardless of ownership. Staff verifies the connection to the reported user. Only pending/completed marketplace transactions and non-deleted recorded custom articles with valid amounts are returned.

参数

名称类型必填默认值描述
referenceType string 是的 — post_link, bid, appointment, transaction, or custom_article.
referenceID int 否 0 Exact identifier in the selected namespace; positive except for post_link, which uses postLink.
postLink string 否 "" AppointmentTrader post URL or root-relative post path, required for post_link. Resolves the viewable post's stored bid association without fetching the URL. Supports /posts/{id} and the v2 newsfeed postId route.
请求示例(cURL)
curl --get \
  'https://cn.appointmenttrader.com/v1/infractions/get_report_transactions' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'referenceType={{referenceType}}' \
  --data-urlencode 'referenceID={{referenceID}}' \
  --data-urlencode 'postLink={{postLink}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$infractions_get_report_transactions_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.transactionsarray 是的
$.oneOf[0].allOf[1].Payload.transactions[]object 否
$.oneOf[0].allOf[1].Payload.transactions[].sourcestring ["transaction","custom_article"] 是的
$.oneOf[0].allOf[1].Payload.transactions[].idinteger 是的
$.oneOf[0].allOf[1].Payload.transactions[].amountCentsinteger 是的
$.oneOf[0].allOf[1].Payload.transactions[].datestring 是的
$.oneOf[0].allOf[1].Payload.transactions[].labelstring 是的
$.oneOf[0].allOf[1].Payload.transactions[].statusstring ["PENDING","COMPLETED","RECORDED"] 是的
$.oneOf[0].allOf[1].Payload.transactions[].formattedAmountstring 是的
$.oneOf[0].allOf[1].Payload.hasMoreboolean 是的
$.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/infractions/get_report_transactions",
    "RequestUserAlias": "example-user",
    "Payload": {
        "transactions": [],
        "hasMore": false
    }
}
机器可读的端点文档
POST

/v1/infractions/set_report

#
Submit a private infraction report with optional uploaded images, videos or PDFs. Attachments and later evidence-chat uploads are linked to the report and visible only to its reporter and authorized reviewers.

参数

名称类型必填默认值描述
submissionKey string 是的 — Stable unique retry identifier, 16-80 alphanumeric, underscore or hyphen characters.
reportJson string 是的 — JSON containing typeID, userID or userAlias, incidentDate (YYYY-MM-DD), required description, optional legacy evidence text, mediaIDs [owned ATMedia IDs], references [{type: seller|transaction|listing|chat|custom_article,id}], and subjectTransactionSource/subjectTransactionID. Transaction-based types require exactly one canonical source/ID pair at submission; other internal references are optional; staff must verify configured required references before approving an adverse finding. Chat references require the reporter's current access and remain private to the reporter and case reviewers. Legacy sellerID/sellerAlias are accepted when neither canonical user field is supplied.
isWritingRequest bool 否 false Must be true to submit.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/infractions/set_report' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'submissionKey={{submissionKey}}' \
  --data-urlencode 'reportJson={{reportJson}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
参数: reportJson
字段类型必填描述
reportJsonstring (application/json) 是的
reportJsonobject (解码后的 JSON) 是的
reportJson.userIDinteger 否
reportJson.userAliasstring 否
reportJson.sellerIDinteger 否
reportJson.sellerAliasstring 否
reportJson.incidentDatestring 是的
reportJson.descriptionstring 是的
reportJson.evidencestring 否
reportJson.referencesarray 否
reportJson.references[]object 否
reportJson.references[].typestring ["seller","transaction","listing","chat","custom_article"] 是的
reportJson.references[].idinteger 是的
reportJson.mediaIDsarray 否
reportJson.mediaIDs[]DatabaseInteger 否Integer value; legacy MySQL reads may serialize it as a numeric string.
reportJson.mediaIDs[].oneOf[0]integer 否
reportJson.mediaIDs[].oneOf[1]string 否
reportJson.typeIDinteger 是的
reportJson.subjectTransactionSourcestring ["transaction","custom_article"] 否
reportJson.subjectTransactionIDinteger 否
响应字段
字段类型必填描述
$infractions_set_report_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.caseIDinteger 是的
$.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 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/infractions/set_report",
    "RequestUserAlias": "example-user",
    "Payload": {
        "caseID": 0,
        "chatID": 0
    }
}
机器可读的端点文档