catena-tools-core (v1)

How To Use The API Explorer

On the right hand side of this page, you will see a list of "Servers".

  • Mock server: This server will return mock responses to all requests. It is best used when evaluating the shape of the Catena API.
  • Localhost: This server will point at a locally running version of Catena. It is best used when you want to make real requests or to validate that Catena is properly running on your machine.
  • Custom Domain: This server will point at any domain you specify with the domain variable. It is best used when you have a version of Catena deployed to a live environment and you want to make real requests against it.

To configure which server is shown in example requests:

  1. Select the "Try it" button on any API operation within the API explorer
  1. Select your environment
  1. If you want to point the API explorer to an instance of Catena you have deployed, select "Custom Domain" and configure the domain environment variable.
  1. You're all set! This setting will be cached across all API operations exposed in these docs.
Languages
Servers
Mock server
https://docs.catenatools.com/_mock/apis/catena-tools-core/
Localhost
http://localhost:5000/
Custom Domain
https://{domain}/

CatenaApiKeys

CatenaApiKeys

Operations

CatenaAccounts

CatenaAccounts

Operations

CatenaServerManager

The server manager service portion of the integrated broker. This is what game servers interact with to handle matches.

Operations

CatenaAuthentication

CatenaAuthentication

Operations

CatenaSessions

A service that can be used to probe the session store directly for development or diagnostics. Not intended for regular production use!

Operations

CatenaTitles

CatenaTitles

Operations

CatenaServerReleases

CatenaServerManagement

Operations

CatenaPlatformAuth

A service for managing Catena-authoritative functionality with regards to validation and authentication. Used by validators in the Authentication service that log the user into the Catena platform.

Operations

CatenaParties

CatenaParties

Operations

CatenaNodeInspection

A service that can be used inspect the Catena node.

Operations

CatenaNodeControl

A service that can be used control the Catena node.

Operations

CatenaMatchBroker

An integrated match broker service which sits between the matchmaker, clients, and game servers/hosting to coordinate capacity and notify clients when servers are ready to accept connections. This implementation integrates the broker and capacity/server manager roles.

Operations

CatenaFriends

CatenaFriends

Operations

Events

Events

Operations

CatenaEntitlements

Operations

Creates a new catalog item in our system with the specified information.

Request

Bodyapplication/json
catalogItemNamestring
catalogItemDescriptionstring
catalogItemPublishedboolean
catalogItemTagsArray of objects(Services.CatenaEntitlements.CatalogItemTag)
catalogItemCustomItemIdstring
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"
  }'

Responses

Success

Bodyapplication/json
catalogItemIdstring
Response
application/json
{ "catalogItemId": "string" }

Updates a new catalog item in our system with the specified information.

Request

Bodyapplication/json
catalogItemIdstring
namestring
descriptionstring
publishedboolean
tagUpdatesArray of objects(Services.CatenaEntitlements.TagUpdate)
customItemIdstring
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"
  }'

Responses

Success

Bodyapplication/json
object(Services.CatenaEntitlements.AdminUpdateCatalogItemResponse)
Response
application/json
{}

Retreives a list of all catalog items, optionally filtered by specified parameters

Request

Query
tagstring
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements?tag=string'

Responses

Success

Bodyapplication/json
catalogItemsArray of objects(Services.CatenaEntitlements.CatalogItem)
Response
application/json
{ "catalogItems": [ { … } ] }

Deletes a new catalog item in our system with the specified id.

Request

Path
catalogItemIdstringrequired
curl -i -X DELETE \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/{catalogItemId}'

Responses

Success

Bodyapplication/json
object(Services.CatenaEntitlements.AdminDeleteCatalogItemResponse)
Response
application/json
{}

Retreives a list of all catalog items, optionally filtered by specified parameters

Request

Path
tagstringrequired

optional

curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/{tag}'

Responses

Success

Bodyapplication/json
catalogItemsArray of objects(Services.CatenaEntitlements.CatalogItem)
Response
application/json
{ "catalogItems": [ { … } ] }

