当前在线  

/v1/appsv2/

V2 appstore - list, create, configure, and purchase iframe-hosted apps. Distinct from /v1/apps/ (the legacy `\AT\ATApps` dev-platform model for externally-hosted developer apps with private keys). The `appsv2` namespace covers the v2 iframe app shell (\AT\ATAppsV2, /modules/v2/_app_host/), backed by the `ATAppsV2` table for user-created entries plus the static manifests in /config/atv2-apps.php for first-party shells.
GET

/v1/appsv2/get_about_post_candidates

#
Finds public community posts that can be selected as an app's About my app post. Eligibility mirrors the profile/About Me selector.

参数

名称类型必填默认值描述
searchFilter string 否 "" Search text for public top-level posts with image media by title, body, or author alias.
postID int 否 0 Exact ATDiscussionPosts.ID to preview.
pageSize int 否 8 Maximum candidates to return for text search.
ownPostsOnly bool 否 false When true, only return public image-media posts authored by the current API user.
请求示例(cURL)
curl --get \
  'https://cn.appointmenttrader.com/v1/appsv2/get_about_post_candidates' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'searchFilter={{searchFilter}}' \
  --data-urlencode 'postID={{postID}}' \
  --data-urlencode 'pageSize={{pageSize}}' \
  --data-urlencode 'ownPostsOnly={{ownPostsOnly}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$appsv2_get_about_post_candidates_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.Candidatesarray 是的
$.oneOf[0].allOf[1].Payload.Candidates[]object 否
$.oneOf[0].allOf[1].Payload.Candidates[].idinteger 是的
$.oneOf[0].allOf[1].Payload.Candidates[].titlestring 是的
$.oneOf[0].allOf[1].Payload.Candidates[].bodyPreviewstring 是的
$.oneOf[0].allOf[1].Payload.Candidates[].urlstring 是的
$.oneOf[0].allOf[1].Payload.Candidates[].createdDatestring 是的
$.oneOf[0].allOf[1].Payload.Candidates[].authorAboutPostAuthor 是的
$.oneOf[0].allOf[1].Payload.Candidates[].author.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.Candidates[].author.anyOf[0].idinteger 是的
$.oneOf[0].allOf[1].Payload.Candidates[].author.anyOf[0].aliasstring 是的
$.oneOf[0].allOf[1].Payload.Candidates[].author.anyOf[0].avatarEmojistring 是的
$.oneOf[0].allOf[1].Payload.Candidates[].author.anyOf[0].profileUrlstring 是的
$.oneOf[0].allOf[1].Payload.Candidates[].author.anyOf[1]object 是的
$.oneOf[0].allOf[1].Payload.Candidates[].author.anyOf[1].idnull 是的
$.oneOf[0].allOf[1].Payload.Candidates[].author.anyOf[1].aliasnull 是的
$.oneOf[0].allOf[1].Payload.Candidates[].author.anyOf[1].avatarEmojinull 是的
$.oneOf[0].allOf[1].Payload.Candidates[].author.anyOf[1].profileUrlnull 是的
$.oneOf[0].allOf[1].Payload.Candidates[].author.anyOf[1].identityHidden = true 是的
$.oneOf[0].allOf[1].Payload.Candidates[].author.anyOf[1].identityHiddenUntilinteger 是的
$.oneOf[0].allOf[1].Payload.Candidates[].boardobject 是的
$.oneOf[0].allOf[1].Payload.Candidates[].board.idinteger 是的
$.oneOf[0].allOf[1].Payload.Candidates[].board.namestring 是的
$.oneOf[0].allOf[1].Payload.Candidates[].board.slugstring 是的
$.oneOf[0].allOf[1].Payload.Candidates[].board.typestring 是的
$.oneOf[0].allOf[1].Payload.Candidates[].imageMediaCountinteger 是的
$.oneOf[0].allOf[1].Payload.Candidates[].mediaarray 是的
$.oneOf[0].allOf[1].Payload.Candidates[].media[]object 否
$.oneOf[0].allOf[1].Payload.Candidates[].media[].idinteger 是的
$.oneOf[0].allOf[1].Payload.Candidates[].media[].thumbUrlstring 是的
$.oneOf[0].allOf[1].Payload.Candidates[].media[].mediaUrlstring 是的
$.oneOf[0].allOf[1].Payload.Candidates[].media[].mediaTypestring 是的
$.oneOf[0].allOf[1].Payload.Candidates[].media[].widthinteger 是的
$.oneOf[0].allOf[1].Payload.Candidates[].media[].heightinteger 是的
$.oneOf[0].allOf[1].Payload.Candidates[].media[].titlestring 是的
$.oneOf[0].allOf[1].Payload.Candidates[].media[].isImageboolean 是的
$.oneOf[0].allOf[1].Payload.Candidates[].media[].isEmbeddedboolean 是的
$.oneOf[0].allOf[1].Payload.Pageobject 是的
$.oneOf[0].allOf[1].Payload.Page.pageSizeinteger 是的
$.oneOf[0].allOf[1].Payload.Page.ownPostsOnlyinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.Page.requiresImageMedia = 1 是的
$.oneOf[0].allOf[1].Payload.Page.minimumImageMediaCount = 2 是的
$.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/appsv2/get_about_post_candidates",
    "RequestUserAlias": "example-user",
    "Payload": {
        "Candidates": [],
        "Page": {
            "pageSize": 0,
            "ownPostsOnly": 0,
            "requiresImageMedia": 1,
            "minimumImageMediaCount": 2
        }
    }
}
机器可读的端点文档
GET

