> For the complete documentation index, see [llms.txt](https://developer.fotokite.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.fotokite.com/fotokite-api/system.md).

# System

## Get system information

> Returns system information.

```json
{"openapi":"3.0.4","info":{"title":"Fotokite API","version":"1.1.2"},"servers":[{"url":"http://192.168.2.100:3128/api","description":"API service running on the system"},{"url":"http://{hostname_or_ip}/api","description":"Unencrypted API anywhere, for development use","variables":{"hostname_or_ip":{"default":"localhost:3128"}}},{"url":"https://{hostname_or_ip}/api","description":"Encrypted API accessible from outside the Sigma network","variables":{"hostname_or_ip":{"default":"fotokite-sigma.local"}}},{"url":"https://{gsname}.sigma.fotokite-system.com/api","description":"Hostname used for TLS certificates. The API is not reachable there, unless a local DNS override is set.","variables":{"gsname":{"default":"G2628RH"}}}],"security":[{"TokenAuth":["read"]}],"components":{"securitySchemes":{"TokenAuth":{"description":"Plugin authentication using Bearer token. For more details, see [Fotokite API Documentation](https://developer.fotokite.com/~/changes/46/getting-started#authentication).\n","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"http://192.168.2.100:3128/api/v1/auth/token/request","scopes":{"read":"Grants access to retrieve system data and information.","control":"Allows sending commands to control the system.","can_override":"Allows to make `handoff/control/override` call to override current controlling client.","experimental":"Enables access to experimental API features.","internal":"Fotokite-internal functions. Not for third-party use."}}}}},"schemas":{"SystemInfo":{"type":"object","description":"Represents system information","required":["gs_name","gs_mac","installation","model","timezone","timezone_name_short","timezone_offset","boards","software_channel","software_version"],"properties":{"gs_name":{"description":"Identity of the Ground Station","type":"string"},"gs_mac":{"description":"The MAC address of the router WAN port","type":"string"},"kite_name":{"description":"Name of the Kite","type":"string"},"rtb_name":{"description":"Name of the Rooftop Box (RTB)","type":"string"},"installation":{"description":"Type of installation. Possible values:\n  * `Transport Case`\n  * `Tray Mount`\n  * `Rooftop Box`\n  * `Dev Kit`\n  * `Bare Ground Station`\n","type":"string"},"model":{"description":"Model/generation of the Fotokite system","type":"string"},"propeller_model":{"description":"Model of the propellers used in the system. Possible values:\n  * `Propeller 1st Generation`\n  * `Propeller 2nd Generation`\n","type":"string"},"timezone":{"description":"Timezone of the Fotokite system","type":"string"},"timezone_name_short":{"description":"Short name of the timezone","type":"string"},"timezone_offset":{"description":"Offset of the timezone","type":"string"},"boards":{"type":"array","description":"List of system boards","items":{"$ref":"#/components/schemas/SystemBoard"}},"software_channel":{"type":"string","description":"System software channel"},"software_version":{"type":"string","description":"System software release version number"},"drone_id":{"$ref":"#/components/schemas/DroneIdInfo"}}},"SystemBoard":{"type":"object","description":"Represents a system board","required":["board","id"],"properties":{"board":{"type":"string","description":"Available system board names"},"id":{"description":"Unique identifier of a system board (e.g. \"001111211136511134311FFF\")\n","type":"string"}}},"DroneIdInfo":{"type":"object","description":"Static, system-level DroneID information.\n","required":["regulatory_mode","serial"],"properties":{"regulatory_mode":{"$ref":"#/components/schemas/RegulatoryMode"},"serial":{"type":"string","description":"ANSI/CTA-2063-A compliant serial number used for DroneID purposes"}}},"RegulatoryMode":{"type":"string","description":"DroneID regulation variant that the system needs to comply with. The possible values are:\n  * `DISABLED` - DroneID is disabled, no compliance provided.\n  * `US_REMOTE_ID_STANDARD` - The system is compliant with the US Remote ID Standard.\n  * `UNKNOWN` - Regulatory mode is unknown.\n"}}},"paths":{"/v1/system/info":{"get":{"tags":["System"],"summary":"Get system information","description":"Returns system information.","responses":{"200":{"description":"Success execution","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemInfo"}}}}}}}}}
```

## Get system state

> Returns frequently changing system information.<br>

```json
{"openapi":"3.0.4","info":{"title":"Fotokite API","version":"1.1.2"},"servers":[{"url":"http://192.168.2.100:3128/api","description":"API service running on the system"},{"url":"http://{hostname_or_ip}/api","description":"Unencrypted API anywhere, for development use","variables":{"hostname_or_ip":{"default":"localhost:3128"}}},{"url":"https://{hostname_or_ip}/api","description":"Encrypted API accessible from outside the Sigma network","variables":{"hostname_or_ip":{"default":"fotokite-sigma.local"}}},{"url":"https://{gsname}.sigma.fotokite-system.com/api","description":"Hostname used for TLS certificates. The API is not reachable there, unless a local DNS override is set.","variables":{"gsname":{"default":"G2628RH"}}}],"security":[{"TokenAuth":["read"]}],"components":{"securitySchemes":{"TokenAuth":{"description":"Plugin authentication using Bearer token. For more details, see [Fotokite API Documentation](https://developer.fotokite.com/~/changes/46/getting-started#authentication).\n","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"http://192.168.2.100:3128/api/v1/auth/token/request","scopes":{"read":"Grants access to retrieve system data and information.","control":"Allows sending commands to control the system.","can_override":"Allows to make `handoff/control/override` call to override current controlling client.","experimental":"Enables access to experimental API features.","internal":"Fotokite-internal functions. Not for third-party use."}}}}},"schemas":{"SystemState":{"type":"object","description":"Represents frequently changing system information\n","properties":{"kite_battery_level":{"description":"Kite backup battery charge level in percents [0..+100]","type":"number","minimum":0,"maximum":100},"gs_battery_level":{"description":"Ground Station backup battery charge level in percents [0..+100]","type":"number","minimum":0,"maximum":100},"gs_input_voltage":{"description":"Ground Station input voltage (volts)","type":"number"},"gs_gps_has_fix":{"description":"Whether the data reported by the Ground Station GPS is useable","type":"boolean"},"gs_gps_lat":{"description":"Latitude reported by Ground Station GPS [-90..+90] (degrees)","type":"number","minimum":-90,"exclusiveMinimum":true,"maximum":90},"gs_gps_lon":{"description":"Longitude reported by Ground Station GPS (-180..+180] (degrees)","type":"number","minimum":-180,"exclusiveMinimum":true,"maximum":180},"gs_gps_elevation":{"description":"Elevation reported by Ground Station GPS (meters)","type":"number"},"gs_gps_accuracy":{"description":"Ground Station GPS accuracy in meters","type":"number","minimum":0},"drone_id":{"$ref":"#/components/schemas/DroneIdStatus"},"rtb_lids_state":{"$ref":"#/components/schemas/RTBLidsState"},"rtb_external_safety_land_button_state":{"description":"State of the external safety land button connected to the Rooftop Box","type":"string","enum":["Pressed","NotPressed"]},"rtb_parking_brake_state":{"description":"State of the parking brake on the Rooftop Box. When the parking brake is engaged, the system will not take off.","type":"string","enum":["Engaged","Disengaged"]}}},"DroneIdStatus":{"type":"object","description":"The current status of the system","required":["status","error_codes"],"properties":{"status":{"$ref":"#/components/schemas/DroneIdCheckStatus"},"error_codes":{"type":"array","items":{"$ref":"#/components/schemas/CurrentDroneIDErrorCode"},"description":"List of error codes that are currently applicable."}}},"DroneIdCheckStatus":{"type":"string","description":"Status of the DroneID check.\n  * `CHECKING` - The check is currently running.\n  * `OK` - The check completed successfully.\n  * `FAILED` - The check failed.\n  * `EMERGENCY` - The system is in an emergency state.\n"},"CurrentDroneIDErrorCode":{"description":"Code that describes what is wrong with DroneID. Values prefixed with `ERROR_` are hard errors that prevent the preflight check and cause DroneID to be non-compliant, while values prefixed with `WARNING_` indicate potential issues (data stale, no gps fix).\nThe non-compliant state should be indicated in the monitoring application.\nThe possible values are:\n  * `ERROR_UNKNOWN_REGULATORY_MODE` - Unknown regulatory mode (needs\n    config change or software update to fix).\n  * `ERROR_HARDWARE_VARIANT_UNSUITABLE` - Hardware variant and regulatory\n    mode configured are incompatible (needs hardware changes to fix).\n  * `ERROR_TX_FAILED` - Tx reports failure, maybe HW/SW defect (restart might fix it).\n  * `ERROR_TX_WRONG_WIFI_REGION` - Transmission is happening, but with the\n    wrong region settings (fix by changing wifi region).\n  * `ERROR_TX_WRONG_TRANSMISSION_POWER` - Transmission is happening, but\n    with higher or lower power than allowed (fix by changing wifi settings/region).\n  * `ERROR_TX_NOT_TRANSMITTING` - Tx(s) that should be transmitting, are\n    not (probably hardware malfunction if this persists).\n  * `ERROR_TX_TRANSMITTING` - At least one Tx is transmitting even though\n    it should not be (bug in tx software, try restarting).\n  * `ERROR_TX_STALE` - Tx is transmitting old data (might be intermittent).\n  * `ERROR_FW_INCOMPATIBLE` - The installed firmware doesn't support the\n    DroneID preflight check.\n  * `ERROR_NO_OPERATOR` - No operator connected that is compatible with DroneID.\n  * `ERROR_DATA_STALE` - We recently didn't receive required data (from\n    the kite, or, in the future, tablet). In this case we pretend that the\n    data is recent but put this alert here.\n  * `WARNING_DATA_INACCURATE` - No GPS fix, this is not a failure condition.\n","type":"string"},"RTBLidsState":{"type":"string","description":"Rooftop Box (RTB) lids state\n","enum":["Closed","Opening","Opened","Closing"]}}},"paths":{"/v1/system/state":{"get":{"tags":["System"],"summary":"Get system state","description":"Returns frequently changing system information.\n","responses":{"200":{"description":"Success execution","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemState"}}}}}}}}}
```

## Open Rooftop Box lids

> Opens the Rooftop Box (RTB) lids. It is not necessary to call this endpoint before takeoff, as the system will automatically open the lids when needed. This endpoint is intended for maintenance purposes.<br>

```json
{"openapi":"3.0.4","info":{"title":"Fotokite API","version":"1.1.2"},"servers":[{"url":"http://192.168.2.100:3128/api","description":"API service running on the system"},{"url":"http://{hostname_or_ip}/api","description":"Unencrypted API anywhere, for development use","variables":{"hostname_or_ip":{"default":"localhost:3128"}}},{"url":"https://{hostname_or_ip}/api","description":"Encrypted API accessible from outside the Sigma network","variables":{"hostname_or_ip":{"default":"fotokite-sigma.local"}}},{"url":"https://{gsname}.sigma.fotokite-system.com/api","description":"Hostname used for TLS certificates. The API is not reachable there, unless a local DNS override is set.","variables":{"gsname":{"default":"G2628RH"}}}],"security":[{"TokenAuth":["control"]}],"components":{"securitySchemes":{"TokenAuth":{"description":"Plugin authentication using Bearer token. For more details, see [Fotokite API Documentation](https://developer.fotokite.com/~/changes/46/getting-started#authentication).\n","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"http://192.168.2.100:3128/api/v1/auth/token/request","scopes":{"read":"Grants access to retrieve system data and information.","control":"Allows sending commands to control the system.","can_override":"Allows to make `handoff/control/override` call to override current controlling client.","experimental":"Enables access to experimental API features.","internal":"Fotokite-internal functions. Not for third-party use."}}}}},"responses":{"CommandSuccess":{"description":"The command was sent successfully"},"WrongSystemSetup":{"description":"The system is not set up to work as Rooftop Box, so the operation cannot be performed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ControlCommandBlocked":{"description":"Control is not allowed because somebody else is controlling the System.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowedInCurrentState":{"description":"The operation is not allowed in current state. Example: Rotation is not allowed during landing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"The service is not ready yet. Usually this means that service didn't gather all the necessary information from subsystems.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","description":"A generic error object.","required":["code","message"],"properties":{"code":{"description":"Unique error code.","type":"string"},"message":{"description":"User readable message of the error","type":"string"}}}}},"paths":{"/v1/system/control/open_rtb_lids":{"post":{"tags":["System"],"summary":"Open Rooftop Box lids","description":"Opens the Rooftop Box (RTB) lids. It is not necessary to call this endpoint before takeoff, as the system will automatically open the lids when needed. This endpoint is intended for maintenance purposes.\n","responses":{"202":{"$ref":"#/components/responses/CommandSuccess"},"400":{"$ref":"#/components/responses/WrongSystemSetup"},"403":{"$ref":"#/components/responses/ControlCommandBlocked"},"409":{"$ref":"#/components/responses/NotAllowedInCurrentState"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}}}}
```

## Close Rooftop Box lids

> Closes the Rooftop Box (RTB) lids. It is not necessary to call this endpoint after landing, as the system will automatically close the lids when needed. This endpoint is intended for maintenance purposes.<br>

```json
{"openapi":"3.0.4","info":{"title":"Fotokite API","version":"1.1.2"},"servers":[{"url":"http://192.168.2.100:3128/api","description":"API service running on the system"},{"url":"http://{hostname_or_ip}/api","description":"Unencrypted API anywhere, for development use","variables":{"hostname_or_ip":{"default":"localhost:3128"}}},{"url":"https://{hostname_or_ip}/api","description":"Encrypted API accessible from outside the Sigma network","variables":{"hostname_or_ip":{"default":"fotokite-sigma.local"}}},{"url":"https://{gsname}.sigma.fotokite-system.com/api","description":"Hostname used for TLS certificates. The API is not reachable there, unless a local DNS override is set.","variables":{"gsname":{"default":"G2628RH"}}}],"security":[{"TokenAuth":["control"]}],"components":{"securitySchemes":{"TokenAuth":{"description":"Plugin authentication using Bearer token. For more details, see [Fotokite API Documentation](https://developer.fotokite.com/~/changes/46/getting-started#authentication).\n","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"http://192.168.2.100:3128/api/v1/auth/token/request","scopes":{"read":"Grants access to retrieve system data and information.","control":"Allows sending commands to control the system.","can_override":"Allows to make `handoff/control/override` call to override current controlling client.","experimental":"Enables access to experimental API features.","internal":"Fotokite-internal functions. Not for third-party use."}}}}},"responses":{"CommandSuccess":{"description":"The command was sent successfully"},"WrongSystemSetup":{"description":"The system is not set up to work as Rooftop Box, so the operation cannot be performed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ControlCommandBlocked":{"description":"Control is not allowed because somebody else is controlling the System.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowedInCurrentState":{"description":"The operation is not allowed in current state. Example: Rotation is not allowed during landing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"The service is not ready yet. Usually this means that service didn't gather all the necessary information from subsystems.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","description":"A generic error object.","required":["code","message"],"properties":{"code":{"description":"Unique error code.","type":"string"},"message":{"description":"User readable message of the error","type":"string"}}}}},"paths":{"/v1/system/control/close_rtb_lids":{"post":{"tags":["System"],"summary":"Close Rooftop Box lids","description":"Closes the Rooftop Box (RTB) lids. It is not necessary to call this endpoint after landing, as the system will automatically close the lids when needed. This endpoint is intended for maintenance purposes.\n","responses":{"202":{"$ref":"#/components/responses/CommandSuccess"},"400":{"$ref":"#/components/responses/WrongSystemSetup"},"403":{"$ref":"#/components/responses/ControlCommandBlocked"},"409":{"$ref":"#/components/responses/NotAllowedInCurrentState"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://developer.fotokite.com/fotokite-api/system.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