catena.catena_entitlements.CatenaEntitlements_AdminGetAccountOwnsCatalogItem

Request

Path
accountIdstringrequired
catalogItemIdstringrequired
Query
asapboolean
customItemIdstring
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'

Responses

Success

Bodyapplication/json
isOwnedboolean
countinteger(int64)
Response
application/json
{ "isOwned": true, "count": 0 }

catena.catena_entitlements.CatenaEntitlements_AdminGetAccountOwnsCatalogItem

Request

Path
accountIdstringrequired
customItemIdstringrequired
Query
catalogItemIdstring
asapboolean
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'

Responses

Success

Bodyapplication/json
isOwnedboolean
countinteger(int64)
Response
application/json
{ "isOwned": true, "count": 0 }

catena.catena_entitlements.CatenaEntitlements_AdminGetAccountCatalogItems

Request

Path
accountIdstringrequired
Query
asapboolean
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/account/{accountId}/items?asap=true'

Responses

Success

Bodyapplication/json
catalogItemsArray of objects(Services.CatenaEntitlements.AdminGetAccountCatalogItemsResponseCatalogItem)
Response
application/json
{ "catalogItems": [ { … } ] }

catena.catena_entitlements.CatenaEntitlements_AdminRevokeAccountCatalogItem

Request

Path
accountIdstringrequired
catalogItemIdstringrequired
curl -i -X PUT \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/account/{accountId}/item/{catalogItemId}/revoke'

Responses

Success

Bodyapplication/json
wasOwnedboolean
previousCountinteger(int64)
Response
application/json
{ "wasOwned": true, "previousCount": 0 }

catena.catena_entitlements.CatenaEntitlements_AdminSetAccountCountableCatalogItem

Request

Path
accountIdstringrequired
catalogItemIdstringrequired
countinteger(int64)required
Query
operationany(int32)(Services.CatenaEntitlements.ExtendedOperation)

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Default

1

CountOnly

2

LockoutFlagsOnly

3

CountAndLockoutFlags

lockoutFlags.prohibitNonAdminUpdate.nullValueany(Services.PublicCommon.NullValue)

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.

ValueDescription
0

NullValue

lockoutFlags.prohibitNonAdminUpdate.valueboolean
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'

Responses

Success

Bodyapplication/json
previousCountinteger(int64)
Response
application/json
{ "previousCount": 0 }

catena.catena_entitlements.CatenaEntitlements_AdminSetAccountCountableCatalogItem

Request

Path
accountIdstringrequired
catalogItemIdstringrequired
Bodyapplication/json
accountIdstring
catalogItemIdstring
countinteger(int64)
operationany(int32)(Services.CatenaEntitlements.ExtendedOperation)

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Default

1

CountOnly

2

LockoutFlagsOnly

3

CountAndLockoutFlags

lockoutFlagsobject(Services.CatenaEntitlements.AdminLockoutFlags)

Lockout flags as they are exposed to admins These may be null during a set if they should be left unchanged but should not be null during a get

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
      }
    }
  }'

Responses

Success

Bodyapplication/json
previousCountinteger(int64)
Response
application/json
{ "previousCount": 0 }

catena.catena_entitlements.CatenaEntitlements_AdminIncrementAccountCountableCatalogItem

Request

Path
accountIdstringrequired
catalogItemIdstringrequired
countinteger(int64)required
curl -i -X PATCH \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/account/{accountId}/item/{catalogItemId}/increment/{count}'

Responses

Success

Bodyapplication/json
newCountinteger(int64)
Response
application/json
{ "newCount": 0 }

catena.catena_entitlements.CatenaEntitlements_AdminDecrementAccountCountableCatalogItem

Request

Path
accountIdstringrequired
catalogItemIdstringrequired
countinteger(int64)required
Query
allowNegativeTotalboolean
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'

Responses

Success

Bodyapplication/json
newCountinteger(int64)
decrementSuccessfulboolean
Response
application/json
{ "newCount": 0, "decrementSuccessful": true }