/v1/appsv2/get_checkout_url

#
Returns an inline custom-article checkout URL for paid app access.

参数

名称类型必填默认值描述
appID int 是的 — ATAppsV2.ID of the paid app.
returnURL string 否 "" Optional same-host URL to return to after checkout.
请求示例(cURL)
curl --get \
  'https://cn.appointmenttrader.com/v1/appsv2/get_checkout_url' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'appID={{appID}}' \
  --data-urlencode 'returnURL={{returnURL}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$appsv2_get_checkout_url_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.checkoutUrlstring 是的
$.oneOf[0].allOf[1].Payload.app 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].idstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].slugstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].namestring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].descriptionstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].iconstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].entryUrlstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].defaultPathstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].contentWidthstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].dbIDinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].ownerUserIDinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].aboutPostIDinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].priceAmountinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].menuarray 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].isUserCreated = true 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].requiredLogin = true 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricingTypestring ["Free","MonthlyUSD","YearlyUSD","MonthlyTraderpoints","YearlyTraderpoints"] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricingobject 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.typestring ["Free","MonthlyUSD","YearlyUSD","MonthlyTraderpoints","YearlyTraderpoints"] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.isPaidinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.periodstring ["free","monthly","yearly"] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.paymentModestring ["free","usd","traderpoints"] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.amountCentsinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.traderpointsAmountinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.labelstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].accessobject 否
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.canAccessinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.isOwnerinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.isFreeinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.hasActiveAccessinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.accessEndDatestring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].selectedForPostinteger [0,1] 否
$.oneOf[0].allOf[1].Payload.app.anyOf[1]array 是的
$.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/appsv2/get_checkout_url",
    "RequestUserAlias": "example-user",
    "Payload": {
        "checkoutUrl": "synthetic-example",
        "app": {
            "id": "synthetic-example",
            "slug": "synthetic-example",
            "name": "synthetic-example",
            "description": "synthetic-example",
            "icon": "synthetic-example",
            "entryUrl": "synthetic-example",
            "defaultPath": "synthetic-example",
            "contentWidth": "synthetic-example",
            "dbID": 0,
            "ownerUserID": 0,
            "aboutPostID": 0,
            "priceAmount": 0,
            "menu": [],
            "isUserCreated": true,
            "requiredLogin": true,
            "pricingType": "Free",
            "pricing": {
                "type": "Free",
                "isPaid": 0,
                "period": "free",
                "paymentMode": "free",
                "amountCents": 0,
                "traderpointsAmount": 0,
                "label": "synthetic-example"
            }
        }
    }
}
机器可读的端点文档
GET

/v1/appsv2/get_list

#
Returns the list of published user-created apps for the appstore. Public-by-design: the appstore is a public browse surface; paid apps only expose storefront metadata here, while app access is enforced by /modules/v2/_app_host/ and \AT\ATAppsV2::ViewerCanAccess().
请求示例(cURL)
curl --get \
  'https://cn.appointmenttrader.com/v1/appsv2/get_list' \
  --data-urlencode 'key={{API_KEY}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$appsv2_get_list_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.appsarray 是的
