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

CreateParty Creates a new party setting the player who requested its creation as its leader.

Request

Bodyapplication/json
creatingPlayerMetadataobject
curl -i -X POST \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/parties/create \
  -H 'Content-Type: application/json' \
  -d '{
    "creatingPlayerMetadata": {
      "property1": {
        "stringPayload": "string",
        "intPayload": 0,
        "jsonPayload": "string"
      },
      "property2": {
        "stringPayload": "string",
        "intPayload": 0,
        "jsonPayload": "string"
      }
    }
  }'

Responses

Success

Bodyapplication/json
partyobject(Services.CatenaParties.Party)
Response
application/json
{ "party": { "partyId": "string", "leaderId": "string", "inviteCode": "string", "players": [ … ], "metadata": { … } } }

Note: Append operations are not currently supported when updating metadata with this method

Request

Bodyapplication/json
payloadobject(Services.CatenaParties.Player)
payloadMaskstring
curl -i -X PATCH \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/parties/update-player \
  -H 'Content-Type: application/json' \
  -d '{
    "payload": {
      "playerId": "string",
      "displayName": "string",
      "isReady": true,
      "isLeader": true,
      "teamNumber": 0,
      "metadata": {
        "property1": {
          "stringPayload": "string",
          "intPayload": 0,
          "jsonPayload": "string"
        },
        "property2": {
          "stringPayload": "string",
          "intPayload": 0,
          "jsonPayload": "string"
        }
      }
    },
    "payloadMask": "string"
  }'

Responses

Success

Bodyapplication/json
partyobject(Services.CatenaParties.Party)
Response
application/json
{ "party": { "partyId": "string", "leaderId": "string", "inviteCode": "string", "players": [ … ], "metadata": { … } } }

JoinPartyWithInviteCode Allows a player to join a party by specifying its invite code.

Request

Bodyapplication/json
inviteCodestring

code used to join the party

joiningPlayerMetadataobject
curl -i -X POST \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/parties/join \
  -H 'Content-Type: application/json' \
  -d '{
    "inviteCode": "string",
    "joiningPlayerMetadata": {
      "property1": {
        "stringPayload": "string",
        "intPayload": 0,
        "jsonPayload": "string"
      },
      "property2": {
        "stringPayload": "string",
        "intPayload": 0,
        "jsonPayload": "string"
      }
    }
  }'

Responses

Success

Bodyapplication/json
partyobject(Services.CatenaParties.Party)
Response
application/json
{ "party": { "partyId": "string", "leaderId": "string", "inviteCode": "string", "players": [ … ], "metadata": { … } } }

GetPartyInfo Fetches party information for the party that the requesting player is currently a member of.

Request

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

Responses

Success

Bodyapplication/json
partyobject(Services.CatenaParties.Party)
Response
application/json
{ "party": { "partyId": "string", "leaderId": "string", "inviteCode": "string", "players": [ … ], "metadata": { … } } }

GetPartyInfoByPartyId Fetches information for a party given a party ID.

Request

Path
partyIdstringrequired
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/parties/{partyId}'

Responses

Success

Bodyapplication/json
partyobject(Services.CatenaParties.Party)
Response
application/json
{ "party": { "partyId": "string", "leaderId": "string", "inviteCode": "string", "players": [ … ], "metadata": { … } } }

GetPlayerInfoById Fetches information for a player in a party given an ID.

Request

Path
playerIdstringrequired
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/parties/players/{playerId}'

Responses

Success

Bodyapplication/json
playerobject(Services.CatenaParties.Player)
Response
application/json
{ "player": { "playerId": "string", "displayName": "string", "isReady": true, "isLeader": true, "teamNumber": 0, "metadata": { … } } }

SetPartyLeader Allows the current leader of a party to set a new leader.

Request

Bodyapplication/json
playerIdstring

ID of player to set as party leader

partyIdstring

ID of party to set leader of

curl -i -X PUT \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/parties/set-leader \
  -H 'Content-Type: application/json' \
  -d '{
    "playerId": "string",
    "partyId": "string"
  }'

Responses

Success

