---
title: "Search recipe database"
method: POST
path: "/item/recipe/search"
tags: ["item"]
---

# Search recipe database

`POST /item/recipe/search`

<Note>
This endpoint is cached for <Badge intent="error" minimal>1 hour</Badge> in the <Badge intent="success" minimal>SHARED</Badge> cache source.   See [Caching](/welcome#caching). <Indent></Indent> This endpoint belongs to the <Badge intent="warning" minimal>ITEMS</Badge> rate-limit bucket. See [Throttling and Rate Limits](/welcome#throttling-and-rate-limits).
</Note>
<Info>
`full_result` bypasses pagination and returns the full raw array instead of the paginated object.
</Info>

For range filters, an integer checks whether that value falls inside the stored recipe range. A one-value list behaves the same way. A two-value list matches any recipe whose stored range overlaps the requested range.

## Query parameters

- `page` integer
- `full_result` ''

## Request body

- RecipeSearchRequest
  - `query` union
    - string
    - string[]
  - `xp` union
    - integer
    - integer[]
  - `type` union
    - string
    - string[]
  - `skill` union
    - string
    - string[]
  - `materials` union
    - string
    - string[]
  - `level` union
    - integer
    - integer[]
  - `durability` union
    - integer
    - integer[]
  - `healthOrDamage` union
    - integer
    - integer[]
  - `duration` union
    - integer
    - integer[]
  - `basicDuration` union
    - integer
    - integer[]

## Response `200`

Paginated search results.

- PaginatedRecipeResponse
  - `controller` PaginationController, required
    - `count` integer, required
    - `current_count` integer, required
    - `pages` integer, required
    - `prev` integer, nullable, required
    - `current` integer, required
    - `next` integer, nullable, required
  - `results` Recipe[], required
    - `internalName` string, required
    - `type` string, required
    - `skill` string, required
    - `level` IntegerRange, required
      - `minimum` integer, required
      - `maximum` integer, required
    - `durability` IntegerRange
      - `minimum` integer, required
      - `maximum` integer, required
    - `materials` RecipeMaterial[], required
      - `item` string, required
      - `amount` integer, required
    - `healthOrDamage` IntegerRange, required
      - `minimum` integer, required
      - `maximum` integer, required
    - `duration` IntegerRange
      - `minimum` integer, required
      - `maximum` integer, required
    - `basicDuration` IntegerRange
      - `minimum` integer, required
      - `maximum` integer, required
    - `sprites` object, required
    - `xp` integer, required

## Other responses

- `400` — Invalid request payload.
- `404` — No recipes matched the request.

---

[API](https://skmtc.dev/wynncraft/apis/modules.md) · [All operations](https://skmtc.dev/wynncraft/apis/modules/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/wynncraft/modules/revisions/6c6214729eae/schema)
