Skip to content

Common Data Structure

To reduce documentation effort and ensure consistency of public data, the same sections of the API documentation are written as data structures on this page.

  • Empty array use []
  • Empty object use null
  • like/dislike/follow/block The count parameter, if null, means the backend is not public, if public, it is a numeric value.

Account Info

json
{
    "aid": "String / Account ID",
    "countryCode": "Number / International Area Code of the Phone",
    "purePhone": "String / Encrypted Phone Number",
    "phone": "String / Encrypted Phone Number with International Area Code",
    "email": "String / Encrypted Email",
    "hasPassword": "Boolean / Account Has Password",
    "verifyStatus": "Boolean / Verified Identity",
    "verifyRealName": "String / Encrypted Real Name",
    "verifyGender": "Number / Gender 1.Unknown 2.Male 3.Female",
    "verifyCertType": "String / Certificate Type: idcard, passport, driving, business",
    "verifyCertNumber": "String / Encrypted Certificate Number",
    "verifyIdentityType": "Number / Verification Type 1.Unknown 2.Individual 3.Enterprise",
    "verifyDateTime": "String / Verification Time",
    "registerDateTime": "String / Account Registration Time",
    "status": "Boolean / Account Status",
    "waitDelete": "Boolean / Pending Deletion",
    "waitDeleteDateTime": "String / Scheduled Deletion Time",
    "connects": [
        {
            "connectPlatformId": "Number / Connected Platform Number",
            "connectName": "String / Connected Platform Name",
            "connected": "Boolean / is connected",
            "service": "String / Connect Plugin Service",
            "username": "String / Connected Platform Username",
            "nickname": "String / Connected Platform Nickname",
            "avatar": "String / Connected Platform Avatar",
            "status": "Boolean / Connected Platform Validity"
        }
    ],
    "wallet": {
        "status": "Boolean / Wallet Validity",
        "hasPassword": "Boolean / Wallet Has Password",
        "currencyCode": "String / Currency Code, e.g. USD",
        "currencyName": "String / Custom Currency Name",
        "currencyUnit": "String / Custom Currency Unit Name",
        "currencyPrecision": "Number / Currency Precision",
        "balance": "String / Wallet Balance",
        "freezeAmount": "String / Unavailable Amount",
        "bankName": "String / Bank Name",
        "swiftCode": "String / SWIFT Code",
        "bankAddress": "String / Bank Address",
        "bankAccount": "String / Encrypted Bank Account",
        "bankStatus": "Boolean / Bank Verification Status"
    },
    "users": [
        {
            // Common Data Structure -> User Info
        }
    ],
    "interaction": {
        "userName": "String / Custom User Identity Name",
        "userUidName": "String / Custom User ID Name",
        "userUsernameName": "String / Custom Username Name",
        "userNicknameName": "String / Custom User Nickname Name",
        "userRoleName": "String / Custom User Role Name",
        "userBioName": "String / Custom User Introduction Name",
        "followSetting": "Boolean / Allow Follow",
        "followName": "String / Custom Follow Action Name",
        "likeSetting": "Boolean / Allow Like",
        "likeName": "String / Custom Like Action Name",
        "dislikeSetting": "Boolean / Allow Dislike",
        "dislikeName": "String / Custom Dislike Action Name",
        "blockSetting": "Boolean / Allow Block",
        "blockName": "String / Custom Block Action Name",
        "publishPostName": "String / Custom Publish Post Name",
        "publishCommentName": "String / Custom Publish Comment Name"
    }
}

User Info