$.oneOf[0].allOf[1].Payload.apps[]object 否
$.oneOf[0].allOf[1].Payload.apps[].idstring 是的
$.oneOf[0].allOf[1].Payload.apps[].slugstring 是的
$.oneOf[0].allOf[1].Payload.apps[].namestring 是的
$.oneOf[0].allOf[1].Payload.apps[].descriptionstring 是的
$.oneOf[0].allOf[1].Payload.apps[].iconstring 是的
$.oneOf[0].allOf[1].Payload.apps[].entryUrlstring 是的
$.oneOf[0].allOf[1].Payload.apps[].defaultPathstring 是的
$.oneOf[0].allOf[1].Payload.apps[].contentWidthstring 是的
$.oneOf[0].allOf[1].Payload.apps[].dbIDinteger 是的
$.oneOf[0].allOf[1].Payload.apps[].ownerUserIDinteger 是的
$.oneOf[0].allOf[1].Payload.apps[].aboutPostIDinteger 是的
$.oneOf[0].allOf[1].Payload.apps[].priceAmountinteger 是的
$.oneOf[0].allOf[1].Payload.apps[].menuarray 是的
$.oneOf[0].allOf[1].Payload.apps[].isUserCreated = true 是的
$.oneOf[0].allOf[1].Payload.apps[].requiredLogin = true 是的
$.oneOf[0].allOf[1].Payload.apps[].pricingTypestring ["Free","MonthlyUSD","YearlyUSD","MonthlyTraderpoints","YearlyTraderpoints"] 是的
$.oneOf[0].allOf[1].Payload.apps[].pricingobject 是的
$.oneOf[0].allOf[1].Payload.apps[].pricing.typestring ["Free","MonthlyUSD","YearlyUSD","MonthlyTraderpoints","YearlyTraderpoints"] 是的
$.oneOf[0].allOf[1].Payload.apps[].pricing.isPaidinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.apps[].pricing.periodstring ["free","monthly","yearly"] 是的
$.oneOf[0].allOf[1].Payload.apps[].pricing.paymentModestring ["free","usd","traderpoints"] 是的
$.oneOf[0].allOf[1].Payload.apps[].pricing.amountCentsinteger 是的
$.oneOf[0].allOf[1].Payload.apps[].pricing.traderpointsAmountinteger 是的
$.oneOf[0].allOf[1].Payload.apps[].pricing.labelstring 是的
$.oneOf[0].allOf[1].Payload.apps[].accessobject 否
$.oneOf[0].allOf[1].Payload.apps[].access.canAccessinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.apps[].access.isOwnerinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.apps[].access.isFreeinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.apps[].access.hasActiveAccessinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.apps[].access.accessEndDatestring 是的
$.oneOf[0].allOf[1].Payload.apps[].selectedForPostinteger [0,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/appsv2/get_list",
    "RequestUserAlias": "example-user",
    "Payload": {
        "apps": []
    }
}
机器可读的端点文档
GET

/v1/appsv2/get_my_apps

#
Returns apps owned by the current viewer for the App Store setup UI.

参数

名称类型必填默认值描述
aboutPostID int 否 0 Optional post ID used by the newsfeed action to mark which owned apps already use that post.
请求示例(cURL)
curl --get \
  'https://cn.appointmenttrader.com/v1/appsv2/get_my_apps' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'aboutPostID={{aboutPostID}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$appsv2_get_my_apps_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.appsarray 是的
$.oneOf[0].allOf[1].Payload.apps[] 否
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0]object 否
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].idstring 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].slugstring 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].namestring 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].descriptionstring 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].iconstring 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].entryUrlstring 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].defaultPathstring 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].contentWidthstring 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].dbIDinteger 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].ownerUserIDinteger 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].aboutPostIDinteger 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].priceAmountinteger 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].menuarray 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].isUserCreated = true 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].requiredLogin = true 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].pricingTypestring ["Free","MonthlyUSD","YearlyUSD","MonthlyTraderpoints","YearlyTraderpoints"] 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].pricingobject 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].pricing.typestring ["Free","MonthlyUSD","YearlyUSD","MonthlyTraderpoints","YearlyTraderpoints"] 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].pricing.isPaidinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].pricing.periodstring ["free","monthly","yearly"] 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].pricing.paymentModestring ["free","usd","traderpoints"] 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].pricing.amountCentsinteger 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].pricing.traderpointsAmountinteger 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].pricing.labelstring 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].accessobject 否
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].access.canAccessinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].access.isOwnerinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].access.isFreeinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].access.hasActiveAccessinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].access.accessEndDatestring 是的
$.oneOf[0].allOf[1].Payload.apps[].anyOf[0].selectedForPostinteger [0,1] 否
$.oneOf[0].allOf[1].Payload.apps[].anyOf[1]array 否
$.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/appsv2/get_my_apps",
    "RequestUserAlias": "example-user",
    "Payload": {
        "apps": []
    }
}
机器可读的端点文档
POST

/v1/appsv2/set_about_post

#
Sets or clears an app's About my app post.

参数

