diff --git a/source/index.html.md b/source/index.html.md
index b7081ca..c0c8a5b 100644
--- a/source/index.html.md
+++ b/source/index.html.md
@@ -15879,713 +15879,6 @@ To perform this request, you must be authenticated via one of the following meth
# In-App Purchases
-## Sync Xbox Live Entitlements
-
-> Example request
-
-```shell
-# You can also use wget
-curl -X POST https://*.modapi.io/v1/me/iap/xboxlive/sync?api_key=YourApiKey \
- -H 'Authorization: Bearer {access-token}' \
- -H 'Content-Type: application/x-www-form-urlencoded' \
- -H 'Accept: application/json' \
- -d 'xbox_token=XBL3.0 x=9264027439329321064;eym72VygeZzTSUVRmNvw8v...'
-
-```
-
-```http
-POST https://*.modapi.io/v1/me/iap/xboxlive/sync?api_key=YourApiKey HTTP/1.1
-Host: *.modapi.io
-Content-Type: application/x-www-form-urlencoded
-Accept: application/json
-Authorization: Bearer {access-token}
-
-```
-
-```javascript
-var headers = {
- 'Authorization':'Bearer {access-token}',
- 'Content-Type':'application/x-www-form-urlencoded',
- 'Accept':'application/json'
-
-};
-
-$.ajax({
- url: 'https://*.modapi.io/v1/me/iap/xboxlive/sync',
- method: 'post',
- data: '?api_key=YourApiKey',
- headers: headers,
- success: function(data) {
- console.log(JSON.stringify(data));
- }
-})
-```
-
-```javascript--nodejs
-const request = require('node-fetch');
-const inputBody = '{
- "xbox_token": "XBL3.0 x=9264027439329321064;eym72VygeZzTSUVRmNvw8v..."
-}';
-const headers = {
- 'Authorization':'Bearer {access-token}',
- 'Content-Type':'application/x-www-form-urlencoded',
- 'Accept':'application/json'
-
-};
-
-fetch('https://*.modapi.io/v1/me/iap/xboxlive/sync?api_key=YourApiKey',
-{
- method: 'POST',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-```
-
-```python
-import requests
-headers = {
- 'Authorization': 'Bearer {access-token}',
- 'Content-Type': 'application/x-www-form-urlencoded',
- 'Accept': 'application/json'
-}
-
-r = requests.post('https://*.modapi.io/v1/me/iap/xboxlive/sync', params={
- 'api_key': 'YourApiKey'
-}, headers = headers)
-
-print r.json()
-```
-
-```java
-URL obj = new URL("https://*.modapi.io/v1/me/iap/xboxlive/sync?api_key=YourApiKey");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-```
-
-`POST /me/iap/xboxlive/sync`
-
-Convert an in-game consumable that a user has purchased on Xbox Live into a users mod.io inventory. For an entitlement to be eligible for consumption it must be registered on mod.io within the In-App Purchases section of your game profile. This endpoint will consume the entitlement on behalf of the user against the portal in which the entitlements reside (i.e. Xbox Live).
-
- Parameter|Type|Required|Description
- ---|---|---|---|
- xbox_token|string|true|The Xbox Live token returned from calling [GetTokenAndSignatureAsync("POST", "https://*.modapi.io")](https://docs.microsoft.com/en-us/dotnet/api/microsoft.xbox.services.system.xboxliveuser.gettokenandsignatureasync?view=xboxlive-dotnet-2017.11.20171204.01).
__NOTE:__ Due to the encrypted app ticket containing special characters, you must URL encode the string before sending the request to ensure it is successfully sent to our servers otherwise you may encounter an `422 Unprocessable Entity` response. For example, [cURL](https://ec.haxx.se/http-post.html) will do this for you by using the `--data-urlencode` option.
-
-> Example response
-
-```json
-{
- "wallet": {
- "balance": 0
- },
- "data": [
- {
- "transaction_id": "124641934672",
- "transaction_state": 2,
- "sku_id": "MODIO0001",
- "entitlement_consumed": true,
- "entitlement_type": 0,
- "details": {
- "tokens_allocated": 1000
- }
- }
- ],
- "result_count": 70,
- "result_offset": 0,
- "result_limit": 100,
- "result_total": 70
-}
-
-```
-
Responses
-
-Status|Meaning|Error Ref|Description|Response Schema
----|---|----|---|---|
-200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)||Successful Request|[Get Entitlement Sync Status](#schemaget_entitlement_sync_status)
-403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|900057|In-App Purchase Syncing is only supported for active game sessions.|[Error Object](#schemaerror_object)
-403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|11069|The authenticated user does not have a XboxLive account connected to their mod.io account. The user must log into mod.io with their XboxLive account either from your game client or our website before re-attempting this request.|[Error Object](#schemaerror_object)
-
-## Sync PlayStation™Network Entitlements
-
-> Example request
-
-```shell
-# You can also use wget
-curl -X POST https://*.modapi.io/v1/me/iap/psn/sync?api_key=YourApiKey \
- -H 'Authorization: Bearer {access-token}' \
- -H 'Content-Type: application/x-www-form-urlencoded' \
- -H 'Accept: application/json' \
- -d 'auth_code=v3.AbCdE' \
- -d 'env=256' \
- -d 'service_label=0'
-
-```
-
-```http
-POST https://*.modapi.io/v1/me/iap/psn/sync?api_key=YourApiKey HTTP/1.1
-Host: *.modapi.io
-Content-Type: application/x-www-form-urlencoded
-Accept: application/json
-Authorization: Bearer {access-token}
-
-```
-
-```javascript
-var headers = {
- 'Authorization':'Bearer {access-token}',
- 'Content-Type':'application/x-www-form-urlencoded',
- 'Accept':'application/json'
-
-};
-
-$.ajax({
- url: 'https://*.modapi.io/v1/me/iap/psn/sync',
- method: 'post',
- data: '?api_key=YourApiKey',
- headers: headers,
- success: function(data) {
- console.log(JSON.stringify(data));
- }
-})
-```
-
-```javascript--nodejs
-const request = require('node-fetch');
-const inputBody = '{
- "auth_code": "v3.AbCdE",
- "env": 256,
- "service_label": 0
-}';
-const headers = {
- 'Authorization':'Bearer {access-token}',
- 'Content-Type':'application/x-www-form-urlencoded',
- 'Accept':'application/json'
-
-};
-
-fetch('https://*.modapi.io/v1/me/iap/psn/sync?api_key=YourApiKey',
-{
- method: 'POST',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-```
-
-```python
-import requests
-headers = {
- 'Authorization': 'Bearer {access-token}',
- 'Content-Type': 'application/x-www-form-urlencoded',
- 'Accept': 'application/json'
-}
-
-r = requests.post('https://*.modapi.io/v1/me/iap/psn/sync', params={
- 'api_key': 'YourApiKey'
-}, headers = headers)
-
-print r.json()
-```
-
-```java
-URL obj = new URL("https://*.modapi.io/v1/me/iap/psn/sync?api_key=YourApiKey");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-```
-
-`POST /me/iap/psn/sync`
-
-Convert an in-game consumable that a user has purchased via PlayStation™Network into a users mod.io inventory. For an entitlement to be eligible for consumption it must be registered on mod.io within the In-App Purchases section of your game profile. This endpoint will consume the entitlement on behalf of the user against the portal in which the entitlements reside (i.e. PlayStation™Network). Requests to this endpoint should specify if they are syncing PS4 or PS5 entitlements via the [platform header](#targeting-a-platform). If the platform header is omitted from the request, the endpoint will default to syncing PS5 entitlements.
-
- Body Parameter|Type|Required|Description
- ---|---|---|---|
- auth_code|string|true|The auth code returned from the PlayStation™Network API.
- env|integer||The PlayStation™Network environment you are targeting. If omitted, the request will default to targeting the production environment.
- service_label|int||The service label where the entitlements for mod.io reside. If omitted the default value will be 0.
-
-> Example response
-
-```json
-{
- "wallet": {
- "balance": 0
- },
- "data": [
- {
- "transaction_id": "124641934672",
- "transaction_state": 2,
- "sku_id": "MODIO0001",
- "entitlement_consumed": true,
- "entitlement_type": 0,
- "details": {
- "tokens_allocated": 1000
- }
- }
- ],
- "result_count": 70,
- "result_offset": 0,
- "result_limit": 100,
- "result_total": 70
-}
-
-```
-
Responses
-
-Status|Meaning|Error Ref|Description|Response Schema
----|---|----|---|---|
-200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)||Successful Request|[Get Entitlement Sync Status](#schemaget_entitlement_sync_status)
-403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|900054|The In-App Purchase config has not been configured for PlayStation™Network. Please submit the required credentials within the IAP config section of your game admin panel.|[Error Object](#schemaerror_object)
-403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|11069|The authenticated user does not have a PlayStation™Network account connected to their mod.io account. The user must log into mod.io with their PlayStation™Network account either from your game client or our website before re-attempting this request.|[Error Object](#schemaerror_object)
-403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|900057|In-App Purchase Syncing is only supported for active game sessions.|[Error Object](#schemaerror_object)
-
-## Sync Steam Entitlements
-
-> Example request
-
-```shell
-# You can also use wget
-curl -X POST https://*.modapi.io/v1/me/iap/steam/sync?api_key=YourApiKey \
- -H 'Authorization: Bearer {access-token}' \
- -H 'Accept: application/json'
-
-```
-
-```http
-POST https://*.modapi.io/v1/me/iap/steam/sync?api_key=YourApiKey HTTP/1.1
-Host: *.modapi.io
-
-Accept: application/json
-Authorization: Bearer {access-token}
-
-```
-
-```javascript
-var headers = {
- 'Authorization':'Bearer {access-token}',
- 'Accept':'application/json'
-
-};
-
-$.ajax({
- url: 'https://*.modapi.io/v1/me/iap/steam/sync',
- method: 'post',
- data: '?api_key=YourApiKey',
- headers: headers,
- success: function(data) {
- console.log(JSON.stringify(data));
- }
-})
-```
-
-```javascript--nodejs
-const request = require('node-fetch');
-
-const headers = {
- 'Authorization':'Bearer {access-token}',
- 'Accept':'application/json'
-
-};
-
-fetch('https://*.modapi.io/v1/me/iap/steam/sync?api_key=YourApiKey',
-{
- method: 'POST',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-```
-
-```python
-import requests
-headers = {
- 'Authorization': 'Bearer {access-token}',
- 'Accept': 'application/json'
-}
-
-r = requests.post('https://*.modapi.io/v1/me/iap/steam/sync', params={
- 'api_key': 'YourApiKey'
-}, headers = headers)
-
-print r.json()
-```
-
-```java
-URL obj = new URL("https://*.modapi.io/v1/me/iap/steam/sync?api_key=YourApiKey");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-```
-
-`POST /me/iap/steam/sync`
-
-Convert an in-game consumable that a user has purchased on Steam into a users mod.io inventory. For an entitlement to be eligible for consumption it must be registered on mod.io within the In-App Purchases section of your game profile. This endpoint will consume the entitlement on behalf of the user against the portal in which the entitlement resides (i.e. Steam).
-
-> Example response
-
-```json
-{
- "wallet": {
- "balance": 0
- },
- "data": [
- {
- "transaction_id": "124641934672",
- "transaction_state": 2,
- "sku_id": "MODIO0001",
- "entitlement_consumed": true,
- "entitlement_type": 0,
- "details": {
- "tokens_allocated": 1000
- }
- }
- ],
- "result_count": 70,
- "result_offset": 0,
- "result_limit": 100,
- "result_total": 70
-}
-
-```
-
Responses
-
-Status|Meaning|Error Ref|Description|Response Schema
----|---|----|---|---|
-200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)||Successful Request|[Get Entitlement Sync Status](#schemaget_entitlement_sync_status)
-403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|900054|The In-App Purchase config has not been configured for Steam. Please submit the required credentials within the IAP config section of your game admin panel.|[Error Object](#schemaerror_object)
-404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|11069|The authenticated user does not have a Steam account connected to their mod.io account. The user must log into mod.io with their Steam account either from your game client or our website before re-attempting this request.|[Error Object](#schemaerror_object)
-
-## Sync Apple Entitlements
-
-> Example request
-
-```shell
-# You can also use wget
-curl -X POST https://*.modapi.io/v1/me/iap/apple/sync?api_key=YourApiKey \
- -H 'Authorization: Bearer {access-token}' \
- -H 'Content-Type: application/x-www-form-urlencoded' \
- -H 'Accept: application/json' \
- -d 'receipt=MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBgl.....'
-
-```
-
-```http
-POST https://*.modapi.io/v1/me/iap/apple/sync?api_key=YourApiKey HTTP/1.1
-Host: *.modapi.io
-Content-Type: application/x-www-form-urlencoded
-Accept: application/json
-Authorization: Bearer {access-token}
-
-```
-
-```javascript
-var headers = {
- 'Authorization':'Bearer {access-token}',
- 'Content-Type':'application/x-www-form-urlencoded',
- 'Accept':'application/json'
-
-};
-
-$.ajax({
- url: 'https://*.modapi.io/v1/me/iap/apple/sync',
- method: 'post',
- data: '?api_key=YourApiKey',
- headers: headers,
- success: function(data) {
- console.log(JSON.stringify(data));
- }
-})
-```
-
-```javascript--nodejs
-const request = require('node-fetch');
-const inputBody = '{
- "receipt": "MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBgl....."
-}';
-const headers = {
- 'Authorization':'Bearer {access-token}',
- 'Content-Type':'application/x-www-form-urlencoded',
- 'Accept':'application/json'
-
-};
-
-fetch('https://*.modapi.io/v1/me/iap/apple/sync?api_key=YourApiKey',
-{
- method: 'POST',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-```
-
-```python
-import requests
-headers = {
- 'Authorization': 'Bearer {access-token}',
- 'Content-Type': 'application/x-www-form-urlencoded',
- 'Accept': 'application/json'
-}
-
-r = requests.post('https://*.modapi.io/v1/me/iap/apple/sync', params={
- 'api_key': 'YourApiKey'
-}, headers = headers)
-
-print r.json()
-```
-
-```java
-URL obj = new URL("https://*.modapi.io/v1/me/iap/apple/sync?api_key=YourApiKey");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-```
-
-`POST /me/iap/apple/sync`
-
-Convert in-app consumables that a user has purchased on the iOS store into their mod.io inventory. For an entitlement to be eligible for consumption it must be registered on mod.io within the In-App Purchases section of your game profile. This endpoint will consume the entitlement on behalf of the user against the portal in which the entitlements reside (i.e. Apple).
-
- Parameter|Type|Required|Description
- ---|---|---|---|
- receipt|string|true|The receipt returned to your app after a successful purchase on the iOS marketplace.
-
-> Example response
-
-```json
-{
- "wallet": {
- "balance": 0
- },
- "data": [
- {
- "transaction_id": "124641934672",
- "transaction_state": 2,
- "sku_id": "MODIO0001",
- "entitlement_consumed": true,
- "entitlement_type": 0,
- "details": {
- "tokens_allocated": 1000
- }
- }
- ],
- "result_count": 70,
- "result_offset": 0,
- "result_limit": 100,
- "result_total": 70
-}
-
-```
-
Responses
-
-Status|Meaning|Error Ref|Description|Response Schema
----|---|----|---|---|
-200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)||Successful Request|[Get Entitlement Sync Status](#schemaget_entitlement_sync_status)
-403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|900057|In-App Purchase Syncing is only supported for active game sessions.|[Error Object](#schemaerror_object)
-403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|11069|The authenticated user does not have an Apple account connected to their mod.io account. The user must log into mod.io with their Apple account either from your game client or our website before re-attempting this request.|[Error Object](#schemaerror_object)
-403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|11203|In-App Purchase functionality has not yet been configured for this title.|[Error Object](#schemaerror_object)
-403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|11205|The Apple Bundle ID is invalid.|[Error Object](#schemaerror_object)
-
-## Sync Google™ Entitlements
-
-> Example request
-
-```shell
-# You can also use wget
-curl -X POST https://*.modapi.io/v1/me/iap/google/sync?api_key=YourApiKey \
- -H 'Authorization: Bearer {access-token}' \
- -H 'Accept: application/json'
-
-```
-
-```http
-POST https://*.modapi.io/v1/me/iap/google/sync?api_key=YourApiKey HTTP/1.1
-Host: *.modapi.io
-
-Accept: application/json
-Authorization: Bearer {access-token}
-
-```
-
-```javascript
-var headers = {
- 'Authorization':'Bearer {access-token}',
- 'Accept':'application/json'
-
-};
-
-$.ajax({
- url: 'https://*.modapi.io/v1/me/iap/google/sync',
- method: 'post',
- data: '?api_key=YourApiKey',
- headers: headers,
- success: function(data) {
- console.log(JSON.stringify(data));
- }
-})
-```
-
-```javascript--nodejs
-const request = require('node-fetch');
-
-const headers = {
- 'Authorization':'Bearer {access-token}',
- 'Accept':'application/json'
-
-};
-
-fetch('https://*.modapi.io/v1/me/iap/google/sync?api_key=YourApiKey',
-{
- method: 'POST',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-```
-
-```python
-import requests
-headers = {
- 'Authorization': 'Bearer {access-token}',
- 'Accept': 'application/json'
-}
-
-r = requests.post('https://*.modapi.io/v1/me/iap/google/sync', params={
- 'api_key': 'YourApiKey'
-}, headers = headers)
-
-print r.json()
-```
-
-```java
-URL obj = new URL("https://*.modapi.io/v1/me/iap/google/sync?api_key=YourApiKey");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-```
-
-`POST /me/iap/google/sync`
-
-Convert an in-game consumable that a user has purchased via GooglePlay™ into a users mod.io inventory. This endpoint will consume the entitlement on behalf of the user against the portal in which the entitlements reside (i.e. Google).
-
- Body Parameter|Type|Required|Description
- ---|---|---|---|
- receipt|string||The json receipt returned from GooglePlay™ store. Required.
-
-> Example response
-
-```json
-{
- "wallet": {
- "balance": 0
- },
- "data": [
- {
- "transaction_id": "124641934672",
- "transaction_state": 2,
- "sku_id": "MODIO0001",
- "entitlement_consumed": true,
- "entitlement_type": 0,
- "details": {
- "tokens_allocated": 1000
- }
- }
- ],
- "result_count": 70,
- "result_offset": 0,
- "result_limit": 100,
- "result_total": 70
-}
-
-```
-
Responses
-
-Status|Meaning|Error Ref|Description|Response Schema
----|---|----|---|---|
-200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)||Successful Request|[Get Entitlement Sync Status](#schemaget_entitlement_sync_status)
-400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|900054|The In-App Purchase config has not been configured for Google™. Please submit the required credentials within the IAP config section of your game admin panel.|[Error Object](#schemaerror_object)
-400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|11069|The authenticated user does not have a Google™ account connected to their mod.io account. The user must log into mod.io with their PlayStation™Network account either from your game client or our website before re-attempting this request.|[Error Object](#schemaerror_object)
-400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|900057|In-App Purchase Syncing is only supported for active game sessions.|[Error Object](#schemaerror_object)
-
# Response Schemas
## Access Token Object