json
{
    "fsid": "String / User identifier ID, uid or username",
    "uid": "Number / User ID",
    "username": "String / Username",
    "url": "String / User homepage URL",
    "nickname": "String / User nickname",
    "avatar": "String / Avatar image",
    "decorate": "String / Avatar decoration",
    "banner": "String / Banner image",
    "gender": "Number / Gender 1. Unknown 2. Male 3. Female",
    "birthday": "String / Birthday",
    "bio": "String / Bio",
    "bioHtml": "String / Bio in HTML format",
    "location": "String / Location",
    "conversationLimit": "Number / Conversation settings, 1. Allow all users 2. Only allow users I follow 3. Users I follow and verified users 4. No users allowed",
    "commentLimit": "Number / Comment settings, 1. Allow all users 2. Only allow users I follow 3. Users I follow and verified users 4. No users allowed",
    "verifiedStatus": "Boolean / Verified status",
    "verifiedIcon": "String / Custom verified icon",
    "verifiedDesc": "String / Verification description",
    "verifiedDateTime": "String / Verification date and time",
    "expired": "Boolean / Whether the user is expired, always false in public mode",
    "expiryDateTime": "String / User expiry date and time",
    "lastPublishPost": "String / Last post publishing time",
    "lastPublishComment": "String / Last comment time",
    "lastEditUsername": "String / Last username edit time",
    "lastEditNickname": "String / Last nickname edit time",
    "registerDate": "String / Registration date",
    "hasPassword": "Boolean / Has password",
    "rankState": "Number / Rank status",
    "status": "Boolean / User status",
    "waitDelete": "Boolean / Waiting for deletion",
    "waitDeleteDateTime": "String / Scheduled deletion time",
    "nicknameColor": "String / Main role - Nickname color",
    "rid": "Number / Main role - Role ID",
    "roleName": "String / Main role - Role name",
    "roleNameDisplay": "Boolean / Main role - Display role name",
    "roleIcon": "String / Main role - Role icon URL",
    "roleIconDisplay": "Boolean / Main role - Display role icon",
    "roleExpiryDateTime": "String / Main role - Role expiry date",
    "roleRankState": "Number / Rank status",
    "rolePermissions": {
        // Data Table: roles->permissions
        // Role permissions converted to Object format
    },
    "roleStatus": "Boolean / Main role status",
    "stats": {
        "likeUserCount": "Number / Total users they liked",
        "likeGroupCount": "Number / Total groups they liked",
        "likeHashtagCount": "Number / Total hashtags they liked",
        "likePostCount": "Number / Total posts they liked",
        "likeCommentCount": "Number / Total comments they liked",
        "dislikeUserCount": "Number / Total users they disliked",
        "dislikeGroupCount": "Number / Total groups they disliked",
        "dislikeHashtagCount": "Number / Total hashtags they disliked",
        "dislikePostCount": "Number / Total posts they disliked",
        "dislikeCommentCount": "Number / Total comments they disliked",
        "followUserCount": "Number / Total users they followed",
        "followGroupCount": "Number / Total groups they followed",
        "followHashtagCount": "Number / Total hashtags they followed (bookmarked)",
        "followPostCount": "Number / Total posts they followed (bookmarked)",
        "followCommentCount": "Number / Total comments they followed (bookmarked)",
        "blockUserCount": "Number / Total users they blocked (blacklisted)",
        "blockGroupCount": "Number / Total groups they blocked (not interested)",
        "blockHashtagCount": "Number / Total hashtags they blocked (not interested)",
        "blockPostCount": "Number / Total posts they blocked (not interested)",
        "blockCommentCount": "Number / Total comments they blocked (not interested)",
        "likeMeCount": "Number / Total people who liked them",
        "dislikeMeCount": "Number / Total people who disliked them",
        "followMeCount": "Number / Total people who followed them (follower count)",
        "blockMeCount": "Number / Total people who blocked (blacklisted) them",
        "postPublishCount": "Number / Total posts they published",
        "postDigestCount": "Number / Total digest posts they published",
        "postLikeCount": "Number / Total likes on their posts",
        "postDislikeCount": "Number / Total dislikes on their posts",
        "postFollowCount": "Number / Total follows on their posts",
        "postBlockCount": "Number / Total blocks on their posts",
        "commentPublishCount": "Number / Total comments they published",
        "commentDigestCount": "Number / Total digest comments they published",
        "commentLikeCount": "Number / Total likes on their comments",
        "commentDislikeCount": "Number / Total dislikes on their comments",
        "commentFollowCount": "Number / Total follows on their comments",
        "commentBlockCount": "Number / Total blocks on their comments",
        "extcredits1": "Number / Custom score",
        "extcredits1State": "Number / State 1. Not enabled 2. Private 3. Public",
        "extcredits1Name": "String / Name",
        "extcredits1Unit": "String / Unit",
        "extcredits2": "Number / Custom score",
        "extcredits2State": "Number / State 1. Not enabled 2. Private 3. Public",
        "extcredits2Name": "String / Name",
        "extcredits2Unit": "String / Unit",
        "extcredits3": "Number / Custom score",
        "extcredits3State": "Number / State 1. Not enabled 2. Private 3. Public",
        "extcredits3Name": "String / Name",
        "extcredits3Unit": "String / Unit",
        "extcredits4": "Number / Custom score",
        "extcredits4State": "Number / State 1. Not enabled 2. Private 3. Public",
        "extcredits4Name": "String / Name",
        "extcredits4Unit": "String / Unit",
        "extcredits5": "Number / Custom score",
        "extcredits5State": "Number / State 1. Not enabled 2. Private 3. Public",
        "extcredits5Name": "String / Name",
        "extcredits5Unit": "String / Unit",
    },
    "archives": [
        // Common Data Structure -> Extend Archive Info
    ],
    "operations": {
        // Common Data Structure -> Extend Operation Info
    },
    "extends": {
        // Common Data Structure -> Extend Content Info
    },
    "roles": [
        {
            "rid": "Number / Role ID",
            "isMain": "Boolean / Whether it is the main role",
            "nicknameColor": "String / Nickname color",
            "name": "String / Role name",
            "nameDisplay": "Boolean / Whether to display the role name",
            "icon": "String / Role icon URL",
            "iconDisplay": "Boolean / Whether to display the role icon",
            "status": "Boolean / Whether the role is valid"
        }
    ],
    "interaction": {
        "userName": "String / Custom user identity name",
        "userUidName": "String / Custom user ID name",
        "userUsernameName": "String / Custom username name",
        "userNicknameName": "String / Custom user nickname name",
        "userRoleName": "String / Custom user role name",
        "userBioName": "String / Custom user introduction name",
        "likeSetting": "Boolean / Whether to allow like",
        "likeName": "String / Custom like action name",
        "dislikeSetting": "Boolean / Whether to allow dislike",
        "dislikeName": "String / Custom dislike action name",
        "followSetting": "Boolean / Whether to allow follow",
        "followName": "String / Custom follow action name",
        "blockSetting": "Boolean / Whether to allow block",
        "blockName": "String / Custom block action name",
        "publishPostName": "String / Custom publish post name",
        "publishCommentName": "String / Custom publish comment name",
        "likeStatus": "Boolean / Like Status",
        "dislikeStatus": "Boolean / Dislike Status",
        "followStatus": "Boolean / Follow Status",
        "followMeStatus": "Boolean / Whether he is following me",
        "followNote": "String / My note on following him",
        "blockStatus": "Boolean / Block Status",
        "blockMeStatus": "Boolean / Whether he has blocked me",
        "blockNote": "String / My note on blocking him"
    },
    "conversation": {
        "status": "Boolean / Whether I can send him a private message",
        "code": "Number / Error code when not allowed",
        "message": "String / Error description when not allowed"
    }
}

