> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.wynncraft.com/modules/search/global-search/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.wynncraft.com/_mcp/server.
# Search across public resources
GET https://api.wynncraft.com/v3/search/{query}
This endpoint is cached for 10 minutes in the SHARED cache source. See [Caching](/welcome#caching). This endpoint belongs to the SHARED rate-limit bucket. See [Throttling and Rate Limits](/welcome#throttling-and-rate-limits).
Item results use the same structure as item responses.
Player results are limited to 20 entries and guild results are limited to 50 entries.
Reference: https://docs.wynncraft.com/modules/search/global-search
## Request
### Path parameters
- `query` (string, required)
### Query parameters
- `only` (string, optional) — Restrict global search to one result category.
## Response
### 200
Grouped search results.
- `query` (string, required)
- `players` (map from string to string, optional)
- `guilds` (map from string to SearchGuildResult, optional)
- `items` (list of Item, optional)
- `guildsPrefix` (map from string to SearchGuildResult, optional)
- `territories` (map from string to SearchTerritoryResult, optional)
- `discoveries` (map from string to SearchDiscoveryResult, optional)
## Errors
### 400 Bad Request Error
Malformed search query.
- `error` (string, required)
- `detail` (string, required)
- `code` (integer, required)
### 404 Not Found Error
No matches were found in any requested category.
- `error` (string, required)
- `detail` (string, required)
- `code` (integer, required)
## Types
### SearchGuildResult
- `name` (string, required)
- `prefix` (string, required)
### 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)
### SearchTerritoryResult
- `start` (list of any, required)
- `end` (list of any, required)
### SearchDiscoveryResult
- `start` (list of any, required)
- `end` (list of any, required)
### 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
{
"query": "Bo",
"players": {
"98bc2236-ada5-4039-b560-8aaa4cc50384": "Nepmia"
},
"guilds": {
"adb5f0b5-5289-439c-9293-a29d220e7152": {
"name": "Spectral Cabbage",
"prefix": "SPC"
}
},
"items": [
{
"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": "Flying Kick will instead send you forwards. This effect is limited to once per Charge cast."
},
"powderSlots": 3,
"lore": "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.",
"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
}
}
}
],
"guildsPrefix": {
"adb5f0b5-5289-439c-9293-a29d220e7152": {
"name": "Spectral Cabbage",
"prefix": "SPC"
}
},
"territories": {
"Ragni": {
"start": [
-955,
-1415
],
"end": [
-756,
-1748
]
}
},
"discoveries": {
"Ragni": {
"start": [
-955,
-1415
],
"end": [
-756,
-1748
]
}
}
}
```
**SDK Code**
```python Grouped search results across resource types
import requests
url = "https://api.wynncraft.com/v3/search/query"
response = requests.get(url)
print(response.json())
```
```javascript Grouped search results across resource types
const url = 'https://api.wynncraft.com/v3/search/query';
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 Grouped search results across resource types
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.wynncraft.com/v3/search/query"
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 Grouped search results across resource types
require 'uri'
require 'net/http'
url = URI("https://api.wynncraft.com/v3/search/query")
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 Grouped search results across resource types
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;
HttpResponse response = Unirest.get("https://api.wynncraft.com/v3/search/query")
.asString();
```
```php Grouped search results across resource types
request('GET', 'https://api.wynncraft.com/v3/search/query');
echo $response->getBody();
```
```csharp Grouped search results across resource types
using RestSharp;
var client = new RestClient("https://api.wynncraft.com/v3/search/query");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```
```swift Grouped search results across resource types
import Foundation
let request = NSMutableURLRequest(url: NSURL(string: "https://api.wynncraft.com/v3/search/query")! 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()
```