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

CatenaServerCatalog

The CatenaServerCatalogService is responsible for collecting all known hosts via HostHeartBeats. These Heartbeats result in the service registering the host and tracking it for future queries/external use.

Operations

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

CatenaGlobalMetadata

Operations

catena.catena_global_metadata.CatenaGlobalMetadata_GetMetadataEntry

Request

Path
entryKeystringrequired
Query
namespacestring
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/global_metadata/entry/{entryKey}?namespace=string'

Responses

Success

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

catena.catena_global_metadata.CatenaGlobalMetadata_GetMetadataEntry

Request

Path
namespacestringrequired
entryKeystringrequired
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/global_metadata/entry/{namespace}/{entryKey}'

Responses

Success

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

catena.catena_global_metadata.CatenaGlobalMetadata_GetMetadataEntries

Request

Query
namespacestring
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/global_metadata/entries?namespace=string'

Responses

Success

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

catena.catena_global_metadata.CatenaGlobalMetadata_GetMetadataEntries

Request

Path
namespacestringrequired
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/global_metadata/entries/{namespace}'

Responses

Success

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

catena.catena_global_metadata.CatenaGlobalMetadata_GetMetadataEntriesByKeyRegex

Request

Query
namespacestring
regexstring
caseInsensitiveboolean
invertboolean
curl -i -X POST \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/global_metadata/keys/search?caseInsensitive=true&invert=true&namespace=string&regex=string'

Responses

Success

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

catena.catena_global_metadata.CatenaGlobalMetadata_GetServiceHealth

Request

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

Responses

Success

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

catena.catena_global_metadata.CatenaGlobalMetadata_AdminListNamespaces

Request

Query
limitinteger(int32)
offsetinteger(int32)
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/global_metadata_namespaces?limit=0&offset=0'

Responses

Success

Bodyapplication/json
namespacesArray of strings
Response
application/json
{ "namespaces": [ "string" ] }

catena.catena_global_metadata.CatenaGlobalMetadata_AdminCreateMetadataEntry

Request

Bodyapplication/json
namespacestring
entryKeystring
entryValueobject(Catena.Groups.EntityMetadata)
curl -i -X POST \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/global_metadata \
  -H 'Content-Type: application/json' \
  -d '{
    "namespace": "string",
    "entryKey": "string",
    "entryValue": {
      "stringPayload": "string",
      "intPayload": 0,
      "jsonPayload": "string"
    }
  }'

Responses

Success

Bodyapplication/json
object(Services.CatenaGlobalMetadata.CreateMetadataEntryResponse)
Response
application/json
{}

catena.catena_global_metadata.CatenaGlobalMetadata_AdminUpdateMetadataEntry

Request

Bodyapplication/json
namespacestring
entryKeystring
entryValueobject(Catena.Groups.EntityMetadata)
updateOperationTypeany(Catena.Groups.UpdateMetadataOperationType)

When updating a metadata entry, the entry can either be overwritten (supported by all types) or appended (supported by string and json) Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Overwrite

1

Append

2

CreateIfNecessary

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

Responses

Success

Bodyapplication/json
object(Services.CatenaGlobalMetadata.UpdateMetadataEntryResponse)
Response
application/json
{}

catena.catena_global_metadata.CatenaGlobalMetadata_AdminDeleteMetadataEntry

Request

Bodyapplication/json
namespacestring
entryKeystring
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

propertiesToRemovePathsArray of strings
curl -i -X DELETE \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/global_metadata \
  -H 'Content-Type: application/json' \
  -d '{
    "namespace": "string",
    "entryKey": "string",
    "jsonHandlingType": 0,
    "propertiesToRemovePaths": [
      "string"
    ]
  }'

Responses

Success

Bodyapplication/json
entryDeletedboolean
Response
application/json
{ "entryDeleted": true }

catena.catena_global_metadata.CatenaGlobalMetadata_AdminGetMetadataEntry

Request

Path
entryKeystringrequired
Query
namespacestring
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/global_metadata/entry/{entryKey}?namespace=string'

Responses

Success

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

catena.catena_global_metadata.CatenaGlobalMetadata_AdminGetMetadataEntry

Request

Path
namespacestringrequired
entryKeystringrequired
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/global_metadata/entry/{namespace}/{entryKey}'

Responses

Success

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

catena.catena_global_metadata.CatenaGlobalMetadata_AdminGetMetadataEntries