Group Info

json
{
    "gid": "String / Group ID",
    "url": "String / Group detail page URL",
    "type": "Number / Group type 1.Group category 2.Group 3.Subgroup, group within group",
    "gname": "String / Group name",
    "description": "String / Group introduction",
    "cover": "String / Group cover image",
    "banner": "String / Group banner image",
    "recommend": "Boolean / Whether it is a recommended group",
    "mode": "Number / Group mode 1.Public 2.Non-public",
    "modeEndAfter": "Number / After non-public mode expires 1.No restrictions 2.All group content is invisible 3.Content before expiration is visible, new content is not visible",
    "find": "Number / Whether it can be discovered (whether it is displayed) 1.Discoverable 2.Not discoverable",
    "followType": "Number / Follow method 1.Native method 2.Plugin method 3.close",
    "followUrl": "String / Follow method 2 specific, follow plugin page URL",
    "parentGid": "String / Parent group ID",
    "category": {
        "gid": "String / Parent group ID",
        "gname": "String / Parent group name",
        "description": "String / Parent group introduction",
        "cover": "String / Parent group cover image",
        "banner": "String / Parent group banner image"
    },
    "subgroupCount": "Number / Total number of subgroup",
    "likeCount": "Number / Total number of likes",
    "dislikeCount": "Number / Total number of dislikes",
    "followCount": "Number / Total number of follows",
    "blockCount": "Number / Total number of blocks",
    "postCount": "Number / Total number of posts",
    "postDigestCount": "Number / Total number of digest posts",
    "commentCount": "Number / Total number of comments",
    "commentDigestCount": "Number / Total number of digest comments",
    "permissions": {
        // Custom group configuration parameters
        // Data Table: groups->permissions
    },
    "createdDatetime": "String / Group creation datetime",
    "archives": [
        // Common Data Structure -> Extend Archive Info
    ],
    "operations": {
        // Common Data Structure -> Extend Operation Info
    },
    "extends": {
        // Common Data Structure -> Extend Content Info
    },
    "creator": {
        // Common Data Structure -> User Info
    },
    "canViewContent": "Boolean / Whether the user has permission to view content",
    "publishRule": {
        "allowPost": "Boolean / Whether the user has permission to post",
        "subGroupPost": "Boolean / Whether posts can only be published to subgroups",
        "reviewPost": "Boolean / Whether posts need to be reviewed",
        "allowComment": "Boolean / Whether the user has permission to comment",
        "reviewComment": "Boolean / Whether comments need to be reviewed"
    },
    "contentMeta": {
        "post": [
            {
                "fskey": "String / Plugin Fskey",
                "name": "String / Name",
                "description": "String / Description",
                "code": "String / Code",
                "formElement": "String / HTML Form Element",
                "elementType": "String / Form Element Type",
                "elementOptions": "Array / Option Type Configuration Values",
                "isMultiple": "Boolean / Whether multiple selection is allowed for select, email, file, etc.",
                "isRequired": "Boolean / Whether required",
                "fileType": "Number / 1.Image 2.Video 3.Audio 4.Document", // Used when elementType is file
                "fileAccept": "String / Supported file extensions, e.g., .jpg, .png", // Used when elementType is file
                "fileExt": "String / Supported file extensions, e.g., jpg, png", // Used when elementType is file
                "inputPattern": "String / Custom Regular Expression",
                "inputMax": "Number / Maximum Value",
                "inputMin": "Number / Minimum Value",
                "inputMaxlength": "Number / Maximum Length",
                "inputMinlength": "Number / Minimum Length",
                "inputSize": "Number / Size",
                "inputStep": "Number / Step",
                "valueType": "String / Data Value Type"
            }
        ],
        "comment": [
            {
                "fskey": "String / Plugin Fskey",
                "name": "String / Name",
                "description": "String / Description",
                "code": "String / Code",
                "formElement": "String / HTML Form Element",
                "elementType": "String / Form Element Type",
                "elementOptions": "Array / Option Type Configuration Values",
                "isMultiple": "Boolean / Whether multiple selection is allowed for select, email, file, etc.",
                "isRequired": "Boolean / Whether required",
                "fileType": "Number / 1.Image 2.Video 3.Audio 4.Document", // Used when elementType is file
                "fileAccept": "String / Supported file extensions, e.g., .jpg, .png", // Used when elementType is file
                "fileExt": "String / Supported file extensions, e.g., jpg, png", // Used when elementType is file
                "inputPattern": "String / Custom Regular Expression",
                "inputMax": "Number / Maximum Value",
                "inputMin": "Number / Minimum Value",
                "inputMaxlength": "Number / Maximum Length",
                "inputMinlength": "Number / Minimum Length",
                "inputSize": "Number / Size",
                "inputStep": "Number / Step",
                "valueType": "String / Data Value Type"
            }
        ],
    },
    "admins": [
        {
            // Group admin list
            // Common Data Structure -> User Info
        }
    ],
    "interaction": {
        "groupName": "String / Custom Group Name",
        "likeSetting": "Boolean / Whether like is allowed",
        "likeName": "String / Custom Like Action Name",
        "dislikeSetting": "Boolean / Whether dislike is allowed",
        "dislikeName": "String / Custom Dislike Action Name",
        "followSetting": "Boolean / Whether follow is allowed",
        "followName": "String / Custom Follow Action Name",
        "blockSetting": "Boolean / Whether block is allowed",
        "blockName": "String / Custom Block Action Name",
        "publishPostName": "String / Custom Publish Post Name",
        "publishCommentName": "String / Custom Publish Comment Name",
        "likeStatus": "Boolean / Like Status",
        "dislikeStatus": "Boolean / Dislike Status",
        "followStatus": "Boolean / Follow Status",
        "followNote": "String / My Note for Following This Group",
        "followExpired": "Boolean / Whether expired, always false for public groups",
        "followExpiryDateTime": "String / Expiry Date Time",
        "blockStatus": "Boolean / Block Status",
        "blockNote": "String / My Note for Blocking This Group"
    }
}

