> 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.0.0"},"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 (RTB, Transport Case, Tray Mount, DevKit)","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: * `Propeller 1st Generation` * `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.\nThe possible values are:\n* `US_REMOTE_ID_STANDARD` * `UNKNOWN`\n"}}},"paths":{"/v1/system/info":{"get":{"tags":["System"],"summary":"Get system information","description":"Returns system information.","responses":{"200":{"description":"","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.0.0"},"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"},"rtb_lids_state":{"$ref":"#/components/schemas/RTBLidsState"},"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"}}},"RTBLidsState":{"type":"string","description":"Rooftop Box (RTB) lids state\n","enum":["Closed","Opening","Opened","Closing"]},"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. * `OK` - The check completed successfully. * `FAILED` - The check failed. * `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 sw update to fix).\n* `ERROR_HARDWARE_VARIANT_UNSUITABLE` - Hardware variant and regulatory\n  mode configured are incompatible (needs hardware changes to\n  fix).\n* `ERROR_TX_FAILED` - Tx reports failure, maybe HW/SW defect (restart\n  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\n  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\n  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\n  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\n  condition.\n","type":"string"}}},"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"}}}}}}}}}
```


---

# 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.
