Removed

Removing deprecated REST API endpoints and response fields

We're cleaning up two deprecated REST API endpoints along with several response fields that have been marked deprecated for a while. If you're already on the recommended replacements, nothing changes for you. If you're still on any of the removed surfaces, this post tells you what to migrate to.

Endpoints removed

  • GET /api/v2/orders/{chain}/{protocol}/offers -> use GET /api/v2/offers/collection/{slug}/all
  • GET /api/v2/orders/{chain}/{protocol}/listings -> use GET /api/v2/listings/collection/{slug}/all

The collection-based endpoints return a cleaner response shape with structured price objects and are sorted by best price by default. For individual order lookups, use GET /api/v2/orders/chain/{chain}/protocol/{protocol_address}/{order_hash}. To query by creation time, use the events API at GET /api/v2/events.

Response shape changes

POST /orders/{chain}/{protocol}/offers

The response no longer includes the legacy order wrapper field. The endpoint now returns an Offer directly. If you were already reading the offer field, just unwrap one level.

Before:

{ "order": { ... legacy shape ... }, "offer": { ... } }

After:

{ ... offer fields ... }

POST /orders/{chain}/{protocol}/listings

Same change. The legacy order wrapper is gone and the endpoint returns a Listing directly. Read the response as a Listing instead of response.listing.

Offer criteria.trait removed

The deprecated single-trait trait field on the offer criteria response object has been removed. Use the traits array instead - it works for both single-trait and multi-trait offers.

Before:

"criteria": { "trait": { "trait_type": "Background", "value": "Blue" } }

After:

"criteria": { "traits": [{ "trait_type": "Background", "value": "Blue" }] }

Collection stats fields removed

We've removed several fields from collection stats responses that were always returning 0. These were placeholders that never got real values, so dropping them shouldn't change anything meaningful in your integration.

From IntervalStat:

  • volume_diff
  • volume_change
  • sales_diff
  • average_price

From Total:

  • market_cap
  • average_price

Migration checklist

  • If you call /orders/{chain}/{protocol}/offers or /orders/{chain}/{protocol}/listings, switch to the collection-based endpoints listed above
  • If you read the order field from create offer/listing responses, switch to reading the response directly as Offer or Listing
  • If you read criteria.trait, switch to criteria.traits[0]
  • If you read any of the always-zero stats fields, remove those references

All removed surfaces were previously marked deprecated = true in our OpenAPI schema.