Hashtag Info

json
{
    "hid": "String / Topic ID",
    "url": "String / Topic Detail Page URL",
    "hname": "String / Topic Name",
    "cover": "String / Topic Cover Image",
    "description": "String / Topic Description",
    "likeCount": "Number / Total Like Count",
    "dislikeCount": "Number / Total Dislike Count",
    "followCount": "Number / Total Follow Count",
    "blockCount": "Number / Total Block Count",
    "postCount": "Number / Total Post Count",
    "postDigestCount": "Number / Total Digest Post Count",
    "commentCount": "Number / Total Comment Count",
    "commentDigestCount": "Number / Total Digest Comment Count",
    "createdDatetime": "String / Topic Creation Datetime",
    "archives": [
        // Common Data Structure -> Extend Archive Info
    ],
    "operations": {
        // Common Data Structure -> Extend Operation Info
    },
    "extends": {
        // Common Data Structure -> Extend Content Info
    },
    "interaction": {
        "hashtagName": "String / Custom Topic Name",
        "likeSetting": "Boolean / Whether like is allowed",
        "likeName": "String / Custom Like Action Name",
        "dislikeSetting": "Boolean / Whether dislike is allowed",
        "dislikeName": "String / Custom Dislike Action Name",
        "followSetting": "Boolean / Whether follow is allowed",
        "followName": "String / Custom Follow Action Name",
        "blockSetting": "Boolean / Whether block is allowed",
        "blockName": "String / Custom Block Action Name",
        "publishPostName": "String / Custom Publish Post Name",
        "publishCommentName": "String / Custom Publish Comment Name",
        "likeStatus": "Boolean / Like Status",
        "dislikeStatus": "Boolean / Dislike Status",
        "followStatus": "Boolean / Follow Status",
        "followNote": "String / My Note for Following This Topic",
        "blockStatus": "Boolean / Block Status",
        "blockNote": "String / My Note for Blocking This Topic"
    }
}

Post Info