Request

Query
namespacestring
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/global_metadata/entries?namespace=string'

Responses

Success

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

catena.catena_global_metadata.CatenaGlobalMetadata_AdminGetMetadataEntries

Request

Path
namespacestringrequired
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/global_metadata/entries/{namespace}'

Responses

Success

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

Get all metadata entries with keys matching search criteria

Request

Query
namespacestring
regexstring
caseInsensitiveboolean
invertboolean
curl -i -X POST \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/admin/global_metadata/keys/search?caseInsensitive=true&invert=true&namespace=string&regex=string'

Responses

Success

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

catena.catena_global_metadata.CatenaGlobalMetadata_ServerListNamespaces

Request

Query
limitinteger(int32)
offsetinteger(int32)
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/global_metadata_namespaces?limit=0&offset=0'

Responses

Success

Bodyapplication/json
namespacesArray of strings
Response
application/json
{ "namespaces": [ "string" ] }

catena.catena_global_metadata.CatenaGlobalMetadata_ServerCreateMetadataEntry

Request

Bodyapplication/json
namespacestring
entryKeystring
entryValueobject(Catena.Groups.EntityMetadata)
curl -i -X POST \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/global_metadata \
  -H 'Content-Type: application/json' \
  -d '{
    "namespace": "string",
    "entryKey": "string",
    "entryValue": {
      "stringPayload": "string",
      "intPayload": 0,
      "jsonPayload": "string"
    }
  }'

Responses

Success

Bodyapplication/json
object(Services.CatenaGlobalMetadata.CreateMetadataEntryResponse)
Response
application/json
{}

catena.catena_global_metadata.CatenaGlobalMetadata_ServerUpdateMetadataEntry

Request

Bodyapplication/json
namespacestring
entryKeystring
entryValueobject(Catena.Groups.EntityMetadata)
updateOperationTypeany(Catena.Groups.UpdateMetadataOperationType)

When updating a metadata entry, the entry can either be overwritten (supported by all types) or appended (supported by string and json) Prefer integer values in JSON-encoded requests to avoid generic parse errors due to typos.

Enum ValueDescription
0

Overwrite

1

Append

2

CreateIfNecessary

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

Responses

Success

Bodyapplication/json
object(Services.CatenaGlobalMetadata.UpdateMetadataEntryResponse)
Response
application/json
{}

catena.catena_global_metadata.CatenaGlobalMetadata_ServerDeleteMetadataEntry

Request

Bodyapplication/json
namespacestring
entryKeystring
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

propertiesToRemovePathsArray of strings
curl -i -X DELETE \
  https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/global_metadata \
  -H 'Content-Type: application/json' \
  -d '{
    "namespace": "string",
    "entryKey": "string",
    "jsonHandlingType": 0,
    "propertiesToRemovePaths": [
      "string"
    ]
  }'

Responses

Success

Bodyapplication/json
entryDeletedboolean
Response
application/json
{ "entryDeleted": true }

catena.catena_global_metadata.CatenaGlobalMetadata_ServerGetMetadataEntry

Request

Path
entryKeystringrequired
Query
namespacestring
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/global_metadata/entry/{entryKey}?namespace=string'

Responses

Success

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

catena.catena_global_metadata.CatenaGlobalMetadata_ServerGetMetadataEntry

Request

Path
namespacestringrequired
entryKeystringrequired
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/global_metadata/entry/{namespace}/{entryKey}'

Responses

Success

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

catena.catena_global_metadata.CatenaGlobalMetadata_ServerGetMetadataEntries

Request

Query
namespacestring
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/global_metadata/entries?namespace=string'

Responses

Success

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

catena.catena_global_metadata.CatenaGlobalMetadata_ServerGetMetadataEntries

Request

Path
namespacestringrequired
curl -i -X GET \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/global_metadata/entries/{namespace}'

Responses

Success

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

Get all metadata entries with keys matching search criteria

Request

Query
namespacestring
regexstring
caseInsensitiveboolean
invertboolean
curl -i -X POST \
  'https://docs.catenatools.com/_mock/apis/catena-tools-core/api/v1/server/global_metadata/keys/search?caseInsensitive=true&invert=true&namespace=string&regex=string'

Responses

Success

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

CatenaLeaderboards

Operations

CatenaMatchmaking

Operations

CatenaSteamDiag

Operations