Client API: External Servers
Put a server you host yourself behind Game Shield: connection, tests and branding.
Put a server you host yourself behind Game Shield: connection, tests and branding.
Base URL: https://api.coritan.com/api/v1. Paths below are complete.
To try these requests in the browser, open the interactive Client API reference.
Operations
Section titled OperationsList external servers
Section titled List external serversGET /api/v1/client/external-servers
Authentication: an access token, sent as Authorization: Bearer <token>.
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
Regions a new or existing external server can be served from
Section titled Regions a new or existing external server can be served fromGET /api/v1/client/external-servers/regions
Regions a new or existing external server can be served from.
Authentication: an access token, sent as Authorization: Bearer <token>.
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
Get external server
Section titled Get external serverGET /api/v1/client/external-servers/{service_id}
Authentication: an access token, sent as Authorization: Bearer <token>.
Parameters
Section titled Parameters| Name | In | Type | Required |
|---|---|---|---|
service_id |
path | integer | yes |
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
422 |
The request is not valid. detail lists each problem. |
Change where players are forwarded, how, and through which region
Section titled Change where players are forwarded, how, and through which regionPATCH /api/v1/client/external-servers/{service_id}
Change where players are forwarded, how, and through which region.
Send only the fields to change. For a Java server, bedrock_bridge and geyser_port
control Geyser, which lets Bedrock players join at the same join name: a geyser_port
turns it on at that port, bedrock_bridge: true alone uses port 19132, and geyser_port: null
or bedrock_bridge: false turns it off. The port must differ from the Java port and be
between 1024 and 65535, and a Bedrock server takes none. A refusal answers 422 with the
reason in detail.errors. The reply is the server, with geyser set to what Geyser
answered when a Geyser or address change just ran a check, and null otherwise.
Authentication: an access token, sent as Authorization: Bearer <token>.
Parameters
Section titled Parameters| Name | In | Type | Required |
|---|---|---|---|
service_id |
path | integer | yes |
Request body
Section titled Request bodyapplication/json (required)
| Field | Type | Required | Description |
|---|---|---|---|
upstream_host |
string or null | no | |
upstream_port |
integer or null | no | |
proxy_protocol |
boolean or null | no | |
real_ip |
boolean or null | no | |
mode |
string or null | no | |
bedrock_bridge |
boolean or null | no | Java only. true turns Geyser on (port 19132 unless geyser_port is set), false turns it off. |
geyser_port |
integer or null | no | Java only. The port Geyser's built-in NetherNet signalling listens on, TCP and UDP, from 1024 to 65535 and different from the Java port. A number turns Geyser on. null turns it off. |
location_id |
integer or null | no | |
display_name |
string or null | no |
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
422 |
The request is not valid. detail lists each problem. |
Get custom domain
Section titled Get custom domainGET /api/v1/client/external-servers/{service_id}/custom-domain
Authentication: an access token, sent as Authorization: Bearer <token>.
Parameters
Section titled Parameters| Name | In | Type | Required |
|---|---|---|---|
service_id |
path | integer | yes |
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
422 |
The request is not valid. detail lists each problem. |
Link custom domain
Section titled Link custom domainPOST /api/v1/client/external-servers/{service_id}/custom-domain
Authentication: an access token, sent as Authorization: Bearer <token>.
Parameters
Section titled Parameters| Name | In | Type | Required |
|---|---|---|---|
service_id |
path | integer | yes |
Request body
Section titled Request bodyapplication/json (required)
| Field | Type | Required |
|---|---|---|
domain |
string | yes |
subdomain |
string | no |
include_in_list |
boolean | no |
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
422 |
The request is not valid. detail lists each problem. |
Show the vanity hostname, or the hosted one, in the public server list
Section titled Show the vanity hostname, or the hosted one, in the public server listPATCH /api/v1/client/external-servers/{service_id}/custom-domain
Show the vanity hostname, or the hosted one, in the public server list. This is the same switch the org portal has, for platform-direct customers.
Authentication: an access token, sent as Authorization: Bearer <token>.
Parameters
Section titled Parameters| Name | In | Type | Required |
|---|---|---|---|
service_id |
path | integer | yes |
Request body
Section titled Request bodyapplication/json (required)
| Field | Type | Required |
|---|---|---|
include_in_list |
boolean | yes |
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
422 |
The request is not valid. detail lists each problem. |
Unlink custom domain
Section titled Unlink custom domainDELETE /api/v1/client/external-servers/{service_id}/custom-domain
Authentication: an access token, sent as Authorization: Bearer <token>.
Parameters
Section titled Parameters| Name | In | Type | Required |
|---|---|---|---|
service_id |
path | integer | yes |
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
422 |
The request is not valid. detail lists each problem. |
Check the CNAME now rather than waiting for the next maintenance pass
Section titled Check the CNAME now rather than waiting for the next maintenance passPOST /api/v1/client/external-servers/{service_id}/custom-domain/verify
Check the CNAME now rather than waiting for the next maintenance pass.
Authentication: an access token, sent as Authorization: Bearer <token>.
Parameters
Section titled Parameters| Name | In | Type | Required |
|---|---|---|---|
service_id |
path | integer | yes |
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
422 |
The request is not valid. detail lists each problem. |
Status-ping the backend now and record the answer
Section titled Status-ping the backend now and record the answerPOST /api/v1/client/external-servers/{service_id}/test
Status-ping the backend now and record the answer.
Returns probe (what the Java or Bedrock server answered), state (online or offline)
and geyser. geyser is null for a server with no Geyser port. Otherwise it is
{reachable, transport, message}: reachable is true when Geyser answered the edge's
NetherNet status request, transport is nethernet or raknet (null when nothing
answered), and message says what to fix when it is not reachable. A Geyser that does
not answer does not change state.
Authentication: an access token, sent as Authorization: Bearer <token>.
Parameters
Section titled Parameters| Name | In | Type | Required |
|---|---|---|---|
service_id |
path | integer | yes |
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
422 |
The request is not valid. detail lists each problem. |