json
{
    "pid": "String / Post ID",
    "url": "String / Post Detail Page URL",
    "title": "String / Post Title",
    "content": "String / Post Content or Summary",
    "contentLength": "Number / Total Content Length",
    "langTag": "String / Content Language Tag",
    "writingDirection": "String / Content Writing Direction",
    "isBrief": "Boolean / Whether it is a summary",
    "isMarkdown": "Boolean / Whether it is in MD format",
    "isAnonymous": "Boolean / Whether anonymous",
    "stickyState": "Number / Sticky status 1.No 2.Group Sticky 3.Global Sticky",
    "digestState": "Number / Digest status 1.No 2.General Digest 3.Premium Digest",
    "viewCount": "Number / Total View Count",
    "likeCount": "Number / Total Like Count",
    "dislikeCount": "Number / Total Dislike Count",
    "followCount": "Number / Total Follow Count",
    "blockCount": "Number / Total Block Count",
    "commentCount": "Number / Total Comment Count",
    "commentDigestCount": "Number / Total Digest Comments Count",
    "commentLikeCount": "Number / Total Comment Like Count",
    "commentDislikeCount": "Number / Total Comment Dislike Count",
    "commentFollowCount": "Number / Total Comment Follow Count",
    "commentBlockCount": "Number / Total Comment Block Count",
    "postCount": "Number / Total Related Posts Count, the number of other people quoting it",
    "createdDatetime": "String / Post Publish Time",
    "createdTimeAgo": "String / Human-readable Post Publish Time",
    "editedDatetime": "String / Post Last Edit Time",
    "editedTimeAgo": "String / Human-readable Post Last Edit Time",
    "editedCount": "Number / Edit Count",
    "latestCommentDatetime": "String / Latest Comment Time",
    "latestCommentTimeAgo": "String / Human-readable Latest Comment Time",
    "rankState": "Number / Rank State",
    "status": "Boolean / Post Status",
    "readConfig": {
        "isReadLocked": "Boolean / Whether Authorization is Required",
        "previewPercentage": "Number / Content Display Percentage When Unauthorized",
        "buttonName": "String / Button Text When Unauthorized",
        "buttonUrl": "String / URL to Handle Authorization",
    },
    "affiliatedUserConfig": {
        "hasUserList": "Boolean / Whether there is a Related User List",
        "userListName": "String / User List Name",
        "userListUrl": "String / URL to View User List",
        "userListCount": "Number / User List Count",
    },
    "moreJson": {
        // Data Table: posts->more_json
        // The following keys are known
        "ipLocation": "String / Author IP Location Name",
        "deviceName": "String / Author Device Name"
    },
    "location": {
        "isLbs": "Boolean / Whether there is location information",
        "mapId": "Number / Latitude and Longitude Map ID",
        "latitude": "String / Latitude",
        "longitude": "String / Longitude",
        "scale": "String / Map Scale",
        "continent": "String / Continent Name",
        "continentCode": "String / Continent Code",
        "country": "String / Country Name",
        "countryCode": "String / Country Code",
        "region": "String / Province Name",
        "regionCode": "String / Province Code",
        "city": "String / City Name",
        "cityCode": "String / City Code",
        "district": "String / District Name",
        "address": "String / Address",
        "zip": "String / Postal Code",
        "poi": "String / POI Information",
        "poiId": "String / POI ID",
        "distance": "Number / Distance between the post location and me",
        "unit": "String / Unit of distance from me, km or mi",
        "encode": "String / Base64 and URL encoded location parameter string"
    },
    "isCommentHidden": "Boolean / Whether to hide all comments",
    "isCommentDisabled": "Boolean / Whether comments are disabled",
    "isCommentPrivate": "Boolean / Whether the comment is private (visible only to the comment author and post author)",
    "archives": [
        // Common Data Structure -> Extend Archive Info
    ],
    "operations": {
        // Common Data Structure -> Extend Operation Info
    },
    "extends": {
        // Common Data Structure -> Extend Content Info
    },
    "files": {
        "images": [
            {
                // Common Data Structure -> File Info
            }
        ],
        "videos": [
            {
                // Common Data Structure -> File Info
            }
        ],
        "audios": [
            {
                // Common Data Structure -> File Info
            }
        ],
        "documents": [
            {
                // Common Data Structure -> File Info
            }
        ]
    },
    "group": {
        // The group to which the item belongs can be null.
        // Common Data Structure -> Group Info
    },
    "hashtags": [
        {
            // Post Related Topics
            // Common Data Structure -> Hashtag Info
        }
    ],
    "author": {
        // Post author
        // Common Data Structure -> User Info
    },
    "isMultiLevelQuote": "Boolean / Whether there are multiple levels of reference, and whether quoted posts are also referenced at the previous level.",
    "quotedPost": {
        // Posts quoted by the current post
        // Common Data Structure -> Post Info
    },
    "previewLikeUsers": [
        {
            // Common Data Structure -> User Info
        }
    ],
    "previewComments": [
        {
            // Common Data Structure -> Comment Info
        }
    ],
    "manages": [
        // Post Management Extension
        // Common Data Structure -> Extend Function Info
    ],
    "editControls": {
        "isMe": "Boolean / Whether I am the author",
        "canDelete": "Boolean / Whether deletion is allowed",
        "canEdit": "Boolean / Whether editing is allowed",
        "isPluginEditor": "Boolean / Whether it's a plugin editor",
        "editorUrl": "String / Plugin editor access URL"
    },
    "interaction": {
        "postName": "String / Custom name for the post",
        "likeSetting": "Boolean / Whether 'like' is allowed",
        "likeName": "String / Custom name for the 'like' action",
        "dislikeSetting": "Boolean / Whether 'dislike' is allowed",
        "dislikeName": "String / Custom name for the 'dislike' action",
        "followSetting": "Boolean / Whether 'follow' is allowed",
        "followName": "String / Custom name for the 'follow' action",
        "blockSetting": "Boolean / Whether 'block' is allowed",
        "blockName": "String / Custom name for the 'block' action",
        "publishPostName": "String / Custom name for publishing a post",
        "publishCommentName": "String / Custom name for publishing a comment",
        "likeStatus": "Boolean / Like Status",
        "dislikeStatus": "Boolean / Dislike Status",
        "followStatus": "Boolean / Follow Status",
        "followNote": "String / My follow note for this post",
        "blockStatus": "Boolean / Block Status",
        "blockNote": "String / My block note for this post"
    },
    "followType": "String / From which type of follow"
    // followType=null: none
    // followType=user: followed user
    // followType=group: followed group
    // followType=hashtag: followed hashtag
    // followType==digest: premium digest
}

Comment Info

