# IChestAPI
> Main interface for interacting with the Chest loot table system.
`gg.lode.chestapi.IChestAPI`
---
## Signature
```java
public interface IChestAPI
```
---
## Methods
| Method | Return Type | Description |
|--------|-------------|-------------|
| `getLootTableManager()` | `ILootTableManager` | Returns the [[ILootTableManager]] instance. |
| `getVersion()` | `String` | Returns the plugin version string. |
| `reloadLootTables()` | `boolean` | Reloads all loot tables from disk. Returns `true` on success. |
| `getAvailableLootTables()` | `Set<String>` | Returns all available loot table names. |
| `lootTableExists(String name)` | `boolean` | Checks if a loot table exists. |
| `populateInventory(String lootTableName, Inventory inventory)` | `boolean` | Populates an inventory using default item count (3–6). |
| `populateInventoryFromMerged(List<String> names, Inventory inventory)` | `boolean` | Populates an inventory from multiple merged loot tables (3–6 items). |
| `populateInventoryFromMerged(List<String> names, Inventory inventory, int min, int max)` | `boolean` | Populates an inventory from multiple merged loot tables with custom item count. |
| `getRandomItem(String lootTableName)` | `ItemStack` | Returns a single random item, or `null` if the table doesn't exist. |
| `getRandomItems(String lootTableName, int count)` | `List<ItemStack>` | Returns multiple random items from the specified loot table. |
---
## Usage
```java
IChestAPI api = ChestAPI.getApi();
// Populate a chest inventory
api.populateInventory("dungeon_loot", chestInventory);
// Merge multiple tables
api.populateInventoryFromMerged(List.of("common", "rare"), inventory, 2, 8);
// Get a random item
ItemStack item = api.getRandomItem("dungeon_loot");
```
---
## Related Pages
- [[ChestAPI]]
- [[ILootTableManager]]
- [[ILootTable]]
- [[ILootTableItem]]