catena.catena_entitlements.CatenaEntitlements_AdminGetMostRecentOwnershipChange

Request

Path
accountIdstringrequired
catalogItemIdstringrequired
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/account/{accountId}/item/{catalogItemId}/history/recent'

Responses

Success

Bodyapplication/json
recordobject(Services.CatenaEntitlements.OwnershipChangeRecord)
Response
application/json
{ "record": { "increment": 0, "agent": "string", "changeType": "OWNERSHIP_CHANGE_TYPE_UNSPECIFIED", "description": "string", "timestamp": 0 } }

catena.catena_entitlements.CatenaEntitlements_AdminGetOwnershipChangeHistory

Request

Path
accountIdstringrequired
catalogItemIdstringrequired
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/account/{accountId}/item/{catalogItemId}/history'

Responses

Success

Bodyapplication/json
recordsArray of objects(Services.CatenaEntitlements.OwnershipChangeRecord)
Response
application/json
{ "records": [ { … } ] }

catena.catena_entitlements.CatenaEntitlements_AdminPlaceOrderWithProvider

Request

Bodyapplication/json
providerany(Services.CatenaEntitlements.EntitlementProvider)

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

6

Steam

7

SteamApp

orderobject(Services.CatenaEntitlements.Order)
steamobject(Services.CatenaEntitlements.SteamOrderProviderOrderMetadata)
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"
    }
  }'

Responses

Success

Bodyapplication/json
createdSuccessfullyboolean
orderIdstring
steamobject(Services.CatenaEntitlements.SteamOrderProviderOrderResultDetails)
Response
application/json
{ "createdSuccessfully": true, "orderId": "string", "steam": { "checkoutUrl": "string" } }

catena.catena_entitlements.CatenaEntitlements_AdminRefundOrderWithProvider

Request

Query
providerany(Services.CatenaEntitlements.EntitlementProvider)

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

6

Steam

7

SteamApp

orderIdstring
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'

Responses

Success

Bodyapplication/json
object(Services.CatenaEntitlements.AdminRefundOrderWithProviderResponse)
Response
application/json
{}

catena.catena_entitlements.CatenaEntitlements_AdminStartSubscriptionWithProvider

Request

Bodyapplication/json
providerany(Services.CatenaEntitlements.EntitlementProvider)

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

6

Steam

7

SteamApp

subscriptionobject(Services.CatenaEntitlements.Subscription)
steamobject(Services.CatenaEntitlements.SteamOrderProviderSubscriptionMetadata)
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"
      }
    }
  }'

Responses

Success

Bodyapplication/json
createdSuccessfullyboolean
orderIdstring
steamobject(Services.CatenaEntitlements.SteamOrderProviderSubscriptionResultDetails)
Response
application/json
{ "createdSuccessfully": true, "orderId": "string", "steam": { "orderResultDetails": { … } } }

catena.catena_entitlements.CatenaEntitlements_AdminCancelSubscription

Request

Bodyapplication/json
subscriptionIdstring
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"
  }'

Responses

Success

Bodyapplication/json
object(Services.CatenaEntitlements.AdminCancelSubscriptionResponse)
Response
application/json
{}

catena.catena_entitlements.CatenaEntitlements_AdminGetSubscriptions

Request

Bodyapplication/json
providerany(Services.CatenaEntitlements.EntitlementProvider)

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

6

Steam

7

SteamApp

accountIdstring
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"
  }'

Responses

Success

Bodyapplication/json
subscriptionIdsArray of strings
Response
application/json
{ "subscriptionIds": [ "string" ] }

catena.catena_entitlements.CatenaEntitlements_AdminModifyProviderCatalogItemData

Request

Path
catalogItemIdstringrequired
providerany(Services.CatenaEntitlements.EntitlementProvider)required

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

6

Steam

7

SteamApp

Bodyapplication/json
providerany(Services.CatenaEntitlements.EntitlementProvider)

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

6

Steam

7

SteamApp

