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

# List Logs

Returns a paginated list of OCPP communication logs for a specific charger. Supports filtering by method, status, destination, date range, and sorting.

<ParamField path="charger" type="string" required>
  The UUID of the charger.
</ParamField>

<ParamField query="filter[method]" type="string[]">
  Filter by OCPP method (e.g., `Heartbeat`, `StartTransaction`, `MeterValues`). Accepts an array or a comma-separated list of values.
</ParamField>

<ParamField query="filter[status]" type="string[]">
  Filter by log status. One or more of `pending`, `done`, or `failed`. Accepts an array or a comma-separated list of values.
</ParamField>

<ParamField query="filter[destination]" type="string[]">
  Filter by message destination. One or more of `centralsystem` or `charger`. Accepts an array or a comma-separated list of values.
</ParamField>

<ParamField query="filter[hide_insignificant]" type="string">
  Hide high-volume, low-significance logs (`Heartbeat`, `MeterValues`, `SetChargingProfile`, `SecurityEventNotification`, `GetConfiguration`, and `ChangeConfiguration`). Use `1` to hide or `0` to show.
</ParamField>

<ParamField query="filter[date_from]" type="string">
  Filter logs from this date. Format: `Y-m-d` or `Y-m-d H:i:s`.
</ParamField>

<ParamField query="filter[date_to]" type="string">
  Filter logs until this date. Must be after or equal to `filter[date_from]`. Format: `Y-m-d` or `Y-m-d H:i:s`.
</ParamField>

<ParamField query="sort" type="string">
  Sort field. Use `created_at` for ascending or `-created_at` for descending (default).
</ParamField>

<ParamField query="page" type="integer">
  Page number for pagination.
</ParamField>

## Response

The response is a paginated payload (`simplePaginate`, 25 per page). Log entries are returned in the `data` array, alongside the standard pagination fields (`current_page`, `per_page`, `first_page_url`, `prev_page_url`, `next_page_url`, `from`, `to`, `path`) and the additional `filter_options` field described below.

<ResponseField name="data" type="object[]">
  The list of log entries. Each entry has the following fields.

  <Expandable title="log entry">
    <ResponseField name="id" type="integer">
      The log entry ID.
    </ResponseField>

    <ResponseField name="charger_id" type="integer">
      The ID of the charger.
    </ResponseField>

    <ResponseField name="status" type="string">
      The status of the OCPP message. One of `pending`, `done`, or `failed`. May be `null`.
    </ResponseField>

    <ResponseField name="version" type="string">
      The OCPP protocol version used.
    </ResponseField>

    <ResponseField name="method" type="string">
      The OCPP method name (e.g., `Heartbeat`, `StartTransaction`, `StatusNotification`). May be `null`.
    </ResponseField>

    <ResponseField name="destination" type="string">
      The message destination (`centralsystem` or `charger`). May be `null`.
    </ResponseField>

    <ResponseField name="params" type="object">
      The parameters sent with the OCPP message. Structure varies per OCPP action (e.g., `BootNotification`, `StartTransaction`).
    </ResponseField>

    <ResponseField name="result" type="object">
      The result or response of the OCPP message. Structure varies per OCPP action. May be `null` for pending messages.
    </ResponseField>

    <ResponseField name="created_at" type="string">
      ISO 8601 timestamp of when the log entry was created.
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      ISO 8601 timestamp of when the log entry was last updated.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="filter_options" type="object">
  Available filter options.

  <Expandable title="filter_options">
    <ResponseField name="methods" type="string[]">
      A list of all available OCPP method names that can be used with the `filter[method]` parameter.
    </ResponseField>
  </Expandable>
</ResponseField>