json
{
    "cid": "String / Comment ID",
    "url": "String / Comment details page URL",
    "content": "String / Comment content or summary",
    "contentLength": "Number / Total content length",
    "langTag": "String / Content language tag",
    "writingDirection": "String / Content writing direction",
    "isBrief": "Boolean / Whether it's a summary",
    "isMarkdown": "Boolean / Whether it's in MD format",
    "isAnonymous": "Boolean / Whether it's anonymous",
    "isSticky": "Boolean / Whether it's sticky",
    "digestState": "Number / Digest state 1: No, 2: General Digest, 3: Premium Digest",
    "viewCount": "Number / Total View Count",
    "likeCount": "Number / Total number of likes",
    "dislikeCount": "Number / Total number of dislikes",
    "followCount": "Number / Total number of follows",
    "blockCount": "Number / Total number of blocks",
    "commentCount": "Number / Total number of child comments",
    "commentDigestCount": "Number / Total number of digests in child comments",
    "commentLikeCount": "Number / Total number of likes on child comments",
    "commentDislikeCount": "Number / Total number of dislikes on child comments",
    "commentFollowCount": "Number / Total number of follows on child comments",
    "commentBlockCount": "Number / Total number of blocks on child comments",
    "createdDatetime": "String / Comment creation time",
    "createdTimeAgo": "String / Human-friendly comment creation time",
    "editedDatetime": "String / Comment last edit time",
    "editedTimeAgo": "String / Human-friendly comment last edit time",
    "editedCount": "Number / Number of edits",
    "latestCommentDatetime": "String / Latest child comment time",
    "latestCommentTimeAgo": "String / Human-friendly latest child comment time",
    "rankState": "Number / Rank State",
    "status": "Boolean / Comment Status",
    "moreJson": {
        // Data Table: comments->more_json
        // The following keys are known
        "ipLocation": "String / Author IP Location Name",
        "deviceName": "String / Author Device Name"
    },
    "location": {
        "isLbs": "Boolean / Whether there is location information",
        "mapId": "Number / Latitude and Longitude Map ID",
        "latitude": "String / Latitude",
        "longitude": "String / Longitude",
        "scale": "String / Map Scale",
        "continent": "String / Continent Name",
        "continentCode": "String / Continent Code",
        "country": "String / Country Name",
        "countryCode": "String / Country Code",
        "region": "String / Province Name",
        "regionCode": "String / Province Code",
        "city": "String / City Name",
        "cityCode": "String / City Code",
        "district": "String / District Name",
        "address": "String / Address",
        "zip": "String / Postal Code",
        "poi": "String / POI Information",
        "poiId": "String / POI ID",
        "distance": "Number / Distance between the post location and me",
        "unit": "String / Unit of distance from me, km or mi",
        "encode": "String / Base64 and URL encoded location parameter string"
    },
    "isCommentPrivate": "Boolean / Whether the comment is private (visible only to the comment author and post author)",
    "archives": [
        // Common Data Structure -> Extend Archive Info
    ],
    "operations": {
        // Common Data Structure -> Extend Operation Info
    },
    "extends": {
        // Common Data Structure -> Extend Content Info
    },
    "files": {
        "images": [
            {
                // Common Data Structure -> File Info
            }
        ],
        "videos": [
            {
                // Common Data Structure -> File Info
            }
        ],
        "audios": [
            {
                // Common Data Structure -> File Info
            }
        ],
        "documents": [
            {
                // Common Data Structure -> File Info
            }
        ]
    },
    "hashtags": [
        {
            // Comment Related Topics
            // Common Data Structure -> Hashtag Info
        }
    ],
    "author": {
        // Comment author
        // Common Data Structure -> User Info
        "isPostAuthor": "Boolean / Is the author of the post"
    },
    "subComments": [
        {
            // Sub-Commons Preview
            // Common Data Structure -> Comment Info
        }
    ],
    "extendButton": {
        "status": "Boolean / Whether to display the extend button",
        "type": "String / Use default or active button",
        "default": {
            "name": "String / Button name",
            "style": "String / Button style (primary, secondary, success, danger, warning, info)",
            "url": "String / Button URL"
        },
        "active": {
            "name": "String / Button name",
            "style": "String / Button style (primary, secondary, success, danger, warning, info)",
            "url": "String / Button URL"
        }
    },
    "manages": [
        // Common Management Extension
        // Common Data Structure -> Extend Function Info
    ],
    "editControls": {
        "isMe": "Boolean / Whether I am the author",
        "canDelete": "Boolean / Whether deletion is allowed",
        "canEdit": "Boolean / Whether editing is allowed",
        "isPluginEditor": "Boolean / Whether it's a plugin editor",
        "editorUrl": "String / Plugin editor access URL"
    },
    "interaction": {
        "commentName": "String / Custom comment name",
        "likeSetting": "Boolean / Whether liking is allowed",
        "likeName": "String / Custom like action name",
        "dislikeSetting": "Boolean / Whether disliking is allowed",
        "dislikeName": "String / Custom dislike action name",
        "followSetting": "Boolean / Whether following is allowed",
        "followName": "String / Custom follow action name",
        "blockSetting": "Boolean / Whether blocking is allowed",
        "blockName": "String / Custom block action name",
        "publishPostName": "String / Custom publish post name",
        "publishCommentName": "String / Custom publish comment name",
        "likeStatus": "Boolean / Like status",
        "dislikeStatus": "Boolean / Dislike status",
        "followStatus": "Boolean / Follow status",
        "followNote": "String / My follow note on this comment",
        "blockStatus": "Boolean / Block status",
        "blockNote": "String / My block note on this comment",
        "postAuthorLikeStatus": "Boolean / Whether the post author liked this comment"
    },
    "replyToPost": {
        // Information about the post this comment belongs to,
        // if it's a sub-comment list, only the pid parameter is available
        // Common Data Structure -> Post Info
    },
    "replyToComment": {
        // The parent comment of the current comment
        // Common Data Structure -> Comment Info
    },
    "followType": "String / From which type of follow"
    // followType=null: none
    // followType=user: followed user
    // followType=group: followed group
    // followType=hashtag: followed hashtag
    // followType==digest: premium digest
}

