LooksRare Seaport API

Endpoints specific to the LooksRare Seaport integration, enabling Seaport-compatible orders and events while earning LooksRare rewards.

OpenAPI Specification

looksrare-seaport-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: LooksRare Public Collections Seaport API
  description: LooksRare is a community-first NFT marketplace built on Ethereum. The public REST API exposes read and write access to orders, events (listings, sales, offers, cancellations), token metadata, and collection data across Ethereum Mainnet (https://api.looksrare.org) and the Sepolia testnet (https://api-sepolia.looksrare.org). A mainnet API key is required for write operations such as order creation.
  version: 2.0.0
  contact:
    url: https://looksrare.dev
  license:
    name: Attribution Required
    url: https://looksrare.dev
  x-logo:
    url: https://looksrare.org/favicon.ico
servers:
- url: https://api.looksrare.org/api
  description: Ethereum Mainnet
- url: https://api-sepolia.looksrare.org/api
  description: Sepolia Testnet
security: []
tags:
- name: Seaport
  description: Endpoints specific to the LooksRare Seaport integration, enabling Seaport-compatible orders and events while earning LooksRare rewards.
paths:
  /v2/orders/seaport:
    get:
      operationId: getSeaportOrders
      summary: Get LooksRare Seaport orders
      description: Retrieve maker orders placed through the LooksRare Seaport integration. These orders earn LooksRare rewards and gems while using the Seaport protocol.
      tags:
      - Seaport
      parameters:
      - name: collection
        in: query
        description: Filter by collection contract address.
        schema:
          $ref: '#/components/schemas/EthereumAddress'
      - name: signer
        in: query
        description: Filter by the Ethereum address of the order signer.
        schema:
          $ref: '#/components/schemas/EthereumAddress'
      - name: pagination[first]
        in: query
        description: Number of results per page (default 20, max 150).
        schema:
          type: integer
          minimum: 1
          maximum: 150
          default: 20
      - name: pagination[cursor]
        in: query
        description: Cursor for pagination.
        schema:
          type: string
      responses:
        '200':
          description: List of Seaport orders.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: createSeaportOrder
      summary: Create a LooksRare Seaport order
      description: Submit a signed Seaport order into the LooksRare order book. Allows listing and bidding through the Seaport protocol while still earning LooksRare rewards and gems.
      tags:
      - Seaport
      security:
      - ApiKeyHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Signed Seaport order payload.
      responses:
        '201':
          description: Seaport order successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderCreateResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v2/events/seaport:
    get:
      operationId: getSeaportEvents
      summary: Get LooksRare Seaport events
      description: Retrieve marketplace events for orders executed through the LooksRare Seaport integration.
      tags:
      - Seaport
      parameters:
      - name: collection
        in: query
        description: Filter events by collection contract address.
        schema:
          $ref: '#/components/schemas/EthereumAddress'
      - name: itemId
        in: query
        description: Filter by specific token ID.
        schema:
          type: string
      - name: pagination[first]
        in: query
        description: Number of results per page (default 20, max 150).
        schema:
          type: integer
          minimum: 1
          maximum: 150
          default: 20
      - name: pagination[cursor]
        in: query
        description: Cursor for pagination.
        schema:
          type: string
      responses:
        '200':
          description: List of Seaport marketplace events.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v2/collections/seaport:
    get:
      operationId: checkCollectionSeaportEligibility
      summary: Check Seaport eligibility for a collection
      description: Check whether a specific NFT collection is eligible for trading via the LooksRare Seaport integration.
      tags:
      - Seaport
      parameters:
      - name: collection
        in: query
        required: true
        description: Collection contract address to check.
        schema:
          $ref: '#/components/schemas/EthereumAddress'
      responses:
        '200':
          description: Seaport eligibility status for the collection.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionSeaportResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    Token:
      type: object
      description: NFT token metadata as indexed by LooksRare.
      properties:
        id:
          type: string
          description: Token ID within the collection.
        collection:
          $ref: '#/components/schemas/Collection'
        name:
          type: string
          description: Token name.
          nullable: true
        description:
          type: string
          description: Token description.
          nullable: true
        image:
          type: string
          format: uri
          description: Token image URI.
          nullable: true
        animationURI:
          type: string
          format: uri
          description: Token animation or video URI.
          nullable: true
        attributes:
          type: array
          description: On-chain attribute traits for this token.
          items:
            type: object
            properties:
              traitType:
                type: string
              value:
                type: string
              displayType:
                type: string
                nullable: true
    CollectionSeaportResponse:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
          nullable: true
        data:
          type: object
          properties:
            eligible:
              type: boolean
              description: Whether this collection is eligible for trading via LooksRare Seaport.
    Event:
      type: object
      description: A marketplace activity event on LooksRare.
      properties:
        id:
          type: string
          description: Unique event identifier.
        type:
          $ref: '#/components/schemas/EventType'
        collection:
          $ref: '#/components/schemas/Collection'
        token:
          $ref: '#/components/schemas/Token'
        from:
          $ref: '#/components/schemas/EthereumAddress'
        to:
          $ref: '#/components/schemas/EthereumAddress'
          nullable: true
        price:
          type: string
          description: Sale or offer price in wei.
          nullable: true
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the event was recorded.
        hash:
          type: string
          description: On-chain transaction hash for settled events.
          nullable: true
    Collection:
      type: object
      description: NFT collection metadata as indexed by LooksRare.
      properties:
        address:
          $ref: '#/components/schemas/EthereumAddress'
        name:
          type: string
          description: Collection name.
        description:
          type: string
          description: Collection description.
          nullable: true
        symbol:
          type: string
          description: Collection token symbol.
          nullable: true
        type:
          $ref: '#/components/schemas/CollectionType'
        logoURI:
          type: string
          format: uri
          description: URI for the collection logo image.
          nullable: true
        bannerURI:
          type: string
          format: uri
          description: URI for the collection banner image.
          nullable: true
        totalSupply:
          type: integer
          description: Total token supply in the collection.
          nullable: true
        verified:
          type: boolean
          description: Whether the collection is verified by LooksRare.
    OrderStatus:
      type: string
      enum:
      - VALID
      - CANCELLED
      - EXECUTED
      - EXPIRED
      description: Status of an order in the LooksRare order book.
    OrderListResponse:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
          nullable: true
        data:
          type: array
          items:
            $ref: '#/components/schemas/MakerOrder'
    EventListResponse:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
          nullable: true
        data:
          type: array
          items:
            $ref: '#/components/schemas/Event'
    OrderCreateResponse:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
          nullable: true
        data:
          $ref: '#/components/schemas/MakerOrder'
    MakerOrder:
      type: object
      description: A maker order (ask or bid) stored in the LooksRare V2 off-chain order book.
      properties:
        id:
          type: string
          description: Unique order identifier.
        hash:
          type: string
          description: Order hash (keccak256).
        quoteType:
          $ref: '#/components/schemas/QuoteType'
        globalNonce:
          type: string
          description: User's global bid or ask nonce at time of order creation.
        subsetNonce:
          type: string
          description: Subset nonce for grouping arbitrary orders.
        orderNonce:
          type: string
          description: Specific nonce for this order.
        strategyId:
          $ref: '#/components/schemas/StrategyId'
        collectionType:
          $ref: '#/components/schemas/CollectionType'
        collection:
          $ref: '#/components/schemas/EthereumAddress'
        currency:
          $ref: '#/components/schemas/EthereumAddress'
        signer:
          $ref: '#/components/schemas/EthereumAddress'
        startTime:
          type: integer
          description: Order validity start timestamp (Unix seconds).
        endTime:
          type: integer
          description: Order validity end timestamp (Unix seconds).
        price:
          type: string
          description: Order price in wei.
        itemIds:
          type: array
          items:
            type: string
          description: List of token IDs included in the order.
        amounts:
          type: array
          items:
            type: string
          description: Amounts per item ID. ERC-721 always 1; ERC-1155 max 100.
        additionalParameters:
          type: string
          description: ABI-encoded additional parameters, or '0x' if unused.
        signature:
          type: string
          description: ECDSA signature (65 bytes, 0x-prefixed).
        status:
          $ref: '#/components/schemas/OrderStatus'
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the order was created.
        merkleRoot:
          type: string
          nullable: true
          description: Merkle root for collection-wide orders.
        merkleProof:
          type: array
          nullable: true
          items:
            type: object
          description: Merkle proof nodes for collection-wide orders.
    StrategyId:
      type: integer
      enum:
      - 0
      - 1
      description: Maker strategy. 0 = Standard (specific token), 1 = Collection (any token in collection).
    EthereumAddress:
      type: string
      pattern: ^0x[a-fA-F0-9]{40}$
      description: A valid Ethereum contract or wallet address (42 characters including 0x prefix).
      example: '0x60e4d786628fea6478f785a6d7e704777c86a7c6'
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        message:
          type: string
          description: Human-readable error message.
    EventType:
      type: string
      enum:
      - LIST
      - SALE
      - OFFER
      - CANCEL_LIST
      - CANCEL_OFFER
      description: Type of marketplace event.
    CollectionType:
      type: integer
      enum:
      - 0
      - 1
      description: NFT collection standard. 0 = ERC-721, 1 = ERC-1155.
    QuoteType:
      type: integer
      enum:
      - 0
      - 1
      description: Order quote type. 0 = Bid (offer to buy), 1 = Ask (listing to sell).
  responses:
    BadRequest:
      description: Invalid request parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    RateLimitExceeded:
      description: Rate limit exceeded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    ApiKeyHeader:
      type: apiKey
      in: header
      name: X-Looks-Api-Key
      description: API key required for mainnet write operations (order creation). Not needed for read endpoints or testnet.
externalDocs:
  description: LooksRare Developer Documentation
  url: https://looksrare.dev