---
title: "Fulfill a listing using a different token"
method: POST
path: "/api/v2/listings/cross_chain_fulfillment_data"
tags: ["Listing Endpoints"]
---

# Fulfill a listing using a different token

`POST /api/v2/listings/cross_chain_fulfillment_data`

Get fulfillment data to buy one or more listings using a token on a different chain or a different token on the same chain. Supports cross-chain purchases and same-chain token swaps via the Relay protocol. Returns an ordered list of transactions to execute.

## Request body

- CrossChainFulfillmentRequest — Request to fulfill one or more listings using a payment token on a different chain or a different token on the same chain
  - `listings` ListingObject[], required — One or more listings to fulfill
    - `hash` string, required
    - `chain` string, required
    - `protocol_address` string, required
  - `fulfiller` FulfillerObject, required
    - `address` string, required
  - `payment` CrossChainPaymentToken, required — Payment token to use for a cross-chain transaction
    - `chain` string, required — Chain of the payment token (e.g. 'base', 'ethereum')
    - `token_address` string, required — Contract address of the payment token (use 0x0000000000000000000000000000000000000000 for native token)
  - `recipient` string — Optional recipient address for the purchased items

## Response `200`

Cross-chain fulfillment data retrieved successfully

## Other responses

- `400` — The request is invalid. Possible reasons: listing not found, listing not valid, listing is not a listing order, or no fulfillment actions could be generated.
- `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)