Post Log Info

json
{
    "id": "Number / Log ID",
    "pid": "String / Parent post ID",
    "quotedPid": "String / Quoted post ID",
    "isPluginEditor": "Boolean / Is plugin editor",
    "editorFskey": "String / Editor plugin Fskey",
    "editorUrl": "String / Editor access URL",
    "group": {
        // Belongs to group
        // Common Data Structure -> Group Info
    },
    "title": "String / Post title",
    "content": "String / Post content or brief",
    "contentLength": "Number / Total content length",
    "isBrief": "Boolean / Is brief",
    "isMarkdown": "Boolean / Is MD format",
    "isAnonymous": "Boolean / Is anonymous",
    "isCommentDisabled": "Boolean / Whether comments are disabled",
    "isCommentPrivate": "Boolean / Whether the comment is private (visible only to the comment author and post author)",
    "mapJson": {
        "mapId": "Number / Latitude and longitude map number",
        "latitude": "String / Latitude",
        "longitude": "String / Longitude",
        "scale": "String / Map scale",
        "continent": "String / Continent name",
        "continentCode": "String / Continent code",
        "country": "String / Country name",
        "countryCode": "String / Country code",
        "region": "String / Region name",
        "regionCode": "String / Region code",
        "city": "String / City name",
        "cityCode": "String / City code",
        "district": "String / District name",
        "address": "String / Address",
        "zip": "String / Zip code",
        "poi": "String / POI information",
        "poiId": "String / POI ID"
    },
    "readJson": {
        "isReadLocked": "Boolean / Is permission configuration restricted",
        "previewPercentage": "Number / Pre-read percentage when unauthorized",
        "pluginUrl": "String / Configuration plugin URL",
        "pluginFskey": "String / Configuration plugin fskey",
        "defaultLangBtnName": "String / Button text when unauthorized",
        "btnName": [
            // Button text when unauthorized, multilingual configuration
        ],
        "permissions": {
            "users": [
                {
                    // Pre-authorized users
                    // Common Data Structure -> User Info
                }
            ],
            "roles": [
                // Pre-authorized roles
                {
                    "rid": "Number / Role ID",
                    "nicknameColor": "String / Nickname color",
                    "name": "String / Role name",
                    "nameDisplay": "Boolean / Is role name displayed",
                    "icon": "String / Role icon URL",
                    "iconDisplay": "Boolean / Is role icon displayed",
                    "status": "Boolean / Is role valid"
                }
            ]
        },
    },
    "userListJson": {
        "isUserList": "Boolean / Is there a related user list",
        "defaultLangUserListName": "String / User list name",
        "userListName": [
            // User list name, multilingual configuration
        ],
        "pluginUrl": "String / Configuration plugin URL",
        "pluginFskey": "String / Configuration plugin fskey",
    },
    "commentBtnJson": {
        "isCommentBtn": "Boolean / Is there a button for comments",
        "defaultLangBtnName": "String / Button text",
        "btnName": [
            // Button text, multilingual configuration
        ],
        "btnStyle": "String / Button style",
        "pluginUrl": "String / Configuration plugin URL",
        "pluginFskey": "String / Configuration plugin fskey",
    },
    "state": "Number / Status",
    "reason": "String / Rejection reason during review",
    "author": {
        // Common Data Structure -> User Info
    },
    "files": {
        "images": [
            {
                // Common Data Structure -> File Info
            }
        ],
        "videos": [
            {
                // Common Data Structure -> File Info
            }
        ],
        "audios": [
            {
                // Common Data Structure -> File Info
            }
        ],
        "documents": [
            {
                // Common Data Structure -> File Info
            }
        ]
    },
    "archives": [
        // Common Data Structure -> Extend Archive Info
    ],
    "operations": {
        // Common Data Structure -> Extend Operation Info
    },
    "extends": {
        // Common Data Structure -> Extend Content Info
    }
}

Comment Log Info

json
{
    "id": "Number / Log ID",
    "cid": "String / Belongs to comment ID",
    "pid": "String / Commented post ID",
    "parentCid": "String / Replied comment ID",
    "isPluginEditor": "Boolean / Is plugin editor",
    "editorFskey": "String / Editor plugin Fskey",
    "editorUrl": "String / Editor access URL",
    "content": "String / Post content or brief",
    "contentLength": "Number / Total content length",
    "isBrief": "Boolean / Is brief",
    "isMarkdown": "Boolean / Is MD format",
    "isAnonymous": "Boolean / Is anonymous",
    "mapJson": {
        "mapId": "Number / Latitude and longitude map number",
        "latitude": "String / Latitude",
        "longitude": "String / Longitude",
        "scale": "String / Map scale",
        "continent": "String / Continent name",
        "continentCode": "String / Continent code",
        "country": "String / Country name",
        "countryCode": "String / Country code",
        "region": "String / Region name",
        "regionCode": "String / Region code",
        "city": "String / City name",
        "cityCode": "String / City code",
        "district": "String / District name",
        "address": "String / Address",
        "zip": "String / Zip code",
        "poi": "String / POI information",
        "poiId": "String / POI ID"
    },
    "state": "Number / Status",
    "reason": "String / Rejection reason during review",
    "author": {
        // Common Data Structure -> User Info
    },
    "files": {
        "images": [
            {
                // Common Data Structure -> File Info
            }
        ],
        "videos": [
            {
                // Common Data Structure -> File Info
            }
        ],
        "audios": [
            {
                // Common Data Structure -> File Info
            }
        ],
        "documents": [
            {
                // Common Data Structure -> File Info
            }
        ]
    },
    "archives": [
        // Common Data Structure -> Extend Archive Info
    ],
    "operations": {
        // Common Data Structure -> Extend Operation Info
    },
    "extends": {
        // Common Data Structure -> Extend Content Info
    }
}

