---
title: "List contracts logs across many contracts on the network"
method: GET
path: "/api/v1/contracts/results/logs"
tags: ["contracts"]
---

# List contracts logs across many contracts on the network

`GET /api/v1/contracts/results/logs`

Search the logs across many contracts with multiple contract calls. Chained logs are not
included but can be found by calling `/api/v1/contracts/{contractId}/results/{timestamp}`
or `/api/v1/contracts/results/{transactionId}`. When searching by topic a timestamp parameter must be supplied
and span a time range of at most seven days.

## Ordering
The order is governed by the combination of timestamp and index values. If the index param is omitted, the order is determined by the timestamp only.

Note: The default order for this API is currently DESC

## Filtering
When filtering there are some restrictions enforced to ensure correctness and scalability.

**The table below defines the restrictions and support for the endpoint**

| Query Param   | Comparison Operator | Support | Description           | Example |
| ------------- | ------------------- | ------- | --------------------- | ------- |
| index         | eq                  | Y       | Single occurrence only. Requires the presence of timestamp | ?index=X |
|               | ne                  | N       | | |
|               | lt(e)               | Y       | Single occurrence only. Requires the presence of timestamp | ?index=lte:X |
|               | gt(e)               | Y       | Single occurrence only. Requires the presence of timestamp | ?index=gte:X |
| timestamp     | eq                  | Y       | Single occurrence only. | ?timestamp=Y
|               | ne                  | N       | | |
|               | lt(e)               | Y       | Single occurrence only. Optional second timestamp **gt(e)** | ?timestamp=lte:Y
|               | gt(e)               | Y       | Single occurrence only. Optional second timestamp **lt(e)** | ?timestamp=gte:Y


Both filters must be a single occurrence of **gt(e)** or **lt(e)** which provide a lower and or upper boundary for search.

## Query parameters

- `index` string
- `limit` integer
- `order` 'asc' | 'desc'
- `timestamp` string[]
- `topic0` string[]
- `topic1` string[]
- `topic2` string[]
- `topic3` string[]
- `transaction.hash` string

## Response `200`

OK

- ContractLogsResponse
  - `logs` ContractLogs — unresolved $ref
  - `links` Links
    - `next` string, nullable

## Other responses

- `400` — Invalid parameter

## Changes

- **2025-08-08** (v1) `db389f03b097` — 8 breaking
  - the response property `_status/messages/items/data` became nullable for the status `400`
  - the response property `_status/messages/items/detail` became nullable for the status `400`
  - the response property `links/next` became nullable for the status `200`
  - the response property `logs/items/allOf[#/components/schemas/ContractResultLog]/bloom/allOf[#/components/schemas/Bloom]/` became nullable for the status `200`
  - …4 more

[Change history](https://skmtc.dev/hiero-ledger/apis/mirror-node-rest-api/changes/api/v1/contracts/results/logs/get.md)

---

[API](https://skmtc.dev/hiero-ledger/apis/mirror-node-rest-api.md) · [All operations](https://skmtc.dev/hiero-ledger/apis/mirror-node-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/hiero-ledger/mirror-node-rest-api/revisions/ee602751b3f7/schema)