名称类型必填默认值描述
appID int 是的 — ATAppsV2.ID of an app owned by the current user.
postID int 否 0 Public ATDiscussionPosts.ID with at least two attached images. Pass 0 to clear.
isWritingRequest bool 否 false Set true to actually persist the app.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/appsv2/set_about_post' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'appID={{appID}}' \
  --data-urlencode 'postID={{postID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$appsv2_set_about_post_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.app 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].idstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].slugstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].namestring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].descriptionstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].iconstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].entryUrlstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].defaultPathstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].contentWidthstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].dbIDinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].ownerUserIDinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].aboutPostIDinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].priceAmountinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].menuarray 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].isUserCreated = true 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].requiredLogin = true 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricingTypestring ["Free","MonthlyUSD","YearlyUSD","MonthlyTraderpoints","YearlyTraderpoints"] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricingobject 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.typestring ["Free","MonthlyUSD","YearlyUSD","MonthlyTraderpoints","YearlyTraderpoints"] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.isPaidinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.periodstring ["free","monthly","yearly"] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.paymentModestring ["free","usd","traderpoints"] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.amountCentsinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.traderpointsAmountinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.labelstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].accessobject 否
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.canAccessinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.isOwnerinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.isFreeinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.hasActiveAccessinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.accessEndDatestring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].selectedForPostinteger [0,1] 否
$.oneOf[0].allOf[1].Payload.app.anyOf[1]array 是的
$.oneOf[0].allOf[1].Payload.postIDinteger 是的
$.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/appsv2/set_about_post",
    "RequestUserAlias": "example-user",
    "Payload": {
        "app": {
            "id": "synthetic-example",
            "slug": "synthetic-example",
            "name": "synthetic-example",
            "description": "synthetic-example",
            "icon": "synthetic-example",
            "entryUrl": "synthetic-example",
            "defaultPath": "synthetic-example",
            "contentWidth": "synthetic-example",
            "dbID": 0,
            "ownerUserID": 0,
            "aboutPostID": 0,
            "priceAmount": 0,
            "menu": [],
            "isUserCreated": true,
            "requiredLogin": true,
            "pricingType": "Free",
            "pricing": {
                "type": "Free",
                "isPaid": 0,
                "period": "free",
                "paymentMode": "free",
                "amountCents": 0,
                "traderpointsAmount": 0,
                "label": "synthetic-example"
            }
        },
        "postID": 0
    }
}
机器可读的端点文档
POST

/v1/appsv2/set_create

#
Create a new user-published app row in the v2 appstore.

参数

名称类型必填默认值描述
name string 是的 — Display name shown in the appstore card and the host shell.
slug string 是的 — Lowercase URL slug ([a-z0-9-]+, 2-64 chars).
entry_url string 是的 — Absolute http(s) URL or root-relative path loaded into the sandboxed iframe.
description string 否 "" Optional short description shown on the appstore card.
icon string 否 "" Optional sprite reference (e.g. "i-trending-bars"). Empty string allowed.
pricingType string 否 "Free" One of Free, MonthlyUSD, YearlyUSD, MonthlyTraderpoints, YearlyTraderpoints.
priceAmount int 否 0 Price in USD cents for paid monthly/yearly access.
aboutPostID int 否 0 Optional public post ID with at least two images to use as the About my app post.
isWritingRequest bool 否 false Set true to actually persist the app.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/appsv2/set_create' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'name={{name}}' \
  --data-urlencode 'slug={{slug}}' \
  --data-urlencode 'entry_url={{entry_url}}' \
  --data-urlencode 'description={{description}}' \
  --data-urlencode 'icon={{icon}}' \
  --data-urlencode 'pricingType={{pricingType}}' \
  --data-urlencode 'priceAmount={{priceAmount}}' \
  --data-urlencode 'aboutPostID={{aboutPostID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$appsv2_set_create_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.idinteger 是的
$.oneOf[0].allOf[1].Payload.slugstring 是的
$.oneOf[0].allOf[1].Payload.app 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].idstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].slugstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].namestring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].descriptionstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].iconstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].entryUrlstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].defaultPathstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].contentWidthstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].dbIDinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].ownerUserIDinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].aboutPostIDinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].priceAmountinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].menuarray 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].isUserCreated = true 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].requiredLogin = true 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricingTypestring ["Free","MonthlyUSD","YearlyUSD","MonthlyTraderpoints","YearlyTraderpoints"] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricingobject 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.typestring ["Free","MonthlyUSD","YearlyUSD","MonthlyTraderpoints","YearlyTraderpoints"] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.isPaidinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.periodstring ["free","monthly","yearly"] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.paymentModestring ["free","usd","traderpoints"] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.amountCentsinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.traderpointsAmountinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.labelstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].accessobject 否
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.canAccessinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.isOwnerinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.isFreeinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.hasActiveAccessinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.accessEndDatestring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].selectedForPostinteger [0,1] 否
$.oneOf[0].allOf[1].Payload.app.anyOf[1]array 是的
$.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/appsv2/set_create",
    "RequestUserAlias": "example-user",
    "Payload": {
        "id": 0,
        "slug": "synthetic-example",
        "app": {
            "id": "synthetic-example",
            "slug": "synthetic-example",
            "name": "synthetic-example",
            "description": "synthetic-example",
            "icon": "synthetic-example",
            "entryUrl": "synthetic-example",
            "defaultPath": "synthetic-example",
            "contentWidth": "synthetic-example",
            "dbID": 0,
            "ownerUserID": 0,
            "aboutPostID": 0,
            "priceAmount": 0,
            "menu": [],
            "isUserCreated": true,
            "requiredLogin": true,
            "pricingType": "Free",
            "pricing": {
                "type": "Free",
                "isPaid": 0,
                "period": "free",
                "paymentMode": "free",
                "amountCents": 0,
                "traderpointsAmount": 0,
                "label": "synthetic-example"
            }
        }
    }
}
机器可读的端点文档
POST