Bodyapplication/json
object(Services.CatenaParties.SetPartyLeaderResponse)
Response
application/json
{}

KickFromParty Allows the leader of a party to kick another player from their party.

Request

Bodyapplication/json
playerIdstring

ID of player to kick from party

partyIdstring

ID of party to kick player from

curl -i -X PUT \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/parties/kick \
  -H 'Content-Type: application/json' \
  -d '{
    "playerId": "string",
    "partyId": "string"
  }'

Responses

Success

Bodyapplication/json
object(Services.CatenaParties.KickFromPartyResponse)
Response
application/json
{}

LeaveParty Allows a player to leave their party and assigns a new leader if the leader leaves.

Request

Bodyapplication/json
partyIdstring

ID of party to leave

curl -i -X PUT \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/parties/leave \
  -H 'Content-Type: application/json' \
  -d '{
    "partyId": "string"
  }'

Responses

Success

Bodyapplication/json
object(Services.CatenaParties.LeavePartyResponse)
Response
application/json
{}

CreateMetadataEntry Creates a metadata entry for a party

Request

Bodyapplication/json
innerRequestobject(Catena.Groups.CreateMetadataEntryRequest)
playerIdstring

Optional: If included, query for a specific party member

curl -i -X POST \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/parties/metadata \
  -H 'Content-Type: application/json' \
  -d '{
    "innerRequest": {
      "id": "string",
      "entryKey": "string",
      "entryValue": {
        "stringPayload": "string",
        "intPayload": 0,
        "jsonPayload": "string"
      }
    },
    "playerId": "string"
  }'

Responses

Success

Bodyapplication/json
object(Catena.Groups.CreateMetadataEntryResponse)
Response
application/json
{}

UpdateMetadataEntry Updates a passed in party's metadata for a specific entry

Request

Bodyapplication/json
innerRequestobject(Catena.Groups.UpdateMetadataEntryRequest)
playerIdstring

Optional: If included, query for a specific party member

curl -i -X PUT \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/parties/metadata \
  -H 'Content-Type: application/json' \
  -d '{
    "innerRequest": {
      "id": "string",
      "entryKey": "string",
      "entryValue": {
        "stringPayload": "string",
        "intPayload": 0,
        "jsonPayload": "string"
      },
      "updateOperationType": "OVERWRITE"
    },
    "playerId": "string"
  }'

Responses

Success

Bodyapplication/json
object(Catena.Groups.UpdateMetadataEntryResponse)
Response
application/json
{}

DeleteMetadataEntry Deletes a metadata entry for a party

Request

Path
innerRequest.idstringrequired
innerRequest.entryKeystringrequired

The key in the metadata whose entry needs to be deleted

Query
innerRequest.jsonHandlingTypeany(int32)(Catena.Groups.DeleteJsonMetadataType)

If you are deleting a json, can choose whether to delete the entire entry or a partial part of an entry Currently, only whole property removal is supported. Removal of elements in a json array (e.g. trying to remove "value" from json {"array":["value","value2"]}) is not currently supported by DeleteMetadataEntryRequest. Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

EntireEntry

1

PartialEntry

innerRequest.propertiesToRemovePathsArray of strings
playerIdstring
curl -i -X DELETE \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/parties/metadata/{innerRequest.id}/{innerRequest.entryKey}?innerRequest.jsonHandlingType=0&innerRequest.propertiesToRemovePaths=string&playerId=string'

Responses

Success

Bodyapplication/json
entryDeletedboolean

If the entry was found in the database and deleted

Response
application/json
{ "entryDeleted": true }

GetMetadataEntry Gets a metadata entry for a passed in key

Request

Path
innerRequest.idstringrequired
innerRequest.entryKeystringrequired
Query
playerIdstring
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/parties/metadata/{innerRequest.id}/{innerRequest.entryKey}?playerId=string'

Responses

Success

Bodyapplication/json
entryValueobject(Catena.Groups.EntityMetadata)
Response
application/json
{ "entryValue": { "stringPayload": "string", "intPayload": 0, "jsonPayload": "string" } }

GetMetadataEntries Gets all metadata entries for a passed in party id

Request

