> ## Documentation Index
> Fetch the complete documentation index at: https://docs.duckybot.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Fetch status information

> Fetch status information about Ducky and the API.

<ResponseExample>
  ```json 200 theme={null}
  {
    "code": 200,
    "message": "The Ducky API is online.",
    "data": {
      "version": {
        "name": "v1.6.0 Stable",
        "branch": "master",
        "commit": {
          "sha": "de867566b229eafcc2fd5afa56ace951c8fa28a5",
          "message": "api: improved version response",
          "author": "Troptop",
          "timestamp": 1770255688
        }
      },
      "resources": {
        "memory": 1612.26
      },
      "health": {
        "api": {
          "latency": {
            "response": null,
            "process": 84.956884384155
          }
        },
        "bot": {
          "shards": {
            "0": {
              "heartbeatSent": 1770256245,
              "heartbeatAcknowledged": 1770256245,
              "latency": 105.699607
            },
            "1": {
              "heartbeatSent": 1770256279,
              "heartbeatAcknowledged": 1770256279,
              "latency": 124.80735
            },
            // ...
          },
          "uptime": {
            "readable": "1 hour, 58 minutes, 45 seconds",
            "epoch": 1770249158
          }
        }
      }
    }
  }
  ```

  ```json 200 (with Sent-Epoch) theme={null}
  {
    "code": 200,
    "message": "The Ducky API is online.",
    "data": {
      "version": {
        "name": "v1.6.0 Stable",
        "branch": "master",
        "commit": {
          "sha": "de867566b229eafcc2fd5afa56ace951c8fa28a5",
          "message": "api: improved version response",
          "author": "Troptop",
          "timestamp": 1770255688
        }
      },
      "resources": {
        "memory": 1612.26
      },
      "health": {
        "api": {
          "latency": {
            "response": 62.794923782349,
            "process": 84.956884384155
          }
        },
        "bot": {
          "shards": {
            "0": {
              "heartbeatSent": 1770256245,
              "heartbeatAcknowledged": 1770256245,
              "latency": 105.699607
            },
            "1": {
              "heartbeatSent": 1770256279,
              "heartbeatAcknowledged": 1770256279,
              "latency": 124.80735
            },
            // ...
          },
          "uptime": {
            "readable": "1 hour, 58 minutes, 45 seconds",
            "epoch": 1770249158
          }
        }
      }
    }
  }
  ```
</ResponseExample>

### Response Data

<ResponseField name="version" type="object">
  The current running version of Ducky.

  <Expandable title="properties">
    <ResponseField name="name" type="string">
      The official version name.
    </ResponseField>

    <ResponseField name="branch" type="string">
      The current running branch.
    </ResponseField>

    <ResponseField name="commit" type="object">
      The most recent commit.

      <Expandable title="properties">
        <ResponseField name="sha" type="string">
          The commit hash.
        </ResponseField>

        <ResponseField name="message" type="string">
          The commit message.
        </ResponseField>

        <ResponseField name="author" type="string">
          The commit author's name.
        </ResponseField>

        <ResponseField name="timestamp" type="number">
          An epoch timestamp (in seconds) representing when the commit was pushed.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="resources" type="object">
  The amount of resources Ducky is currently using.

  <Expandable title="properties">
    <ResponseField name="memory" type="number">
      The amount of memory currently being used by Ducky in megabytes.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="health" type="object">
  Health information including latency, uptime, and shard statuses.

  <Expandable title="properties">
    <ResponseField name="api" type="object">
      API health information

      <Expandable title="properties">
        <ResponseField name="latency" type="object">
          API latency information

          <Expandable title="properties">
            <ResponseField name="response" type="number">
              The time taken for the API to respond in milliseconds. Only calculated if header `Sent-Epoch` is provided in the request.
            </ResponseField>

            <ResponseField name="process" type="number">
              The time taken to process the request in milliseconds.
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="bot" type="object">
      Bot health information

      <Expandable title="properties">
        <ResponseField name="shards" type="object">
          A map of shard health information where the key is the shard ID.

          <Expandable title="example shard">
            <ResponseField name="heartbeatSent" type="number">
              An epoch timestamp (in seconds) representing when the last heartbeat was sent to Discord.
            </ResponseField>

            <ResponseField name="heartbeatAcknowledged" type="number">
              An epoch timestamp (in seconds) representing when the most recent heartbeat was acknowledged by Discord.
            </ResponseField>

            <ResponseField name="latency" type="number">
              The latency of the shard in milliseconds.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="uptime" type="object">
          Bot uptime information

          <Expandable title="properties">
            <ResponseField name="readable" type="string">
              A human-readable string representing the uptime of the bot.
            </ResponseField>

            <ResponseField name="epoch" type="number">
              An epoch timestamp (in seconds) representing when the bot was started.
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>