catalogItemIdstring
operationany(Services.CatenaEntitlements.ModifyProviderCatalogItemDataOperation)

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

1

Set

2

Update

steamAppobject(Services.CatenaEntitlements.SteamAppProviderCatalogItemData)
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"
    }
  }'

Responses

Success

Bodyapplication/json
object(Services.CatenaEntitlements.AdminModifyProviderCatalogItemDataResponse)
Response
application/json
{}

catena.catena_entitlements.CatenaEntitlements_AdminRemoveProviderCatalogItemData

Request

Path
catalogItemIdstringrequired
providerany(Services.CatenaEntitlements.EntitlementProvider)required

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

6

Steam

7

SteamApp

curl -i -X DELETE \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/{catalogItemId}/provider_data/{provider}/remove'

Responses

Success

Bodyapplication/json
object(Services.CatenaEntitlements.AdminRemoveProviderCatalogItemDataResponse)
Response
application/json
{}

catena.catena_entitlements.CatenaEntitlements_AdminGetProviderCatalogItemData

Request

Path
catalogItemIdstringrequired
Query
providerany(Services.CatenaEntitlements.EntitlementProvider)

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

6

Steam

7

SteamApp

curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/{catalogItemId}/provider_data?provider=ENTITLEMENT_PROVIDER_UNSPECIFIED'

Responses

Success

Bodyapplication/json
providerItemDataArray of objects(Services.CatenaEntitlements.ProviderCatalogItemData)
Response
application/json
{ "providerItemData": [ { … } ] }

catena.catena_entitlements.CatenaEntitlements_AdminGetProviderCatalogItemData

Request

Path
catalogItemIdstringrequired
providerany(Services.CatenaEntitlements.EntitlementProvider)required

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

6

Steam

7

SteamApp

curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/{catalogItemId}/provider_data/{provider}'

Responses

Success

Bodyapplication/json
providerItemDataArray of objects(Services.CatenaEntitlements.ProviderCatalogItemData)
Response
application/json
{ "providerItemData": [ { … } ] }

catena.catena_entitlements.CatenaEntitlements_AdminAddCatalogItemPurchasePrice

Request

Bodyapplication/json
priceKeyobject(Services.CatenaEntitlements.CatalogItemPriceKey)
amountinteger(int64)
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
  }'

Responses

Success

Bodyapplication/json
object(Services.CatenaEntitlements.AdminAddCatalogItemPurchasePriceResponse)
Response
application/json
{}

catena.catena_entitlements.CatenaEntitlements_AdminUpdateCatalogItemPurchasePrice

Request

Bodyapplication/json
priceKeyobject(Services.CatenaEntitlements.CatalogItemPriceKey)
amountinteger(int64)
existingAmountinteger(int64)
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
  }'

Responses

Success

Bodyapplication/json
object(Services.CatenaEntitlements.AdminUpdateCatalogItemPurchasePriceResponse)
Response
application/json
{}

catena.catena_entitlements.CatenaEntitlements_AdminGetCatalogItemPurchasePrices

Request

Path
catalogItemIdstringrequired
Bodyapplication/json
catalogItemIdstring
typeany(Services.CatenaEntitlements.PriceTypeFilter)

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 ValueDescription
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"
  }'

Responses

Success

Bodyapplication/json
pricesArray of objects(Services.CatenaEntitlements.CatalogItemPrice)
Response
application/json
{ "prices": [ { … } ] }

catena.catena_entitlements.CatenaEntitlements_AdminDeleteCatalogItemPurchasePrice

Request

Bodyapplication/json
priceKeyobject(Services.CatenaEntitlements.CatalogItemPriceKey)
amountinteger(int64)
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
  }'

Responses

Success

Bodyapplication/json
object(Services.CatenaEntitlements.AdminDeleteCatalogItemPurchasePriceResponse)
Response
application/json
{}

catena.catena_entitlements.CatenaEntitlements_AdminListSupportedProviders

Request

curl -i -X GET \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/providers/supported

Responses

Success