File Info

json
{
    "fid": "String / File fid",
    "type": "Number / File type number 1.Image 2.Video 3.Audio 4.Document",
    "status": "Boolean / Is valid",
    "substitutionImageUrl": "String / Invalid file prompt image",
    "sensitive": "Boolean / Is sensitive file",
    "name": "String / Complete original name",
    "mime": "String / File MIME type",
    "extension": "String / File extension",
    "size": "String / Size",
    "md5": "String / File md5 encoding",
    "sha": "String / File sha encoding",
    "shaType": "String / File sha type",
    "moreJson": {
        // files->more_json
    },
    // Image Parameters
    "imageWidth": "Number / Image width",
    "imageHeight": "Number / Image height",
    "imageLong": "Boolean / Is long image",
    "imageConfigUrl": "String / Configuration purpose image URL",
    "imageRatioUrl": "String / Proportional thumbnail URL",
    "imageSquareUrl": "String / Square thumbnail URL",
    "imageBigUrl": "String / Compressed original image URL",
    // Video Parameters
    "videoTime": "Number / Video duration",
    "videoPosterUrl": "String / Video cover image URL",
    "videoUrl": "String / Video URL",
    // Audio Parameters
    "audioTime": "Number / Audio duration",
    "audioUrl": "String / Audio URL",
    // Document Parameters
    "documentPreviewUrl": "String / Document preview URL",
    // Audio and Video Parameter
    "transcodingState": "Number / Audio and video transcoding status 1.Pending 2.Transcoding 3.Transcoding complete 4.Transcoding failed"
}

Extend Archive Info

json
{
    "code": "String / Identifier code",
    "name": "String / Name",
    "description": "String / Description",
    "value": "String / Parameter value",
}

Extend Operation Info

json
{
    "customizes": [
        {
            "code": "String / Identifier code",
            "style": "String / Style primary, secondary, success, danger, warning, info",
            "name": "String / Name",
            "description": "String / Description",
            "imageUrl": "String / Image",
            "imageActiveUrl": "String / Two-state image",
            "displayType": "Number / Display type 1.Basic 2.Function (plugin)",
            "pluginUrl": "String / Dedicated for display type 2, plugin access URL",
        }
    ],
    "buttonIcons": [
        {
            // Same as above
        }
    ],
    "diversifyImages": [
        {
            // Same as above
        }
    ],
    "tips": [
        {
            // Same as above
        }
    ]
}

Extend Content Info

json
{
    "textBox": [
        {
            "eid": "String / Extension content ID",
            "textContent": "String / Text box specific - content",
            "textIsMarkdown": "Boolean / Text box specific - Is content MD format",
            "position": "Number / Display position 1.Top 2.Bottom",
            "accessUrl": "String / Access URL",
            "moreJson": {
                // Custom information
            },
        }
    ],
    "infoBox": [
        {
            "eid": "String / Extension content ID",
            "infoBoxType": "Number / Info box specific - Type number",
            "infoBoxTypeString": "String / Info box specific - Type string",
            "cover": "String / Info box specific - Cover image",
            "title": "String / Info box specific - Title",
            "titleColor": "String / Info box specific - Title color",
            "descPrimary": "String / Info box specific - Primary sub-information",
            "descPrimaryColor": "String / Info box specific - Primary sub-information color",
            "descSecondary": "String / Info box specific - Secondary sub-information",
            "descSecondaryColor": "String / Info box specific - Secondary sub-information color",
            "buttonName": "String / Info box specific - Button name",
            "buttonColor": "String / Info box specific - Button name color",
            "position": "Number / Display position 1.Top 2.Bottom",
            "accessUrl": "String / Access URL",
            "moreJson": {
                // Custom information
            },
        }
    ],
    "interactionBox": [
        {
            //
        }
    ],
}

Extend Function Info

json
{
    "fskey": "String / Plugin Fskey",
    "name": "String / Extension name",
    "icon": "String / Extension icon URL",
    "url": "String / Extension access URL",
    "badgeType": "Number / Extension prompt type null.None 1.Red dot 2.Text 3.Number",
    "badgeValue": "String / Extension prompt value, text or number",
    "editorToolbar": "Boolean / Editor specific, whether to display in toolbar",
    "editorNumber": "Number / Editor specific, available number",
    "pluginRating": {
        "postByAll": [
            {
                "id": "Number / List interface pluginRatingId parameter purpose value",
                "title": "String / Parameter title",
                "description": "String / Parameter description"
            }
        ],
        "postByFollow": [
            {
                "id": "Number / List interface pluginRatingId parameter purpose value",
                "title": "String / Parameter title",
                "description": "String / Parameter description"
            }
        ],
        "postByNearby": [
            {
                "id": "Number / List interface pluginRatingId parameter purpose value",
                "title": "String / Parameter title",
                "description": "String / Parameter description"
            }
        ]
    }
}

Released under the Apache-2.0 License