/v1/appsv2/set_update

#
Update a user-owned v2 app's storefront setup.

参数

名称类型必填默认值描述
appID int 是的 — ATAppsV2.ID of an app owned by the current user.
name string 是的 — Display name shown in the appstore card and the host shell.
entry_url string 是的 — Absolute http(s) URL or root-relative path loaded into the sandboxed iframe.
description string 否 "" Optional short description shown on the appstore card.
icon string 否 "" Optional sprite reference (e.g. "i-trending-bars"). Empty string allowed.
pricingType string 否 "Free" One of Free, MonthlyUSD, YearlyUSD, MonthlyTraderpoints, YearlyTraderpoints.
priceAmount int 否 0 Price in USD cents for paid monthly/yearly access.
aboutPostID int 否 0 Optional public post ID with at least two images to use as the About my app post.
isWritingRequest bool 否 false Set true to actually persist the app.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/appsv2/set_update' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'appID={{appID}}' \
  --data-urlencode 'name={{name}}' \
  --data-urlencode 'entry_url={{entry_url}}' \
  --data-urlencode 'description={{description}}' \
  --data-urlencode 'icon={{icon}}' \
  --data-urlencode 'pricingType={{pricingType}}' \
  --data-urlencode 'priceAmount={{priceAmount}}' \
  --data-urlencode 'aboutPostID={{aboutPostID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$appsv2_set_update_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.app 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].idstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].slugstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].namestring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].descriptionstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].iconstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].entryUrlstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].defaultPathstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].contentWidthstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].dbIDinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].ownerUserIDinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].aboutPostIDinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].priceAmountinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].menuarray 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].isUserCreated = true 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].requiredLogin = true 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricingTypestring ["Free","MonthlyUSD","YearlyUSD","MonthlyTraderpoints","YearlyTraderpoints"] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricingobject 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.typestring ["Free","MonthlyUSD","YearlyUSD","MonthlyTraderpoints","YearlyTraderpoints"] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.isPaidinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.periodstring ["free","monthly","yearly"] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.paymentModestring ["free","usd","traderpoints"] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.amountCentsinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.traderpointsAmountinteger 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].pricing.labelstring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].accessobject 否
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.canAccessinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.isOwnerinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.isFreeinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.hasActiveAccessinteger [0,1] 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].access.accessEndDatestring 是的
$.oneOf[0].allOf[1].Payload.app.anyOf[0].selectedForPostinteger [0,1] 否
$.oneOf[0].allOf[1].Payload.app.anyOf[1]array 是的
$.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/appsv2/set_update",
    "RequestUserAlias": "example-user",
    "Payload": {
        "app": {
            "id": "synthetic-example",
            "slug": "synthetic-example",
            "name": "synthetic-example",
            "description": "synthetic-example",
            "icon": "synthetic-example",
            "entryUrl": "synthetic-example",
            "defaultPath": "synthetic-example",
            "contentWidth": "synthetic-example",
            "dbID": 0,
            "ownerUserID": 0,
            "aboutPostID": 0,
            "priceAmount": 0,
            "menu": [],
            "isUserCreated": true,
            "requiredLogin": true,
            "pricingType": "Free",
            "pricing": {
                "type": "Free",
                "isPaid": 0,
                "period": "free",
                "paymentMode": "free",
                "amountCents": 0,
                "traderpointsAmount": 0,
                "label": "synthetic-example"
            }
        }
    }
}
机器可读的端点文档