CatenaApiKeys
Enum Value | Description |
---|---|
0 | Default |
1 | CountOnly |
2 | LockoutFlagsOnly |
3 | CountAndLockoutFlags |
On the right hand side of this page, you will see a list of "Servers".
To configure which server is shown in example requests:
domain
environment variable.curl -i -X POST \
https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements \
-H 'Content-Type: application/json' \
-d '{
"catalogItemName": "string",
"catalogItemDescription": "string",
"catalogItemPublished": true,
"catalogItemTags": [
{
"tag": "string"
}
],
"catalogItemCustomItemId": "string"
}'
{ "catalogItemId": "string" }
curl -i -X PUT \
https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements \
-H 'Content-Type: application/json' \
-d '{
"catalogItemId": "string",
"name": "string",
"description": "string",
"published": true,
"tagUpdates": [
{
"operation": "TAG_UPDATE_ADD",
"tag": "string"
}
],
"customItemId": "string"
}'
{}
curl -i -X GET \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements?tag=string'
{ "catalogItems": [ { … } ] }
curl -i -X DELETE \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/{catalogItemId}'
{}
curl -i -X GET \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/{tag}'
{ "catalogItems": [ { … } ] }
curl -i -X GET \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/account/{accountId}/item/{catalogItemId}/owned?asap=true&customItemId=string'
{ "isOwned": true, "count": 0 }
curl -i -X GET \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/account/{accountId}/item/custom/{customItemId}/owned?asap=true&catalogItemId=string'
{ "isOwned": true, "count": 0 }
curl -i -X GET \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/account/{accountId}/items?asap=true'
{ "catalogItems": [ { … } ] }
curl -i -X PUT \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/account/{accountId}/item/{catalogItemId}/revoke'
{ "wasOwned": true, "previousCount": 0 }
Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.
Enum Value | Description |
---|---|
0 | Default |
1 | CountOnly |
2 | LockoutFlagsOnly |
3 | CountAndLockoutFlags |
Specific use case "nullable" types Similar to well-known types but simplified (and fewer dependencies and less overhead and no Value/Struct!) Catena supports implicitly casting to/from from C# native nullable types Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.
Value | Description |
---|---|
0 | NullValue |
curl -i -X PUT \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/account/{accountId}/item/{catalogItemId}/set/{count}?lockoutFlags.prohibitNonAdminUpdate.nullValue=NULL_VALUE&lockoutFlags.prohibitNonAdminUpdate.value=true&operation=0'
{ "previousCount": 0 }
Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.
Enum Value | Description |
---|---|
0 | Default |
1 | CountOnly |
2 | LockoutFlagsOnly |
3 | CountAndLockoutFlags |
curl -i -X POST \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/account/{accountId}/item/{catalogItemId}/set_extended' \
-H 'Content-Type: application/json' \
-d '{
"accountId": "string",
"catalogItemId": "string",
"count": 0,
"operation": 0,
"lockoutFlags": {
"prohibitNonAdminUpdate": {
"nullValue": "NULL_VALUE",
"value": true
}
}
}'
{ "previousCount": 0 }
curl -i -X PATCH \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/account/{accountId}/item/{catalogItemId}/increment/{count}'
curl -i -X PATCH \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/account/{accountId}/item/{catalogItemId}/decrement/{count}?allowNegativeTotal=true'
{ "newCount": 0, "decrementSuccessful": true }
curl -i -X GET \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/account/{accountId}/item/{catalogItemId}/history/recent'
{ "record": { "increment": 0, "agent": "string", "changeType": "OWNERSHIP_CHANGE_TYPE_UNSPECIFIED", "description": "string", "timestamp": 0 } }
curl -i -X GET \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/account/{accountId}/item/{catalogItemId}/history'
{ "records": [ { … } ] }
Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.
Enum Value | Description |
---|---|
0 | Unspecified |
6 | Steam |
7 | SteamApp |
curl -i -X POST \
https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/entitlements/admin/order/place \
-H 'Content-Type: application/json' \
-d '{
"provider": "ENTITLEMENT_PROVIDER_UNSPECIFIED",
"order": {
"granteeId": "string",
"items": [
{
"itemId": "string",
"description": "string",
"currency": "string",
"pricePerItem": 0,
"count": 0
}
]
},
"steam": {
"language": "string",
"userSession": "string",
"ipAddress": "string"
}
}'
{ "createdSuccessfully": true, "orderId": "string", "steam": { "checkoutUrl": "string" } }
curl -i -X POST \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/entitlements/admin/order/refund?orderId=string&provider=ENTITLEMENT_PROVIDER_UNSPECIFIED'
{}
Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.
Enum Value | Description |
---|---|
0 | Unspecified |
6 | Steam |
7 | SteamApp |
curl -i -X POST \
https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/entitlements/admin/subscription/start \
-H 'Content-Type: application/json' \
-d '{
"provider": "ENTITLEMENT_PROVIDER_UNSPECIFIED",
"subscription": {
"order": {
"granteeId": "string",
"items": [
{
"itemId": "string",
"description": "string",
"currency": "string",
"pricePerItem": 0,
"count": 0
}
]
},
"interval": {
"unit": "SUBSCRIPTION_INTERVAL_UNIT_UNSPECIFIED",
"count": 0
}
},
"steam": {
"orderMetadata": {
"language": "string",
"userSession": "string",
"ipAddress": "string"
}
}
}'
{ "createdSuccessfully": true, "orderId": "string", "steam": { "orderResultDetails": { … } } }
curl -i -X POST \
https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/entitlements/admin/subscription/cancel \
-H 'Content-Type: application/json' \
-d '{
"subscriptionId": "string"
}'
{}
Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.
Enum Value | Description |
---|---|
0 | Unspecified |
6 | Steam |
7 | SteamApp |
curl -i -X POST \
https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/entitlements/admin/subscriptions/get \
-H 'Content-Type: application/json' \
-d '{
"provider": "ENTITLEMENT_PROVIDER_UNSPECIFIED",
"accountId": "string"
}'
{ "subscriptionIds": [ "string" ] }
Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.
Enum Value | Description |
---|---|
0 | Unspecified |
6 | Steam |
7 | SteamApp |
Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.
Enum Value | Description |
---|---|
0 | Unspecified |
1 | Set |
2 | Update |
curl -i -X POST \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/{catalogItemId}/provider_data/{provider}/modify' \
-H 'Content-Type: application/json' \
-d '{
"provider": "ENTITLEMENT_PROVIDER_UNSPECIFIED",
"catalogItemId": "string",
"operation": "MODIFY_PROVIDER_CATALOG_ITEM_DATA_OPERATION_UNSPECIFIED",
"steamApp": {
"appId": 0,
"policy": "STEAM_APP_ITEM_POLICY_UNSPECIFIED"
}
}'
{}
curl -i -X DELETE \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/{catalogItemId}/provider_data/{provider}/remove'
{}
curl -i -X GET \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/{catalogItemId}/provider_data?provider=ENTITLEMENT_PROVIDER_UNSPECIFIED'
{ "providerItemData": [ { … } ] }
curl -i -X GET \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/{catalogItemId}/provider_data/{provider}'
{ "providerItemData": [ { … } ] }
curl -i -X POST \
https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/price/add \
-H 'Content-Type: application/json' \
-d '{
"priceKey": {
"catalogItemId": "string",
"provider": "string",
"quantity": 0,
"currency": "string",
"subscriptionInterval": {
"unit": "SUBSCRIPTION_INTERVAL_UNIT_UNSPECIFIED",
"count": 0
}
},
"amount": 0
}'
{}
curl -i -X POST \
https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/price/update \
-H 'Content-Type: application/json' \
-d '{
"priceKey": {
"catalogItemId": "string",
"provider": "string",
"quantity": 0,
"currency": "string",
"subscriptionInterval": {
"unit": "SUBSCRIPTION_INTERVAL_UNIT_UNSPECIFIED",
"count": 0
}
},
"amount": 0,
"existingAmount": 0
}'
{}
These are flags and must be powers of 2! Default/unspecified returns purchase prices only (equivalent to when value is 1) Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.
Enum Value | Description |
---|---|
0 | Unspecified |
1 | Purchase |
2 | Subscription |
curl -i -X POST \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/{catalogItemId}/prices' \
-H 'Content-Type: application/json' \
-d '{
"catalogItemId": "string",
"type": "PRICE_TYPE_FILTER_UNSPECIFIED"
}'
{ "prices": [ { … } ] }
curl -i -X DELETE \
https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/price/delete \
-H 'Content-Type: application/json' \
-d '{
"priceKey": {
"catalogItemId": "string",
"provider": "string",
"quantity": 0,
"currency": "string",
"subscriptionInterval": {
"unit": "SUBSCRIPTION_INTERVAL_UNIT_UNSPECIFIED",
"count": 0
}
},
"amount": 0
}'
{}
curl -i -X GET \
https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/providers/supported
{ "orderProviders": [ "string" ], "externalItemProviders": [ "string" ] }
curl -i -X GET \
https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/providers/active
{ "orderProviders": [ "string" ], "externalItemProviders": [ "string" ] }
since we are making this request on behalf of a player rather than initiated by a player, we must pass an account id in the request
Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.
Enum Value | Description |
---|---|
0 | Unspecified |
6 | Steam |
7 | SteamApp |
curl -i -X POST \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/entitlements/offer/{provider}/prepare' \
-H 'Content-Type: application/json' \
-d '{
"accountId": "string",
"provider": "ENTITLEMENT_PROVIDER_UNSPECIFIED",
"currency": "string",
"tagFilter": [
"string"
]
}'
{ "items": [ { … } ] }
curl -i -X POST \
https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/entitlements/offer/execute \
-H 'Content-Type: application/json' \
-d '{
"preparedOrders": [
{
"preparedOrder": "string",
"quantity": 0
}
],
"accountId": "string",
"steam": {
"language": "string",
"userSession": "string",
"ipAddress": "string"
}
}'
{ "success": true, "orderId": "string", "steam": { "checkoutUrl": "string" } }
curl -i -X GET \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/entitlements/account/{accountId}/item/{catalogItemId}/owned?asap=true&customItemId=string'
{ "isOwned": true, "count": 0 }
curl -i -X GET \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/entitlements/account/{accountId}/item/custom/{customItemId}/owned?asap=true&catalogItemId=string'
{ "isOwned": true, "count": 0 }
curl -i -X GET \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/entitlements/account/{accountId}/items?asap=true'
{ "catalogItems": [ { … } ] }
Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.
Enum Value | Description |
---|---|
0 | Unspecified |
6 | Steam |
7 | SteamApp |
curl -i -X POST \
https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/entitlements/subscriptions/get \
-H 'Content-Type: application/json' \
-d '{
"provider": "ENTITLEMENT_PROVIDER_UNSPECIFIED",
"accountId": "string"
}'
{ "subscriptionIds": [ "string" ] }
curl -i -X POST \
https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/entitlements/subscription/cancel \
-H 'Content-Type: application/json' \
-d '{
"subscriptionId": "string"
}'
{}
Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.
Enum Value | Description |
---|---|
0 | Unspecified |
6 | Steam |
7 | SteamApp |
Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.
Enum Value | Description |
---|---|
0 | Unspecified |
1 | Set |
2 | Update |
curl -i -X POST \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/entitlements/{catalogItemId}/provider_data/{provider}/modify' \
-H 'Content-Type: application/json' \
-d '{
"provider": "ENTITLEMENT_PROVIDER_UNSPECIFIED",
"catalogItemId": "string",
"operation": "MODIFY_PROVIDER_CATALOG_ITEM_DATA_OPERATION_UNSPECIFIED",
"steamApp": {
"appId": 0,
"policy": "STEAM_APP_ITEM_POLICY_UNSPECIFIED"
}
}'
{}
curl -i -X DELETE \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/entitlements/{catalogItemId}/provider_data/{provider}/remove'
{}
curl -i -X PATCH \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/entitlements/account/{accountId}/item/{catalogItemId}/increment/{count}'
curl -i -X PATCH \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/entitlements/account/{accountId}/item/{catalogItemId}/decrement/{count}?allowNegativeTotal=true'
{ "newCount": 0, "decrementSuccessful": true }
curl -i -X GET \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/entitlements/account/item/{catalogItemId}/owned?asap=true&customItemId=string'
{ "isOwned": true, "count": 0 }
curl -i -X GET \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/entitlements/account/item/custom/{customItemId}/owned?asap=true&catalogItemId=string'
{ "isOwned": true, "count": 0 }
curl -i -X GET \
'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/entitlements/account/items?asap=true'
{ "catalogItems": [ { … } ] }
curl -i -X POST \
https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/entitlements/subscriptions/get \
-H 'Content-Type: application/json' \
-d '{
"provider": "ENTITLEMENT_PROVIDER_UNSPECIFIED"
}'
{ "subscriptionIds": [ "string" ] }
curl -i -X POST \
https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/entitlements/subscription/cancel \
-H 'Content-Type: application/json' \
-d '{
"subscriptionId": "string"
}'
{}