---
title: "Build a criteria offer"
method: POST
path: "/api/v2/offers/build"
tags: ["Offer Endpoints"]
---

# Build a criteria offer

`POST /api/v2/offers/build`

Build a portion of a criteria offer including the consideration item, zone, and zone hash needed to post an offer. For trait offers on supported collections, the identifierOrCriteria in the returned consideration will be '0' (no merkle root computation needed). For other collections, a computed merkle root is returned. When identifierOrCriteria is '0', the encodedTokenIds field is informational only and not required for constructing the onchain order.

## Request body

- BuildOfferRequest
  - `offerer` string, required
  - `quantity` integer, required
  - `criteria` CriteriaObject, required
    - `collection` CollectionObject, required
      - `slug` string, required
    - `trait` TraitObject
      - `type` string, required
      - `value` string, required
    - `traits` TraitObject[]
      - `type` string, required
      - `value` string, required
    - `numericTraits` NumericTraitCriteria[]
      - `type` string, required
      - `min` number, double
      - `max` number, double
  - `protocol_address` string, required
  - `offer_protection_enabled` boolean, required

## Response `200`

Criteria offer built successfully

## Other responses

- `400` — For error reasons, review the response data.
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `500` — Internal server error. Please open a support ticket so OpenSea can investigate.

---

[API](https://skmtc.dev/opensea/apis/opensea-api.md) · [All operations](https://skmtc.dev/opensea/apis/opensea-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/opensea/opensea-api/revisions/acee8835f2ae/schema)
