# Game server run status

Many game servers have an initialization process to go through when starting up. This has the effect that the game server will not actually be usable during this initialization period. Our platform should know about this, otherwise it will assume the game server is ready to accept clients immediately after starting. For this to be possible, your game server can let our back end know when it is ready to accept players. We refer to this as a "game server run-status update" and can be performed by having the game server make an API call either towards our public API, or locally on the host towards our Host Agent.

You do not have to worry about this if your game server start (nearly) instantly. We will by default set a game server's run-status to "RUNNING" after starting it.

Please refer to the [ApplicationInstance status](/game-hosting/elements/application/applicationinstance.md#application-instance-status) chapter for more information about all possible status values.

## Public API example

The following example illustrates how to change the run-status of a game server via the public API.

{% hint style="info" %}
If you let your game server do this call, remember that it will need to be given an API key from your i3D.net account. You can pass an API key through the [startup parameters of an ApplicationBuild](/game-hosting/elements/application/applicationbuild.md#element-structure).
{% endhint %}

#### HTTP request

[`PUT /applicationInstance/{applicationInstanceId}/status/{status}`](/api/api_one.md#v3-applicationinstance-status)

#### Request body

\<NOT NEEDED>

#### Response body

```
[
  {
    "id": "string",
    "fleetId": "string",
    "hostId": 0,
    "isVirtual": 0,
    "applicationId": "string",
    "applicationType": 0,
    "applicationBuildId": "string",
    "installId": 0,
    "dcLocationId": 0,
    "regionId": "string",
    "status": 0,
    "createdAt": 0,
    "startedAt": 0,
    "stoppedAt": 0,
    "pid": 0,
    "pidChangedAt": 0,
    "properties": [
      {
        "id": "string",
        "propertyType": 0,
        "propertyKey": "string",
        "propertyValue": "string"
      }
    ],
    "ipAddress": [
      {
        "ipAddress": "string",
        "ipVersion": 0,
        "private": 0
      }
    ],
    "labelReadOnly": [
      {
        "key": "string",
        "value": "string"
      }
    ],
    "labelPublic": [
      {
        "key": "string",
        "value": "string"
      }
    ],
    "metadata": [
      {
        "key": "string",
        "value": "string"
      }
    ],
    "updatedAt": 0,
    "numPlayersMax": 0,
    "numPlayers": 0,
    "liveHostName": "string",
    "liveMap": "string",
    "liveGameVersion": "string",
    "liveRules": "string",
    "manuallyDeployed": 0
  }
]
```

## Local Host Agent API example

TBD


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.i3d.net/game-hosting/game-integration/game-server-run-status.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
