Search for items

Is there any way to search for an item? Or any plans to implement such a feature? I know there’s API endpoints to get item information by ID, but I need to get possible item IDs based on some text.

It appears the main purpose of the items endpoint is to provide details for item IDs returned by other endpoint such as character equipment.

Currently the only way to do what you want is to iterate over the item endpoint and build your own database containing all items so you can search them for any field later.

As an alternative you can use https://wow-query.dev if you want. Those are the same data from the API and you can download its entire database here (Postgres) or use the interface to export the data to CSV (json format coming soon).

I’ll update the database soon to include any new data from the latest patch.

This is a little disappointing.

I can understand not returning an entire database’s worth of items … but I’m a little surprised you cannot get a list of profession items for example.

I thought that was what the game data item apis were leading towards.

class index, class, subclass, item (i thought you’d be able to walk down the list until you could filter to a reasonable amount of items)

Edit: I am trying to obtain a list of items/recipes by profession … without the need to first “know” the item/recipe ids.

Item classes and subclasses are useful for using with the auction house data.

Unfortunately the new item API is still very limited compared to the old community one. I guess you could iterate over the old community endpoint like I do for wow-query and find some profession information (not reagents tho). However this endpoint will be removed on March 16.

As you can see in the example below the old community returned the source of an item pointing to the spell (sourceId) used to create the item. However there is no way to tell which profession unlocks the spell.

{
  "id": 21841,
  ...
  "name": "Netherweave Bag",
  "itemSource": {
    "sourceId": 26746,
    "sourceType": "CREATED_BY_SPELL"
  }
  ...
}

However I noticed some changes in the new endpoint returned data, despite the the fact it is listed as “AVAILABLE” on the API migration status, it seems it is still receiving some updates, specifically for tooltip information. I would wait for the end of the migration to see what will actually be available.

I guess what I’m trying to do is dynamically build up a list of all profession items and their required materials.

The current apis still feel quite manual to do this with. I need to know all of the items up front (and their item ids). It’s essentially quite a bit of data entry before I can then start doing what I want programatically.

Even then it isn’t super clear how to walk down to the “recipe” and required mats.

In an ideal world I could call some profession api to get a list of items by profession/expac. Then from there get the crafting materials per item as a seperate set of calls (or however many calls it takes).

I’m with you that a search endpoint would be really useful, which could take a string and return any items that match/partially match that string.

For example:

GET /data/wow/item/search?q=Netherweave%20Bag&strict=0

Returning something like…

{
    "items": [
        {
            "id": 21841,
            "name": "Netherweave Bag",
            "item": {
                "key": {
                    "href": "https://eu.api.blizzard.com/data/wow/item/21841?namespace=static-8.3.0_32861-eu"
                },
                "id": 21841
            },
            "media": {
                "key": {
                    "href": "https://eu.api.blizzard.com/data/wow/media/item/21841?namespace=static-8.3.0_32861-eu"
                },
                "id": 21841
            },
            "item_class": {
                "key": {
                    "href": "https://eu.api.blizzard.com/data/wow/item-class/1?namespace=static-8.3.0_32861-eu"
                },
                "name": "Container",
                "id": 1
            },
            "item_subclass": {
                "key": {
                    "href": "https://eu.api.blizzard.com/data/wow/item-class/1/item-subclass/0?namespace=static-8.3.0_32861-eu"
                },
                "name": "Bag",
                "id": 0
            }
        },
        {
            "id": 21843,
            "name": "Imbued Netherweave Bag",
            "item": {
                "key": {
                    "href": "https://eu.api.blizzard.com/data/wow/item/21843?namespace=static-8.3.0_32861-eu"
                },
                "id": 21843
            },
            "media": {
                "key": {
                    "href": "https://eu.api.blizzard.com/data/wow/media/item/21843?namespace=static-8.3.0_32861-eu"
                },
                "id": 21843
            },
            "item_class": {
                "key": {
                    "href": "https://eu.api.blizzard.com/data/wow/item-class/1?namespace=static-8.3.0_32861-eu"
                },
                "name": "Container",
                "id": 1
            },
            "item_subclass": {
                "key": {
                    "href": "https://eu.api.blizzard.com/data/wow/item-class/1/item-subclass/0?namespace=static-8.3.0_32861-eu"
                },
                "name": "Bag",
                "id": 0
            }
        },
        {
            "id": 21893,
            "name": "Pattern: Imbued Netherweave Bag",
            "item": {
                "key": {
                    "href": "https://eu.api.blizzard.com/data/wow/item/21893?namespace=static-8.3.0_32861-eu"
                },
                "id": 21893
            },
            "media": {
                "key": {
                    "href": "https://eu.api.blizzard.com/data/wow/media/item/21893?namespace=static-8.3.0_32861-eu"
                },
                "id": 21893
            },
            "item_class": {
                "key": {
                    "href": "https://eu.api.blizzard.com/data/wow/item-class/1?namespace=static-8.3.0_32861-eu"
                },
                "name": "Container",
                "id": 1
            },
            "item_subclass": {
                "key": {
                    "href": "https://eu.api.blizzard.com/data/wow/item-class/1/item-subclass/0?namespace=static-8.3.0_32861-eu"
                },
                "name": "Bag",
                "id": 0
            }
        }
    ]
}

At the moment, to get around this issue, I’m having to keep a copy of the entire item database, by making thousands of requests to the Item endpoint every TTL and checking each potential ID number. It would save overheads on both ends if a simple search query could be done instead.