> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.wynncraft.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.wynncraft.com/_mcp/server.

# List item database entries

GET https://api.wynncraft.com/v3/item/database

This endpoint is cached for 1 hour in the SHARED cache source.   See [Caching](/welcome#caching).  This endpoint belongs to the ITEMS rate-limit bucket. See [Throttling and Rate Limits](/welcome#throttling-and-rate-limits).

Items use the [API Markup parser](/welcome#api-markup-parser) for Major IDs.

`fullResult` bypasses pagination and returns the `results` object for all objects at once.

This endpoint uses the generic pagination response format.

Enum values in these docs are based on the item metadata available on April 23, 2026. New item content can add or change values over time.

Reference: https://docs.wynncraft.com/modules/item-recipe/list-items

## Request

### Query parameters

- `page` (integer, optional)
- `fullResult` (enum, optional) — Presence-based flag that expands responses. Send it without a value as `?fullResult`. Using `?fullResult=true` or `?fullResult=false` is not accepted.
  - Allowed values: ``

## Response

### 200

Paginated item list.

- `controller` (PaginationController, required)
- `results` (list of Item, required)

## Types

### PaginationController

- `count` (integer, required)
- `current_count` (integer, required)
- `pages` (integer, required)
- `prev` (integer, required, nullable)
- `current` (integer, required)
- `next` (integer, required, nullable)

### Item

- `displayName` (string, required)
- `internalName` (string, required)
- `type` (enum, required)
  - Allowed values: `weapon`, `armour`, `accessory`, `charm`, `tome`, `tool`, `material`, `ingredient`
- `subType` (enum, required)
  - Allowed values: `bow`, `dagger`, `relik`, `spear`, `wand`, `boots`, `chestplate`, `helmet`, `leggings`, `bracelet`, `necklace`, `ring`, `guildTome`, `armourTome`, `expertiseTome`, `marathonTome`, `mysticismTome`, `lootrunTome`, `weaponTome`, `axe`, `rod`, `pickaxe`, `scythe`, `farming`, `fishing`, `mining`, `woodcutting`
- `icon` (ItemIcon, required)
- `emblem` (enum, required)
  - Allowed values: `diamond5`, `diamond_5`, `diamond1`, `diamond_1`, `diamond4`, `diamond_4`, `diamond6`, `diamond_6`, `diamond3`, `diamond_3`, `diamond2`, `diamond_2`, `shield5`, `shield_5`, `shield1`, `shield_1`, `shield4`, `shield_4`, `shield6`, `shield_6`, `shield3`, `shield_3`, `shield2`, `shield_2`, `shield`, `sticker5`, `sticker_5`, `sticker1`, `sticker_1`, `sticker4`, `sticker_4`, `sticker6`, `sticker_6`, `sticker3`, `sticker_3`, `sticker2`, `sticker_2`, `square5`, `square_5`, `square4`, `square_4`, `square6`, `square_6`, `square`
- `tier` (enum, required)
  - Allowed values: `rare`, `unique`, `normal`, `legendary`, `mythic`, `fabled`, `TIER3`, `TIER2`, `TIER1`, `TIER0`
- `attackSpeed` (enum, optional)
  - Allowed values: `slow`, `fast`, `superSlow`, `normal`, `verySlow`, `veryFast`, `superFast`
- `averageDps` (double, optional)
- `restriction` (string, optional)
- `dropRestriction` (string, optional)
- `gathering` (enum, optional)
  - Allowed values: `farming`, `fishing`, `mining`, `woodcutting`
- `set` (enum, optional)
  - Allowed values: `boundless`, `corrupted`, `firemoss`, `bony`, `spore`, `petal`, `scrap`, `beachside`, `pigman`, `toxic`, `regal`, `vexing`, `voidglass`, `cosmicFoundations`, `snail`, `thanosLegionnaire`, `uth`, `cosmic`, `leaf`, `tribal`, `saint's`, `visceral`, `ascension`, `ultramarine`, `taigaElk`, `clock`, `nii`, `moirai`, `bleeding`, `liffmail`, `elf`, `slime`, `goblin`, `ghostly`, `horse`, `snow`, `skien's`, `thunderRelic`, `morph`, `black`, `earthRelic`, `waterRelic`, `relic`, `outlaw`, `silverfish`, `nether`, `fireRelic`, `airRelic`, `adventurer`, `darkened`, `bovine`, `bear`, `kaerynn`, `villager`, `spider`, `conqueredSkies`, `synchCore`, `flashfire`, `jester`, `forgottenChronicles`, `wynnterfest2016`, `bandit's`, `desert`, `blackCatalyst`, `constellation`, `hallowynn2016`
- `elements` (list of string, optional)
- `requirements` (ItemRequirements, optional)
- `majorIds` (map from string to string, optional)
- `powderSlots` (integer, optional)
- `lore` (string, optional)
- `identifications` (map from string to IdentificationValue, optional)
- `base` (map from string to IdentificationValue, optional)

### ItemIcon

- `value` (AbilityIconValue, required)
- `format` (string, required)

### ItemRequirements

- `level` (integer, optional)
- `classRequirement` (string, optional)
- `strength` (integer, optional)
- `dexterity` (integer, optional)
- `intelligence` (integer, optional)
- `defence` (integer, optional)
- `agility` (integer, optional)

### IdentificationValue

### AbilityIconValue

- `id` (string, required)
- `name` (string, required)
- `customModelData` (AbilityIconValueCustomModelData, required)

### IdentificationValue1

- `min` (integer, required)
- `raw` (integer, required)
- `max` (integer, required)

### AbilityIconValueCustomModelData

- `rangeDispatch` (list of integer, required)

## Examples

**Response**

```json
{
  "controller": {
    "count": 3,
    "current_count": 1,
    "pages": 3,
    "prev": 1,
    "current": 2,
    "next": 3
  },
  "results": [
    {
      "displayName": "Idol",
      "internalName": "Idol",
      "type": "weapon",
      "subType": "spear",
      "icon": {
        "value": {
          "id": "minecraft:potion",
          "name": "spear.water3",
          "customModelData": {
            "rangeDispatch": [
              3024
            ]
          }
        },
        "format": "attribute"
      },
      "emblem": "diamond_5",
      "tier": "mythic",
      "attackSpeed": "normal",
      "averageDps": 533,
      "restriction": "none",
      "dropRestriction": "normal",
      "elements": [
        "water"
      ],
      "requirements": {
        "level": 95,
        "classRequirement": "warrior",
        "intelligence": 120
      },
      "majorIds": {
        "Tidal Drift": "<span class='font-ascii' style='color:#AAAAAA'>Flying Kick will instead send you forwards. This effect is limited to once per Charge cast.</span>"
      },
      "powderSlots": 3,
      "lore": "<span class='font-ascii' style='color:#AAAAAA'>Intricate carvings and images, almost like that of a totem pole, cover the shaft of this marvelous trident, dredged up from the Seavale Reef. Foreign magics heighten the senses of its user in battle, but also instills a longing for the ocean. Many have succumbed to this urge and drowned themselves.</span>",
      "identifications": {
        "manaRegen": {
          "min": 3,
          "raw": 10,
          "max": 13
        },
        "reflection": {
          "min": 9,
          "raw": 30,
          "max": 39
        },
        "waterDefence": {
          "min": 5,
          "raw": 15,
          "max": 20
        },
        "rawIntelligence": 26,
        "rawSpellDamage": {
          "min": 79,
          "raw": 264,
          "max": 343
        },
        "raw2ndSpellCost": {
          "min": -15,
          "raw": -50,
          "max": -65
        }
      },
      "base": {
        "baseWaterDamage": {
          "min": 220,
          "raw": 220,
          "max": 300
        }
      }
    }
  ]
}
```

**SDK Code**

```python Paginated item response with a single item
import requests

url = "https://api.wynncraft.com/v3/item/database"

response = requests.get(url)

print(response.json())
```

```javascript Paginated item response with a single item
const url = 'https://api.wynncraft.com/v3/item/database';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Paginated item response with a single item
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.wynncraft.com/v3/item/database"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Paginated item response with a single item
require 'uri'
require 'net/http'

url = URI("https://api.wynncraft.com/v3/item/database")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java Paginated item response with a single item
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.wynncraft.com/v3/item/database")
  .asString();
```

```php Paginated item response with a single item
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.wynncraft.com/v3/item/database');

echo $response->getBody();
```

```csharp Paginated item response with a single item
using RestSharp;

var client = new RestClient("https://api.wynncraft.com/v3/item/database");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift Paginated item response with a single item
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.wynncraft.com/v3/item/database")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```