Bodyapplication/json
orderProvidersArray of strings
externalItemProvidersArray of strings
Response
application/json
{ "orderProviders": [ "string" ], "externalItemProviders": [ "string" ] }

catena.catena_entitlements.CatenaEntitlements_AdminListActiveProviders

Request

curl -i -X GET \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/entitlements/providers/active

Responses

Success

Bodyapplication/json
orderProvidersArray of strings
externalItemProvidersArray of strings
Response
application/json
{ "orderProviders": [ "string" ], "externalItemProviders": [ "string" ] }

A trusted service calls PrepareOffersForProvider on behalf of a player in order to get a list of potential orders that the player may execute for a given provider

Request

Path
providerany(Services.CatenaEntitlements.EntitlementProvider)required

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

6

Steam

7

SteamApp

Bodyapplication/json
accountIdstring

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

providerany(Services.CatenaEntitlements.EntitlementProvider)

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

6

Steam

7

SteamApp

currencystring
tagFilterArray of strings
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"
    ]
  }'

Responses

Success

Bodyapplication/json
itemsArray of objects(Services.CatenaEntitlements.PlayerFacingPreparedOffer)
Response
application/json
{ "items": [ { … } ] }

A trusted service calls ExecutePreparedOffersForProvider to execute a set of orders with a provider. The request may fail if the prepared orders are no longer valid, or data does not match

Request

Bodyapplication/json
preparedOrdersArray of objects(Services.CatenaEntitlements.PreparedOrderWithQuantity)
accountIdstring
steamobject(Services.CatenaEntitlements.SteamOrderProviderOrderMetadata)
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"
    }
  }'

Responses

Success

Bodyapplication/json
successboolean
orderIdstring
steamobject(Services.CatenaEntitlements.SteamOrderProviderOrderResultDetails)
Response
application/json
{ "success": true, "orderId": "string", "steam": { "checkoutUrl": "string" } }

catena.catena_entitlements.CatenaEntitlements_ServerGetAccountOwnsCatalogItem

Request

Path
accountIdstringrequired
catalogItemIdstringrequired
Query
asapboolean
customItemIdstring
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'

Responses

Success

Bodyapplication/json
isOwnedboolean
countinteger(int64)
Response
application/json
{ "isOwned": true, "count": 0 }

catena.catena_entitlements.CatenaEntitlements_ServerGetAccountOwnsCatalogItem

Request

Path
accountIdstringrequired
customItemIdstringrequired
Query
catalogItemIdstring
asapboolean
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'

Responses

Success

Bodyapplication/json
isOwnedboolean
countinteger(int64)
Response
application/json
{ "isOwned": true, "count": 0 }

catena.catena_entitlements.CatenaEntitlements_ServerGetAccountCatalogItems

Request

Path
accountIdstringrequired
Query
asapboolean
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/entitlements/account/{accountId}/items?asap=true'

Responses

Success

Bodyapplication/json
catalogItemsArray of objects(Services.CatenaEntitlements.ServerGetAccountCatalogItemsResponseCatalogItem)
Response
application/json
{ "catalogItems": [ { … } ] }

catena.catena_entitlements.CatenaEntitlements_ServerGetSubscriptions

Request

Bodyapplication/json
providerany(Services.CatenaEntitlements.EntitlementProvider)

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

6

Steam

7

SteamApp

accountIdstring
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"
  }'

Responses

Success

Bodyapplication/json
subscriptionIdsArray of strings
Response
application/json
{ "subscriptionIds": [ "string" ] }

catena.catena_entitlements.CatenaEntitlements_ServerCancelSubscription

Request

Bodyapplication/json
subscriptionIdstring
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"
  }'

Responses

Success

Bodyapplication/json
object(Services.CatenaEntitlements.ServerCancelSubscriptionResponse)
Response
application/json
{}

catena.catena_entitlements.CatenaEntitlements_ServerModifyProviderCatalogItemData

Request

Path
catalogItemIdstringrequired
providerany(Services.CatenaEntitlements.EntitlementProvider)required

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

