555 lines
18 KiB
Markdown
555 lines
18 KiB
Markdown
|
<details>
|
||
|
<summary>GET /g/s/auid/</summary>
|
||
|
GET an auid for this device
|
||
|
|
||
|
__query strings__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|deviceId|Same as NDCDEVICEID|True|
|
||
|
|
||
|
__headers__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|NDCDEVICEID|The device id generated by the app. See|True|
|
||
|
|NDC-MSG-SIG|Message signature (?) generated by the app|False|
|
||
|
|SMDEVICEID|I don't know, seems to be a non-string hex number|False|
|
||
|
|AUID|The auid (UUIDv4) generated on amino servers for this client, retrieved with GET /g/s/auid|False|
|
||
|
|
||
|
__responses__
|
||
|
|
||
|
- 200 - auid Generated
|
||
|
auid Generated
|
||
|
|
||
|
An auid was generated and returned by the server. It may now be used in request headers
|
||
|
|
||
|
```JSON
|
||
|
{
|
||
|
"auid": "... <UUIDv4>"
|
||
|
}
|
||
|
```
|
||
|
|
||
|
|
||
|
</details>
|
||
|
|
||
|
|
||
|
<details>
|
||
|
<summary>GET /g/s/auth/config-v2/</summary>
|
||
|
GET auth config data (unknown use)
|
||
|
|
||
|
__headers__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|NDCDEVICEID|The device id generated by the app. See|True|
|
||
|
|NDC-MSG-SIG|Message signature (?) generated by the app|False|
|
||
|
|SMDEVICEID|I don't know, seems to be a non-string hex number|False|
|
||
|
|AUID|The auid (UUIDv4) generated on amino servers for this client, retrieved with GET /g/s/auid|False|
|
||
|
|
||
|
__responses__
|
||
|
|
||
|
- 200 - Config Recieved
|
||
|
Config Recieved
|
||
|
|
||
|
Data with an unknown purpose is recieved
|
||
|
|
||
|
```JSON
|
||
|
{
|
||
|
"mobileSignUpProviderList": [
|
||
|
8
|
||
|
]
|
||
|
}
|
||
|
```
|
||
|
|
||
|
|
||
|
</details>
|
||
|
|
||
|
|
||
|
<details>
|
||
|
<summary>POST /g/s/client-config/</summary>
|
||
|
POST device information for configuration. Likely related to analytics / telemetry
|
||
|
|
||
|
__headers__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|NDCDEVICEID|The device id generated by the app. See|True|
|
||
|
|NDC-MSG-SIG|Message signature (?) generated by the app|False|
|
||
|
|SMDEVICEID|I don't know, seems to be a non-string hex number|False|
|
||
|
|AUID|The auid (UUIDv4) generated on amino servers for this client, retrieved with GET /g/s/auid|False|
|
||
|
|
||
|
```JSON
|
||
|
{
|
||
|
"packageName": "com.narvii.amino.master <android app package?>",
|
||
|
"versionCode": "00000 <likely app version, also sent in user-agent header next to package name>",
|
||
|
"androidAPI": "21 <Android api version. This example is 21, or android 5.0>",
|
||
|
"model": "SCH-R530U <Phone device model. This example is a US Cellular Galaxy S3>",
|
||
|
"device": "d2usc <Another way to identify the phone model>",
|
||
|
"timestamp": "1579580222209 <request time in ms>"
|
||
|
}
|
||
|
```
|
||
|
|
||
|
__responses__
|
||
|
|
||
|
- 200 - Client Configured
|
||
|
Client Configured
|
||
|
|
||
|
The client config was accepted
|
||
|
|
||
|
```JSON
|
||
|
{
|
||
|
"clientConfig": {
|
||
|
"<->": "<Unknown, was empty in api calls made by my client>"
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
|
||
|
</details>
|
||
|
|
||
|
|
||
|
<details>
|
||
|
<summary>GET /g/s/client-config/appearance-settings</summary>
|
||
|
GET the app appearance settings
|
||
|
|
||
|
__headers__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|NDCDEVICEID|The device id generated by the app. See|True|
|
||
|
|NDC-MSG-SIG|Message signature (?) generated by the app|False|
|
||
|
|SMDEVICEID|I don't know, seems to be a non-string hex number|False|
|
||
|
|AUID|The auid (UUIDv4) generated on amino servers for this client, retrieved with GET /g/s/auid|False|
|
||
|
|
||
|
__responses__
|
||
|
|
||
|
- 200 - Appearance Settings
|
||
|
Appearance Settings
|
||
|
|
||
|
The appearance objects to use was retrieved
|
||
|
|
||
|
```JSON
|
||
|
{
|
||
|
"backgroundMediaList": [
|
||
|
[
|
||
|
"100 <Media, always 100?>",
|
||
|
"... <URL to an image>",
|
||
|
"null <unknown purpose>"
|
||
|
]
|
||
|
]
|
||
|
}
|
||
|
```
|
||
|
|
||
|
|
||
|
</details>
|
||
|
|
||
|
|
||
|
<details>
|
||
|
<summary>GET /g/s/client-config/content-language-settings/</summary>
|
||
|
GET the app content language settings
|
||
|
|
||
|
__headers__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|NDCDEVICEID|The device id generated by the app. See|True|
|
||
|
|NDC-MSG-SIG|Message signature (?) generated by the app|False|
|
||
|
|SMDEVICEID|I don't know, seems to be a non-string hex number|False|
|
||
|
|AUID|The auid (UUIDv4) generated on amino servers for this client, retrieved with GET /g/s/auid|False|
|
||
|
|
||
|
__responses__
|
||
|
|
||
|
- 200 - Language Settings
|
||
|
Language Settings
|
||
|
|
||
|
The language settings were retrieved
|
||
|
|
||
|
```JSON
|
||
|
{
|
||
|
"contentLanguageSettings": {
|
||
|
"language": "en <The language preference>"
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
|
||
|
</details>
|
||
|
|
||
|
|
||
|
<details>
|
||
|
<summary>GET /g/s/community/configuration/</summary>
|
||
|
GET community config info
|
||
|
|
||
|
__headers__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|NDCDEVICEID|The device id generated by the app. See|True|
|
||
|
|NDC-MSG-SIG|Message signature (?) generated by the app|False|
|
||
|
|SMDEVICEID|I don't know, seems to be a non-string hex number|False|
|
||
|
|AUID|The auid (UUIDv4) generated on amino servers for this client, retrieved with GET /g/s/auid|False|
|
||
|
|
||
|
__responses__
|
||
|
|
||
|
- 200 - Community Config
|
||
|
Community Config
|
||
|
|
||
|
Community config was retrieved
|
||
|
|
||
|
```JSON
|
||
|
{
|
||
|
"configuration": {
|
||
|
"appearance": {},
|
||
|
"page": {},
|
||
|
"module": {
|
||
|
"post": {
|
||
|
"enabled": true,
|
||
|
"postType": {
|
||
|
"screeningRoom": {
|
||
|
"privilege": {
|
||
|
"type": "5 <Unknown use>",
|
||
|
"minLevel": "100 <Unknown use>"
|
||
|
},
|
||
|
"enabled": true
|
||
|
},
|
||
|
"story": "{...} <Same privilege format",
|
||
|
"liveMode": "{...} <Same privilege format",
|
||
|
"publicChatRooms": "{...} <Same privilege format"
|
||
|
}
|
||
|
},
|
||
|
"chat": {
|
||
|
"enabled": true,
|
||
|
"spamProtectionEnabled": true,
|
||
|
"avChat": {
|
||
|
"screeningRoomEnabled": true,
|
||
|
"audioEnabled": "true <Probably in-chat voice>",
|
||
|
"videoEnabled": "false <Probably in-chat video>",
|
||
|
"audio2Enabled": "true <Probably in-chat voice>"
|
||
|
},
|
||
|
"publicChat": "{...} <Same privilege format>"
|
||
|
}
|
||
|
},
|
||
|
"general": {
|
||
|
"videoUploadPolicy": 1
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
|
||
|
</details>
|
||
|
|
||
|
|
||
|
<details>
|
||
|
<summary>POST /g/s/device/</summary>
|
||
|
POST a device configuration
|
||
|
|
||
|
__headers__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|NDCDEVICEID|The device id generated by the app. See|True|
|
||
|
|NDC-MSG-SIG|Message signature (?) generated by the app|False|
|
||
|
|SMDEVICEID|I don't know, seems to be a non-string hex number|False|
|
||
|
|AUID|The auid (UUIDv4) generated on amino servers for this client, retrieved with GET /g/s/auid|False|
|
||
|
|
||
|
```JSON
|
||
|
{
|
||
|
"deviceID": "... <device id generated by the app>",
|
||
|
"bundleID": "com.narvii.amino.master <android app package?>",
|
||
|
"clientType": "100 <always 100>",
|
||
|
"timezone": "-300 <timezone number code>",
|
||
|
"systemPushEnabled": "true <true by default on new install>",
|
||
|
"locale": "en_US <locale string>",
|
||
|
"deviceToken": "... <device token generated by the app>",
|
||
|
"deviceTokenType": "1 <always 1?>",
|
||
|
"timestamp": "1579580530965 <request time in ms>"
|
||
|
}
|
||
|
```
|
||
|
|
||
|
__responses__
|
||
|
|
||
|
- 200 - Device Configured
|
||
|
Device Configured
|
||
|
|
||
|
The device config was accepted
|
||
|
|
||
|
```JSON
|
||
|
{
|
||
|
"devOptions": "null <?>"
|
||
|
}
|
||
|
```
|
||
|
|
||
|
|
||
|
</details>
|
||
|
|
||
|
|
||
|
<details>
|
||
|
<summary>GET /g/s/eventlog/profile/</summary>
|
||
|
GET the eventlog for the current profile (appears to be device profile by auid, not necessarily amino profile)
|
||
|
|
||
|
__query strings__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|language|language code used, example being `en`. Affects experiments|False|
|
||
|
|
||
|
__headers__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|NDCDEVICEID|The device id generated by the app. See|True|
|
||
|
|NDC-MSG-SIG|Message signature (?) generated by the app|False|
|
||
|
|SMDEVICEID|I don't know, seems to be a non-string hex number|False|
|
||
|
|AUID|The auid (UUIDv4) generated on amino servers for this client, retrieved with GET /g/s/auid|False|
|
||
|
|
||
|
__responses__
|
||
|
|
||
|
- 200 - Eventlog Retrieved
|
||
|
Eventlog Retrieved
|
||
|
|
||
|
The eventlog for this device profile. This data appears to be related to AB experiments
|
||
|
|
||
|
```JSON
|
||
|
{
|
||
|
"globalStrategyInfo": "{...} <json string literal with unknown meaning>",
|
||
|
"uid": "None <Unknown. Probably another UUIDv4>",
|
||
|
"contentLanguage": "en <Primary app language>",
|
||
|
"signUpStrategy": "2 <Signup method. Variants unknown>",
|
||
|
"landingOption": "4 <Landing option. Variants unknown>",
|
||
|
"interestPickerStyle": "3 <Style for the interest picker. Variants unknown>",
|
||
|
"auid": "... <This device's auid>",
|
||
|
"needTriggerInterestPicker": "true <unknown meaning>",
|
||
|
"participatedExperiments": {
|
||
|
"userVectorCommunitySimilarityChannel": 1,
|
||
|
"retentionSrPush": 2,
|
||
|
"landingOptionExp": 2,
|
||
|
"communitySearchExp": 2,
|
||
|
"communitySearchRerankExp": 1,
|
||
|
"<->": " <various AB experiment values>"
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
|
||
|
</details>
|
||
|
|
||
|
|
||
|
<details>
|
||
|
<summary>GET /g/s/home/discover/content-modules/</summary>
|
||
|
GET content modules for homepage discovery. This includes community info, stories, ads, ect
|
||
|
|
||
|
__query strings__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|v|Likely a version number, seems to always be 1. No visible change when using arbitrary values.|False|
|
||
|
|
||
|
__headers__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|NDCDEVICEID|The device id generated by the app. See|True|
|
||
|
|NDC-MSG-SIG|Message signature (?) generated by the app|False|
|
||
|
|SMDEVICEID|I don't know, seems to be a non-string hex number|False|
|
||
|
|AUID|The auid (UUIDv4) generated on amino servers for this client, retrieved with GET /g/s/auid|False|
|
||
|
|
||
|
__responses__
|
||
|
|
||
|
- 200 - Content Modules
|
||
|
Content Modules
|
||
|
|
||
|
discovery content modules were retrieved
|
||
|
|
||
|
```JSON
|
||
|
{
|
||
|
"contentModuleList": [
|
||
|
{
|
||
|
"-": "community cards",
|
||
|
"contentObjectType": "16 <Unknown, probably content type id>",
|
||
|
"contentPoolId": "en <Unknown, probably content language>",
|
||
|
"contentVariety": "1 <Unknown, appears to be related to dataUrl path>",
|
||
|
"createdTime": "2019-12-31T08:38:32Z <Likely content created at>",
|
||
|
"customizable": "false <Amino stuff seems to be false, ads seem true>",
|
||
|
"dataUrl": "/topic/0/feed/community?... <URL to this content, see GET /g/s/topic/0/feed...>",
|
||
|
"displayName": "Recommended Communities <Name to put on the header of this section",
|
||
|
"ext": {
|
||
|
"<->": " <Ads seem to have field `adUnitId`>"
|
||
|
},
|
||
|
"extensions": "null <Always seems to be null>",
|
||
|
"isVirtual": "false <Only discover topics button seems to be true>",
|
||
|
"moduleId": "... <UUIDv4 of this item>",
|
||
|
"moduleName": "Recommended Communities <Name of this module>",
|
||
|
"moduleType": "RecommendedCommunities <Type of this module. Related to contentObjectType?>",
|
||
|
"status": "0 <Appears to always be zero>",
|
||
|
"style": "GeneralCommunityCard <Style of this item>",
|
||
|
"topicLocked": "false <Unknown use of `locked` in this context",
|
||
|
"uid": "... <UUIDv4 of... something>",
|
||
|
"userRemovable": "false <Unknown, probably related to frontpage stuff being not remuvable>",
|
||
|
"visibility": "1 <Likely a visibility bool>"
|
||
|
},
|
||
|
{
|
||
|
"-": "an ad",
|
||
|
"contentObjectType": "151 <Unknown, probably content type id>",
|
||
|
"contentPoolId": " <Unknown, probably content language>",
|
||
|
"contentVariety": "0 <Unknown, appears to be related to dataUrl path>",
|
||
|
"createdTime": "2019-12-31T08:38:32Z <Likely content created at>",
|
||
|
"customizable": "true <Amino stuff seems to be false, ads seem true>",
|
||
|
"dataUrl": "/topic/0/feed/banner-ads?... <URL to this content, see GET /g/s/topic/0/feed...>",
|
||
|
"displayName": "Recommended Communities <Name to put on the header of this section",
|
||
|
"ext": {
|
||
|
"adUnitId": "703300 <ID to look up this ad. Used in GET `dataUrl`"
|
||
|
},
|
||
|
"extensions": "null <Always seems to be null>",
|
||
|
"isVirtual": "false <Only discover topics button seems to be true>",
|
||
|
"moduleId": "... <UUIDv4 of this item>",
|
||
|
"moduleName": "Little Red series for all EN users <Name of this module>",
|
||
|
"moduleType": "CustomizedBannerAds <Type of this module. Related to contentObjectType>",
|
||
|
"status": "0 <Appears to always be zero>",
|
||
|
"style": "BannerSizeMedium <Style of this item>",
|
||
|
"topicLocked": "false <Unknown use of `locked` in this context",
|
||
|
"uid": "... <UUIDv4 of... something>",
|
||
|
"userRemovable": "false <Unknown, probably related to frontpage stuff being not remuvable>",
|
||
|
"visibility": "1 <Likely a visibility bool>"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
```
|
||
|
|
||
|
|
||
|
</details>
|
||
|
|
||
|
|
||
|
<details>
|
||
|
<summary>GET /g/s/topic/:variant/feed/banner-ads/</summary>
|
||
|
GET a piece of media for a topic. Usually seems to be used in homepage exploration
|
||
|
|
||
|
__url arguments__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|variant|The variant of this topic item. Nonzero values seem to have no effect|False|
|
||
|
|
||
|
__query strings__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|adUnitId|The id of this add, which is a number|True|
|
||
|
|size|Unknown. Seems to make no difference|False|
|
||
|
|pagingType|Unknown. Values that are not `t` seem to return no items in itemList (which otherwise has one item)|False|
|
||
|
|moduleID|Unknown. Seems to be a UUIDv4 by default, changing this (even to invalid UUIDv4 strings) seems to have no effect|False|
|
||
|
|
||
|
__headers__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|NDCDEVICEID|The device id generated by the app. See|True|
|
||
|
|NDC-MSG-SIG|Message signature (?) generated by the app|False|
|
||
|
|SMDEVICEID|I don't know, seems to be a non-string hex number|False|
|
||
|
|AUID|The auid (UUIDv4) generated on amino servers for this client, retrieved with GET /g/s/auid|False|
|
||
|
|
||
|
__responses__
|
||
|
|
||
|
- 200 - Banner Ads Retrieved
|
||
|
Banner Ads Retrieved
|
||
|
|
||
|
The banner ads matching this id were retrieved
|
||
|
|
||
|
```JSON
|
||
|
{
|
||
|
"allItemCount": "1 <Total returnable item count>",
|
||
|
"itemList": [
|
||
|
{
|
||
|
"adCampaignId": "803326 <Likely related to ad grouping by campaign, use unknown>",
|
||
|
"deepLink": "ndc://topic/1390058 <Likely a hard link to this item, root URL unknown>",
|
||
|
"imageUrl": "... <A URL to the image used, seems to be background images?>",
|
||
|
"objectId": "803326 <Seems to be the same as adCampaignId>",
|
||
|
"objectType": "153 <Type of this object. Matches those in GET /g/s/home/discover/content-modules/>",
|
||
|
"strategyInfo": {
|
||
|
"<->": "<This is a raw JSON string. It has been reformatted as JSON>",
|
||
|
"adUnitId": "703323 <Matches the adUnitId query string>",
|
||
|
"imageUrl": "... <A URL to the used image, seesm to be the same as parent object>",
|
||
|
"landingUrl": "... <Seems to match parent object>",
|
||
|
"objectId": "803326 <Seems to match parent object>",
|
||
|
"objectType": "ad_campaign <Unknown use>",
|
||
|
"reqId": "... <A UUIDv4, use unknown>",
|
||
|
"scenarioType": "banner-703323 <Seems to match banner-adUnitId, use unknown>",
|
||
|
"uiPos": "0 <Likely related to desired render position"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"paging": {
|
||
|
"nextPageToken": "... <Page token>"
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
|
||
|
</details>
|
||
|
|
||
|
|
||
|
<details>
|
||
|
<summary>GET /g/s/topic/:variant/feed/story/</summary>
|
||
|
GET a list of blogs for a topic. Usually from homepage display
|
||
|
|
||
|
__url arguments__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|variant|The variant of this topic item. Nonzero values seem to have no effect|False|
|
||
|
|
||
|
__query strings__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|type|The type of story set to get. Only `discover-list` seems to be used and work|True|
|
||
|
|categoryKey|Likely has to do with what type of posts are returned. Logged out default is `recommendation`|False|
|
||
|
|v|Likely a version number. Changing to arbitrary strings seems to have no effect|False|
|
||
|
|size|Likely intended to be number of items retrieved, seems not to have an effect|False|
|
||
|
|pageToken|Likely intended to be for pagination, seems not to have an effect| |
|
||
|
|pagingType|Seems to have no effect, default value is `t`|False|
|
||
|
|
||
|
__headers__
|
||
|
|
||
|
|name|description|required|
|
||
|
| - | - | - |
|
||
|
|NDCDEVICEID|The device id generated by the app. See|True|
|
||
|
|NDC-MSG-SIG|Message signature (?) generated by the app|False|
|
||
|
|SMDEVICEID|I don't know, seems to be a non-string hex number|False|
|
||
|
|AUID|The auid (UUIDv4) generated on amino servers for this client, retrieved with GET /g/s/auid|False|
|
||
|
|
||
|
__responses__
|
||
|
|
||
|
- 200 - Blogs Retrieved
|
||
|
Blogs Retrieved
|
||
|
|
||
|
The blogs for frontpage display were retrieved
|
||
|
|
||
|
```JSON
|
||
|
{
|
||
|
"allItemCount": "400 <Total returnable item count>",
|
||
|
"blogList": [
|
||
|
"{...} <full `blog` object>"
|
||
|
],
|
||
|
"communityInfoMapping": {
|
||
|
"<->": "<community id (ndcId) -> short info",
|
||
|
"192258706": {
|
||
|
"<->": " <Short amino community description>",
|
||
|
"endpoint": "Tik <Endpoint pointing to this community>",
|
||
|
"icon": "... <URL to the icon of this community",
|
||
|
"name": "-TikTok Amino- <Name of this community>",
|
||
|
"ndcId": "192258706 <Number ID of this community>",
|
||
|
"status": "0 <Unknown>"
|
||
|
}
|
||
|
},
|
||
|
"paging": {
|
||
|
"nextPageToken": "... <Page token>",
|
||
|
"refreshPageToken": "... <Unknown use>"
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
|
||
|
</details>
|