---
title: "Get offer creation actions"
method: POST
path: "/api/v2/offers/actions"
tags: ["Offer Endpoints"]
---

# Get offer creation actions

`POST /api/v2/offers/actions`

## Request

- Base URL: `https://api.opensea.io`
- URL: `https://api.opensea.io/api/v2/offers/actions`
- Auth: API key in header `x-api-key`
- TypeScript: <https://skmtc.dev/opensea/apis/opensea-api/docs/api/v2/offers/actions/post.ts> (a function with typed inputs; its response is checked against the schema)

Returns the blockchain actions needed to offer on an NFT, the offer-side counterpart of the listing actions endpoint. On EVM chains these are payment approvals followed by a Seaport order to sign, which the signature endpoints then accept. On Solana the actions instead carry an unsigned bid transaction to sign and submit onchain; there is no order to post back to OpenSea afterwards.

## Request body

- CreateOfferActionsRequest: Request to get offer creation actions
  - `address` string, required: Maker (buyer) wallet address
  - `end_time` string, nullable: Offer end time in ISO 8601 format. Defaults to 30 days from start.
  - `item` CreateOfferActionItem, required: An item to make an offer on
    - `chain` string, required: Chain of the item (e.g. 'ethereum', 'base')
    - `contract` string, required: Contract address of the NFT
    - `token_id` string, required: Token ID of the NFT
  - `price` ListingPriceInput, required: Price for a listing item
    - `amount` string, required: Price amount in the currency's unit (e.g. '5.0' for 5 ETH)
    - `currency` string, required: Contract address of the payment currency (use 0x0000000000000000000000000000000000000000 for native token)
  - `quantity` integer, required: Quantity to offer on (use 1 for ERC-721)
  - `start_time` string, nullable: Offer start time in ISO 8601 format. Defaults to now.
  - `use_creator_fee` boolean, nullable: Whether to include optional creator fees. Defaults to false.

## Response `200`

Offer creation actions retrieved successfully

- CreateOfferActionsResponse: Response containing blockchain actions to execute for offer creation
  - `steps` JsonNode[], required: Ordered list of blockchain actions to execute. May include approval actions (e.g. setApprovalForAll) and a createListingsAction containing the Seaport order to sign. Serialized using proto3 JSON format — fields with default values (empty string, 0, false) may be omitted.
    - unknown

## Other responses

- `400`: The request is invalid. Possible reasons: invalid addresses, item not found, invalid currency, or price/quantity not positive.
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `500`: Internal server error. Please open a support ticket so OpenSea can investigate.

## Changes

- **2026-11-03** `2c7935d84f90`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/opensea/apis/opensea-api/changes/api/v2/offers/actions/post.md)

---

[API](https://skmtc.dev/opensea/apis/opensea-api.md) - [All operations](https://skmtc.dev/opensea/apis/opensea-api/llms.txt) - [OpenAPI document](https://skmtc.dev/opensea/apis/opensea-api/revisions/2c7935d84f90?raw)
