Keep all docs in single .yml document

Keep all api docs in docs.yml, and render all docs to docs.md under
amino folder
This commit is contained in:
Zero 2020-01-23 18:42:17 -05:00
parent 60c87f0b46
commit f71a9d917a
2 changed files with 214 additions and 1 deletions

View file

@ -190,6 +190,132 @@ The NDCDEVICEID header was not included, or did not compute on amino servers
</details>
<details>
<summary>POST /g/s/auth/login/</summary>
Log in with credentials
__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
{
"email": "... <account email address>",
"v": "2 <Unknown use, probably verson number. All integer values seem to work>",
"secret": "... <Login secret. Can be server supplied secret, or in the format \"0 <password>\"",
"deviceID": "... <NDCDEVICEID of this client>",
"clientType": "100 <Unknown meaning, always seems to be 100>",
"action": "normal <Unknown use>",
"timestamp": "1579754764781 <Login timestamp"
}
```
__responses__
- 200 - Login Successful
Login Successful
The login was successful and account information was sent
```JSON
{
"account": {
"<->": " <This differs from regular profile info in that it is privileged information>",
"activation": "1 <Unknown use>",
"phoneNumber": "null <Account linked phone number>",
"phoneNumberActivation": "0 <Likely related to phone verification, in the same way as with email",
"email": "... <User email>",
"emailActivation": "1 <Email activation, 1 / 0 bool>",
"username": "null <Unknown>",
"uid": "... <UUIDv4 of this user>",
"aminoIdEditable": "true <May the aminoId be changed? (I believe that one lifetime change is allowed)>",
"membership": "null <Probably related to paid membership>",
"aminoId": "BooruBot <Unique aminoId that points to this user>",
"mediaList": "null <Unknown use, probably a list of media objects>",
"icon": "... <Link to this user's profile image>",
"nickname": "BooruBot <Non-unique account global (non-community) nickname>",
"role": "0 <Unknown. Probably related to admin / curator roles in communities, N / A globally (unless amino admin?)>",
"securityLevel": "3 <Unknown use. Probably related to admin / moderator only visibility stuff>",
"status": "0 <Unknown, probably also related to admin / moderator. Could also be ban / mute status>",
"dateOfBirth": "null <User birthdate>",
"address": "null <Likely related to physical city / street address>",
"latitude": "null <Physical latitude>",
"longitude": "null <Physical longitude>",
"facebookID": "null <Linked facebook profile>",
"googleID": "null <Linked google profile>",
"twitterID": "null <Linked twitter profile>",
"gender": "null <User gender>",
"createdTime": "2019-05-16T03:47:29Z <Account creation time>",
"modifiedTime": "2019-08-15T06:39:15Z <Account last modified time>",
"advancedSettings": "{...} <Unknown settings>",
"extensions": {
"adsEnabled": "true <Are ads enabled? Probably related to amino paid membership. Useable for adblock?>",
"adsFlags": "11 <Unknown, probably has to do with ad selection>",
"adsLevel": "1 <Unknown, probably has to do with ad frequency>",
"contentLanguage": "en <Primary app language>",
"deviceInfo": {
"lastClientType": "100 <Client type used before this. Always 100? All mobile 100?>"
}
}
},
"auid": "... <UUIDv4 of this device>",
"secret": "... <Secret that may be used for logging in. Appears to contain device auid, ipv4 address, and other stuff>",
"sid": "... <session ID>",
"userProfile": "{...} <User object>"
}
```
- 200:0 - api:ok
api:ok
The request was successful. This is not a separate response, but included in every 200 response's json
```JSON
{
"api:message": "OK",
"api:timestamp": "2020-01-22T23:49:13Z <API timestamp>",
"api:statuscode": "0 <Statuscode 0 is ok>",
"api:duration": "0.010s <Processing time>"
}
```
- 400:104 - Missing NDCDEVICEID
Missing NDCDEVICEID
The NDCDEVICEID header was not included, or did not compute on amino servers
```JSON
{
"api:message": "Invalid Request. Please update to the latest version. If the problem continues, please contact us.",
"api:timestamp": "2020-01-22T22:11:28Z <API timestamp>",
"api:statuscode": "104 <Statuscode 104 represents a bad NDCDEVICEID header>",
"api:duration": "0.000s <Processing time>"
}
```
- 400:200 - Login Unsuccessful
Login Unsuccessful
The supplied credentials were not correct
```JSON
{
"api:message": "Account or password is incorrect! If you forget your password, please reset it.",
"api:timestamp": "2020-01-23T04:44:36Z <API timestamp>",
"api:statuscode": "200 <Statuscode 200 represents bad credentials>",
"api:duration": "0.016s <Processing time>"
}
```
</details>
<details>
<summary>POST /g/s/client-config/</summary>
POST device information for configuration. Likely related to analytics / telemetry

View file

@ -98,6 +98,20 @@ vars:
"device": "d2usc <Another way to identify the phone model>",
"timestamp": "1579580222209 <request time in ms>"
}
login:
POST:
lang: JSON
content:
{
"email": "... <account email address>",
"v": "2 <Unknown use, probably verson number. All integer values seem to work>",
"secret": "... <Login secret. Can be server supplied secret, or in the format \"0 <password>\"",
"deviceID": "... <NDCDEVICEID of this client>",
"clientType": "100 <Unknown meaning, always seems to be 100>",
"action": "normal <Unknown use>",
"timestamp": "1579754764781 <Login timestamp"
}
response:
device:
POST:
@ -386,7 +400,65 @@ vars:
"{...} <Blog object. Always by System (UUIDv4 all 0's)>"
]
}
login:
POST:
ok:
lang: JSON
content:
{
"account": {
"<->": " <This differs from regular profile info in that it is privileged information>",
"activation": "1 <Unknown use>",
"phoneNumber": "null <Account linked phone number>",
"phoneNumberActivation": "0 <Likely related to phone verification, in the same way as with email",
"email": "... <User email>",
"emailActivation": "1 <Email activation, 1 / 0 bool>",
"username": "null <Unknown>",
"uid": "... <UUIDv4 of this user>",
"aminoIdEditable": "true <May the aminoId be changed? (I believe that one lifetime change is allowed)>",
"membership": "null <Probably related to paid membership>",
"aminoId": "BooruBot <Unique aminoId that points to this user>",
"mediaList": "null <Unknown use, probably a list of media objects>",
"icon": "... <Link to this user's profile image>",
"nickname": "BooruBot <Non-unique account global (non-community) nickname>",
"role": "0 <Unknown. Probably related to admin / curator roles in communities, N / A globally (unless amino admin?)>",
"securityLevel": "3 <Unknown use. Probably related to admin / moderator only visibility stuff>",
"status": "0 <Unknown, probably also related to admin / moderator. Could also be ban / mute status>",
"dateOfBirth": "null <User birthdate>",
"address": "null <Likely related to physical city / street address>",
"latitude": "null <Physical latitude>",
"longitude": "null <Physical longitude>",
"facebookID": "null <Linked facebook profile>",
"googleID": "null <Linked google profile>",
"twitterID": "null <Linked twitter profile>",
"gender": "null <User gender>",
"createdTime": "2019-05-16T03:47:29Z <Account creation time>",
"modifiedTime": "2019-08-15T06:39:15Z <Account last modified time>",
"advancedSettings": "{...} <Unknown settings>",
"extensions": {
"adsEnabled": "true <Are ads enabled? Probably related to amino paid membership. Useable for adblock?>",
"adsFlags": "11 <Unknown, probably has to do with ad selection>",
"adsLevel": "1 <Unknown, probably has to do with ad frequency>",
"contentLanguage": "en <Primary app language>",
"deviceInfo": {
"lastClientType": "100 <Client type used before this. Always 100? All mobile 100?>"
}
},
},
"auid": "... <UUIDv4 of this device>",
"secret": "... <Secret that may be used for logging in. Appears to contain device auid, ipv4 address, and other stuff>",
"sid": "... <session ID>",
"userProfile": "{...} <User object>"
}
incorrect-info:
lang: JSON
content:
{
"api:message": "Account or password is incorrect! If you forget your password, please reset it.",
"api:timestamp": "2020-01-23T04:44:36Z <API timestamp>",
"api:statuscode": "200 <Statuscode 200 represents bad credentials>",
"api:duration": "0.016s <Processing time>"
}
api_codes:
api:104:
lang: JSON
@ -408,6 +480,7 @@ vars:
}
routes:
# Does not require auth
/g/s/device/:
POST:
description: POST a device configuration
@ -565,3 +638,17 @@ routes:
title: Announcements Retrieved
description: Current announcement blogs were retrieved
body: $response.announcement.GET.ok
# On login
/g/s/auth/login/:
POST:
description: Log in with credentials
body: $request.login.POST
responses:
"200":
title: Login Successful
description: The login was successful and account information was sent
body: $response.login.POST.ok
400:200:
title: Login Unsuccessful
description: The supplied credentials were not correct
body: $response.login.POST.incorrect-info