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

catena.catena_server_manager.CatenaServerManager_RequestMatch

Request

Bodyapplication/json
serverIdstring
requirementsstring

TODO: define filtering rules that can be applied

curl -i -X POST \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/request_match \
  -H 'Content-Type: application/json' \
  -d '{
    "serverId": "string",
    "requirements": "string"
  }'

Responses

Success

Bodyapplication/json
matchobject(Catena.MatchBroker.Match)
Response
application/json
{ "match": { "matchId": "string", "playerIds": [ … ], "matchProperties": "string", "playerProperties": { … } } }

catena.catena_server_manager.CatenaServerManager_MatchReady

Request

Bodyapplication/json
serverIdstring
matchIdstring
connectionDetailsstring

URI, IP+port, etc - not prescribed

hintFlagsany(Catena.ServerManager.HintFlag)

Optional flags hinting intention by requester/responder These are bit flags - values must be powers of 2! Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

NoHintFlags

1

Shutdown

2

WillingToWait

4

WillingToShutdown

8

Full

16

NotFull

curl -i -X POST \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/match_ready \
  -H 'Content-Type: application/json' \
  -d '{
    "serverId": "string",
    "matchId": "string",
    "connectionDetails": "string",
    "hintFlags": "HINT_FLAG_NO_HINT_FLAGS"
  }'

Responses

Success

Bodyapplication/json
matchIdstring

TODO: anything the server needs to know from the backend - proceed with match? (what if a client can't get the ready event?)

hintFlagsany(Catena.ServerManager.HintFlag)

Optional flags hinting intention by requester/responder These are bit flags - values must be powers of 2! Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

NoHintFlags

1

Shutdown

2

WillingToWait

4

WillingToShutdown

8

Full

16

NotFull

Response
application/json
{ "matchId": "string", "hintFlags": "HINT_FLAG_NO_HINT_FLAGS" }

catena.catena_server_manager.CatenaServerManager_EndMatch

Request

Bodyapplication/json
serverIdstring
matchIdstring
hintFlagsany(Catena.ServerManager.HintFlag)

Optional flags hinting intention by requester/responder These are bit flags - values must be powers of 2! Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

NoHintFlags

1

Shutdown

2

WillingToWait

4

WillingToShutdown

8

Full

16

NotFull

curl -i -X POST \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/end_match \
  -H 'Content-Type: application/json' \
  -d '{
    "serverId": "string",
    "matchId": "string",
    "hintFlags": "HINT_FLAG_NO_HINT_FLAGS"
  }'

Responses

Success

Bodyapplication/json
matchIdstring
hintFlagsany(Catena.ServerManager.HintFlag)

Optional flags hinting intention by requester/responder These are bit flags - values must be powers of 2! Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

NoHintFlags

1

Shutdown

2

WillingToWait

4

WillingToShutdown

8

Full

16

NotFull

Response
application/json
{ "matchId": "string", "hintFlags": "HINT_FLAG_NO_HINT_FLAGS" }

catena.catena_server_manager.CatenaServerManager_ListServers

Request

Bodyapplication/json
object(Catena.ServerManager.ListServersRequest)
curl -i -X POST \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/servers \
  -H 'Content-Type: application/json' \
  -d '{}'

Responses

Success

Bodyapplication/json
serversArray of objects(Catena.ServerManager.ServerInfo)
Response
application/json
{ "servers": [ { … } ] }

catena.catena_server_manager.CatenaServerManager_AdminDeallocateServer

Request

Bodyapplication/json
serverIdstring
curl -i -X POST \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/deallocate \
  -H 'Content-Type: application/json' \
  -d '{
    "serverId": "string"
  }'

Responses

Success

Bodyapplication/json
successboolean
stateany(Catena.ServerManager.ServerState)

The server state as in its capability to request matches Note: This is intentionally a subset of the specific states that exist inside the Catena Match Broker Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Unspecified

1

Pending

2

Available

3

Full

matchesArray of objects(Catena.ServerManager.ServerMatchInfo)
Response
application/json
{ "success": true, "state": "SERVER_STATE_UNSPECIFIED", "matches": [ { … } ] }

catena.catena_server_manager.CatenaServerManager_AdminAllocateServer

Request

Bodyapplication/json
matchobject(Catena.MatchBroker.Match)
curl -i -X POST \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/allocate \
  -H 'Content-Type: application/json' \
  -d '{
    "match": {
      "matchId": "string",
      "playerIds": [
        "string"
      ],
      "matchProperties": "string",
      "playerProperties": {
        "property1": "string",
        "property2": "string"
      }
    }
  }'

Responses

Success

Bodyapplication/json
serverIdstring
Response
application/json
{ "serverId": "string" }

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

CatenaLeaderboards

Operations

CatenaMatchmaking

Operations

CatenaServerCatalog

Operations

CatenaSteamDiag

Operations