# Application

An Application is an component that describes a program that the system can deploy. As such, every program you want to deploy must be defined by an Application component. You can specify the application type, whether it has a [management protocol](/game-hosting/game-integration/index.md) (only applies to application type Game), give it a name, a website, description, etc.

## Application types

An Application can be one of four types:

* a game server (type: Game)
* a utility / sidecar (type: Utility)
* a dependency installer (type: DependencyInstaller)
* a dependency un-installer (type: DependencyUninstaller)

## Element structure

| Property           | Value type | Required  | Description                                                                                                                                                                                                                                    |
| ------------------ | ---------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id                 | string     | Read-only | Unique identifier of this element                                                                                                                                                                                                              |
| type               | int        | Yes       | <p>The type of application:<br><strong>1</strong>: Game server<br><strong>2</strong>: Utility<br><strong>3</strong> DependencyInstaller<br><strong>4</strong> DependencyUninstaller</p>                                                        |
| managementProtocol | int        | Yes       | <p>The <a href="/pages/5MwSWh9WpscsN38DQ11M">management protocol</a> supported by the application (only applies when Application Type is Game server):<br><strong>0</strong>: None<br><strong>1</strong>: A2S<br><strong>2</strong>: Arcus</p> |
| name               | string     | Yes       | The name of the application                                                                                                                                                                                                                    |
| description        | string     | No        | A description of the application                                                                                                                                                                                                               |
| websiteUrl         | string     | No        | A website URL for the application                                                                                                                                                                                                              |
| developerName      | string     | No        | The developer of the application                                                                                                                                                                                                               |
| publisherName      | string     | No        | The publisher of the application                                                                                                                                                                                                               |
| stopDefaultOsGroup | int        | no        | The default operating system group being used for the stop method, WINDOWS = 1, LINUX = 2. If you have a Windows and Linux ApplicationBuild you can overwrite on the AplicationBuild level. The default operating system is Linux              |
| stopMethod         | int        | no        | The stop method that will be used on restart or destroy of an application instance. The default is hard kill                                                                                                                                   |
| stopTimeout        | int        | no        | The timeout that will be used on restart or destroy of an application instance. The default is 0 (no timeout)                                                                                                                                  |
| createdAt          | int        | Read-only | A unix timestamp of when this element was created                                                                                                                                                                                              |
| inUse              | int        | Read-only | If the application currently in use or not                                                                                                                                                                                                     |

Table 1: Application element structure

## Relations

Every program we deploy with the platform will be defined by an Application element. The Application element is at the top of the application related hierarchy. It gives everything related to an Application an identity:

* [ApplicationBuild](/game-hosting/elements/application/applicationbuild.md)
* [ApplicationInstance](/game-hosting/elements/application/applicationinstance.md)

Additional application specific properties are provided through the [ApplicationProperty](/game-hosting/elements/application/applicationproperty.md) element. An Application can have zero or more ApplicationProperty elements.

* [ApplicationProperty](/game-hosting/elements/application/applicationproperty.md)

See also:

* [Application management process](/game-hosting/processes/application-management.md)
* [Application element relations](/game-hosting/elements/application/element-relations.md)

## Restrictions

You can define any number of Applications for your account. There is no limit.

## Related topics

* [Orchestrator Overview](/game-hosting/game-integration/orchestratoroverview.md)
* [Game Deployment Quick Start Guide](/game-hosting/overview/quick-start.md)
* [i3d.net API documentation](https://www.i3d.net/docs/api/v3/all/)


---

# 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/elements/application.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.