6

Steam

7

SteamApp

Bodyapplication/json
providerany(Services.CatenaEntitlements.EntitlementProvider)

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

6

Steam

7

SteamApp

catalogItemIdstring
operationany(Services.CatenaEntitlements.ModifyProviderCatalogItemDataOperation)

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

1

Set

2

Update

steamAppobject(Services.CatenaEntitlements.SteamAppProviderCatalogItemData)
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"
    }
  }'

Responses

Success

Bodyapplication/json
object(Services.CatenaEntitlements.ServerModifyProviderCatalogItemDataResponse)
Response
application/json
{}

catena.catena_entitlements.CatenaEntitlements_ServerRemoveProviderCatalogItemData

Request

Path
catalogItemIdstringrequired
providerany(Services.CatenaEntitlements.EntitlementProvider)required

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

6

Steam

7

SteamApp

curl -i -X DELETE \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/entitlements/{catalogItemId}/provider_data/{provider}/remove'

Responses

Success

Bodyapplication/json
object(Services.CatenaEntitlements.ServerRemoveProviderCatalogItemDataResponse)
Response
application/json
{}

catena.catena_entitlements.CatenaEntitlements_ServerIncrementAccountCountableCatalogItem

Request

Path
accountIdstringrequired
catalogItemIdstringrequired
countinteger(int64)required
curl -i -X PATCH \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/entitlements/account/{accountId}/item/{catalogItemId}/increment/{count}'

Responses

Success

Bodyapplication/json
newCountinteger(int64)
Response
application/json
{ "newCount": 0 }

catena.catena_entitlements.CatenaEntitlements_ServerDecrementAccountCountableCatalogItem

Request

Path
accountIdstringrequired
catalogItemIdstringrequired
countinteger(int64)required
Query
allowNegativeTotalboolean
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'

Responses

Success

Bodyapplication/json
newCountinteger(int64)
decrementSuccessfulboolean
Response
application/json
{ "newCount": 0, "decrementSuccessful": true }

catena.catena_entitlements.CatenaEntitlements_GetAccountOwnsCatalogItem

Request

Path
catalogItemIdstringrequired
Query
asapboolean
customItemIdstring
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/entitlements/account/item/{catalogItemId}/owned?asap=true&customItemId=string'

Responses

Success

Bodyapplication/json
isOwnedboolean
countinteger(int64)
Response
application/json
{ "isOwned": true, "count": 0 }

catena.catena_entitlements.CatenaEntitlements_GetAccountOwnsCatalogItem

Request

Path
customItemIdstringrequired
Query
catalogItemIdstring
asapboolean
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'

Responses

Success

Bodyapplication/json
isOwnedboolean
countinteger(int64)
Response
application/json
{ "isOwned": true, "count": 0 }

catena.catena_entitlements.CatenaEntitlements_GetAccountCatalogItems

Request

Query
asapboolean
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/entitlements/account/items?asap=true'

Responses

Success

Bodyapplication/json
catalogItemsArray of objects(Services.CatenaEntitlements.GetAccountCatalogItemsResponseCatalogItem)
Response
application/json
{ "catalogItems": [ { … } ] }

catena.catena_entitlements.CatenaEntitlements_GetSubscriptions

Request

Bodyapplication/json
providerany(Services.CatenaEntitlements.EntitlementProvider)

Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

6

Steam

7

SteamApp

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"
  }'

Responses

Success

Bodyapplication/json
subscriptionIdsArray of strings
Response
application/json
{ "subscriptionIds": [ "string" ] }

catena.catena_entitlements.CatenaEntitlements_CancelSubscription

Request

Bodyapplication/json
subscriptionIdstring

Provider may be unspecified

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"
  }'

Responses

Success

Bodyapplication/json
object(Services.CatenaEntitlements.CancelSubscriptionResponse)
Response
application/json
{}

CatenaLeaderboards

Operations

CatenaMatchmaking

Operations

CatenaServerCatalog

Operations

CatenaSteamDiag

Operations