Path
innerRequest.idstringrequired
Query
playerIdstring
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/parties/metadata/{innerRequest.id}?playerId=string'

Responses

Success

Bodyapplication/json
metadataobject
Response
application/json
{ "metadata": { "property1": { … }, "property2": { … } } }

GetServiceHealth

Request

curl -i -X GET \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/parties/healthz

Responses

Success

Bodyapplication/json
healthyboolean
componentsArray of objects(Catena.Core.ComponentHealth)
Response
application/json
{ "healthy": true, "components": [ { … } ] }

AdminCreateParty Creates a new party, setting the leader and party members at creation time

Request

Bodyapplication/json
partyobject(Services.CatenaParties.Party)
curl -i -X POST \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/parties/create \
  -H 'Content-Type: application/json' \
  -d '{
    "party": {
      "partyId": "string",
      "leaderId": "string",
      "inviteCode": "string",
      "players": [
        {
          "playerId": "string",
          "displayName": "string",
          "isReady": true,
          "isLeader": true,
          "teamNumber": 0,
          "metadata": {
            "property1": {
              "stringPayload": "string",
              "intPayload": 0,
              "jsonPayload": "string"
            },
            "property2": {
              "stringPayload": "string",
              "intPayload": 0,
              "jsonPayload": "string"
            }
          }
        }
      ],
      "metadata": {
        "property1": {
          "stringPayload": "string",
          "intPayload": 0,
          "jsonPayload": "string"
        },
        "property2": {
          "stringPayload": "string",
          "intPayload": 0,
          "jsonPayload": "string"
        }
      }
    }
  }'

Responses

Success

Bodyapplication/json
partyobject(Services.CatenaParties.Party)
Response
application/json
{ "party": { "partyId": "string", "leaderId": "string", "inviteCode": "string", "players": [ … ], "metadata": { … } } }

AdminUpdateParty Updates data for a party

Request

Bodyapplication/json
partyIdstring

id of party to be updated

payloadobject(Services.CatenaParties.AdminUpdateParty)
curl -i -X PATCH \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/parties/update \
  -H 'Content-Type: application/json' \
  -d '{
    "partyId": "string",
    "payload": {
      "leaderId": "string",
      "kick": [
        "string"
      ],
      "join": [
        "string"
      ],
      "joinDisplayNames": {
        "property1": "string",
        "property2": "string"
      },
      "metadata": {
        "property1": {
          "stringPayload": "string",
          "intPayload": 0,
          "jsonPayload": "string"
        },
        "property2": {
          "stringPayload": "string",
          "intPayload": 0,
          "jsonPayload": "string"
        }
      }
    }
  }'

Responses

Success

Bodyapplication/json
partyobject(Services.CatenaParties.Party)
Response
application/json
{ "party": { "partyId": "string", "leaderId": "string", "inviteCode": "string", "players": [ … ], "metadata": { … } } }

AdminGetPartyByID Fetches data for a party given a party ID

Request

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

Responses

Success

Bodyapplication/json
partyobject(Services.CatenaParties.Party)
Response
application/json
{ "party": { "partyId": "string", "leaderId": "string", "inviteCode": "string", "players": [ … ], "metadata": { … } } }

AdminListParties lists all parties

Request

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

Responses

Success

Bodyapplication/json
partiesArray of objects(Services.CatenaParties.Party)

list of all the existing parties

Response
application/json
{ "parties": [ { … } ] }

AdminDeleteParty deletes a party given a party ID

Request

Path
partyIdstringrequired
curl -i -X DELETE \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/parties/delete/{partyId}'

Responses

Success

Bodyapplication/json
partyDeletedboolean

returns true if party was deleted from database, false otherwise

Response
application/json
{ "partyDeleted": true }

catena.catena_parties.CatenaParties_AdminDeleteAllParties

Request

curl -i -X DELETE \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/parties/delete-all

Responses

Success

Bodyapplication/json
partiesDeletedinteger(int32)
Response
application/json
{ "partiesDeleted": 0 }

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

CatenaLeaderboards

Operations

CatenaMatchmaking

Operations

CatenaServerCatalog

Operations

CatenaSteamDiag

Operations