---
title: "Create listing"
method: POST
path: "/seller/listings"
tags: ["seller-listings"]
---

# Create listing

`POST /seller/listings`

Create a new listing for the authenticated seller.

Use this endpoint for single listing creation when you already know the target item URN and listing attributes.

Authentication and ownership:
- The caller must authenticate as a seller account.
- The seller must be active; inactive or missing seller records are rejected.

Input validation:
- `urn` must resolve to an existing catalog item.
- `gradingProvider`, `gradingScore`, and `gradingNumber` must be supplied together or omitted together.
- `notes` is optional, normalized by the API, and limited to 255 characters.
- `reference` is optional seller/integration metadata, normalized by the API, and limited to 255 characters.
- Empty-string `reference` values are treated as a clear request (`null` in storage).

Listing validity rules:
- Listings priced at `>= 2000` (lowest-denomination integer) require an attachment photo.
- Listings that include grading metadata also require an attachment photo.
- When a photo is required, the listing is created with `valid: false` and becomes valid after a qualifying attachment is finalized.

Side effects:
- Emits `LISTING_CREATED` to seller webhooks.
- Invalidates seller stats cache tags.
- Records listing analytics events for internal reporting.

Returns the complete listing resource with seller, item, attachment metadata, and the normalized `reference` value.

## Request body

- ListingInput — Data required to create a listing
  - `condition` string, required — Product condition
  - `price` integer, required — Price in pence
  - `quantity` integer — Total quantity for this listings
  - `language` string, required — Languages of the card
  - `variants` string[] — Variants of the listed card
  - `comment` string, nullable — Seller's comment about the listing
  - `gradingProvider` string, nullable — Provider responsible for grading the card
  - `gradingScore` string, nullable — Score assigned to the card by the grading provider
  - `gradingNumber` string, nullable — Certificate or registration number issued by the grading provider
  - `hidden` boolean — True when the listing is hidden from buyers
  - `urn` string, required — URN of the product being listed
  - `notes` string, nullable — Private notes for the seller such as SKUs or storage locations
  - `reference` string, nullable — Third-party integration reference for this listing

## Response `201`

Listing created

- object
  - `id` string, required
  - `sellerId` string, required
  - `condition` string, required — Product condition
  - `price` integer, required — Price in pence
  - `quantity` integer — Total quantity for this listings
  - `available` integer — Total available for this listing
  - `language` string, required — Languages of the card
  - `variants` string[] — Variants of the listed card
  - `comment` string, nullable — Seller's comment about the listing
  - `gradingProvider` string, nullable — Provider responsible for grading the card
  - `gradingScore` string, nullable — Score assigned to the card by the grading provider
  - `gradingNumber` string, nullable — Certificate or registration number issued by the grading provider
  - `createdAt` union, required — Timestamp when the listing was created
    - string
    - string, date-time
  - `updatedAt` union, required — Timestamp when the listing was last updated
    - string
    - string, date-time
  - `item` union, required — Details of the item being listed
    - object
      - `urn` string, required
      - `type` 'card', required
      - `game` 'Pokemon', required
      - `title` string, required
      - `name` string, required
      - `rarity` string, required
      - `number` string, nullable
      - `description` string
      - `set` object, required
        - `name` string, required
        - `size` number
        - `urn` string, required
        - `counts` object, required
          - `printed` number
          - `total` number
        - `symbol` object
          - `url` string, required
        - `released` string
        - `references` string[], required
      - `series` object, required
        - `name` string, required
        - `urn` string, required
      - `images` object[], required
        - `urn` string, required
        - `illustrator` string
        - `orientation` 'portrait' | 'landscape', required
        - `url` string, uri, required
      - `alternatives` string[], required
      - `metadata` object[], required
        - `name` string, required
        - `value` union
          - string
          - string[]
          - number
          - number[]
        - `detail` union
          - unknown
          - unknown[]
            - unknown
      - `price` integer
      - `available` integer — Total available for this listing
      - `quantity` integer — Total quantity available
      - `min` object
        - `price` integer, nullable, required — Price of the cheapest listing in pence
      - `max` object
        - `price` integer, nullable, required — Price of the most expensive listing in pence
    - object
      - `urn` string, required
      - `type` 'product', required
      - `game` 'Pokemon', required
      - `title` string, required
      - `name` string, required
      - `classification` 'CARD', required
      - `count` number, required
      - `description` string
      - `images` object[], required
        - `urn` string, required
        - `illustrator` string
        - `orientation` 'portrait' | 'landscape', required
        - `url` string, uri, required
      - `series` object, required
        - `name` string, required
        - `urn` string, required
      - `set` object, required
        - `name` string, required
        - `size` number
        - `urn` string, required
        - `counts` object, required
          - `printed` number
          - `total` number
        - `symbol` object
          - `url` string, required
        - `released` string
        - `references` string[], required
      - `metadata` object[], required
        - `name` string, required
        - `value` union
          - string
          - string[]
          - number
          - number[]
        - `detail` union
          - unknown
          - unknown[]
            - unknown
      - `price` integer
      - `available` integer — Total available for this listing
      - `quantity` integer — Total quantity available
      - `min` object
        - `price` integer, nullable, required — Price of the cheapest listing in pence
      - `max` object
        - `price` integer, nullable, required — Price of the most expensive listing in pence
  - `seller` object, required — Seller of the listing
    - `id` string, required — Unique identifier for the user
    - `username` string, required — Public username of the user
    - `joined` string, date-time — ISO timestamp when the user account was created
    - `avatar` string, uri — URL to the user's avatar image
    - `cover` string, uri — URL to the user's cover image
    - `profile` string — Information about the user
    - `reviews` integer, required — Total number of reviews the user has received
    - `rating` number, required — Confidence-based rating between 0 and 5
    - `score` number, required — Average rating between 0 and 5
    - `sales` integer, required — Total number of sales the user has made
    - `purchases` integer, required — Total number of purchases the user has made
  - `locked` boolean, required — True when the listing has active item holds
  - `attachments` ListingAttachment[] — Image attachments for the listing
    - `id` string, required — Image identifier
    - `url` string, uri, required — Public URL for the attachment
  - `valid` boolean, required — True when the listing meets all requirements
  - `hidden` boolean, required — True when the listing is hidden from buyers
  - `notes` string, nullable — Private notes for the seller such as SKUs or storage locations
  - `reference` string, nullable — Third-party integration reference for this listing

## Other responses

- `400` — Seller not onboarded

---

[API](https://skmtc.net/managem/apis/managem-api.md) · [All operations](https://skmtc.net/managem/apis/managem-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/managem/managem-api/versions/e8d78a3a2e8b/schema)
