> ## Documentation Index
> Fetch the complete documentation index at: https://docs.seminode.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Listing

> Listings convey specific information about a material — supply or demand.

A Listing represents either an offer to supply a material or a request to source one. Listings are published to a company's **Network Node**, where connected trading partners can discover and query them.

**Kind:** `31001`

<Note>
  Kind `31001` is a **replaceable addressable event**. This means a listing can be updated in place — when you republish with the same `d` tag, the node replaces the previous version rather than creating a duplicate. This is how listing prices, quantities, and availability are kept current.
</Note>

**Content:**

```yaml theme={null}
{
  "material_no": "<string - Material Number (Required)>",
  "mfr": "<string - Manufacturer (Required)>",
  "qty": <int - Quantity (Required)>,
  "timing": {
    "lead_time": <string - Lead Time (Optional), supply listings>,
    "required_date": <int64 - Required Date as Unix timestamp (Optional), demand listings>,
    "expiry": <int64 - Listing expiry as Unix timestamp (Optional)>
  },
  "unit_price": <float64 - Unit Price (Required)>,
  "internal_no": "<string - Internal Number (Optional)>",
  "type": "<string - 'supply' or 'demand' (Required)>",
  "company": "<string - Publish Company Name (Optional)>",
  "contact": {
    "methods": ["<string - Contact method>"],
    "reply_url": "<string - Contact reply URL>"
  },
  "image_url": "<string – Image URL (Optional)>",
  "attributes": {
    "coo": "<string - Country of Origin (Optional)>",
    "eccn": "<string - Export Control Classification Number (Optional)>",
    "moq": <int - Minimum Order Quantity (Optional)>,
    "mpq": <int - Minimum Pack Quantity (Optional)>,
    "currency": "<string - ISO 4217 Currency Code (Optional)>",
    "lot_no": "<string - Lot Number (Optional)>",
    "custom_attributes": {
      "<string>": "<any - User-defined attributes>"
    },
  },
  "encrypted": {
    "payload": {
      "ciphertext": "<string - Encrypted JSON object (type: object, Optional)>"
    }
  },
  "schema_version": "<string - listing schema version>"
}
```

**Key fields:**

* **`type`** — Either `"supply"` (you have stock to sell) or `"demand"` (you need to source material). This determines which timing fields are relevant: supply listings use `lead_time`, demand listings use `required_date`.
* **`contact.reply_url`** — The WebSocket URL of your Inbox Node. Trading partners use this to know where to send quotes in response to this listing.
* **`encrypted.payload`** — An optional encrypted object for fields you want visible only to specific partners, not the broader network.

**Listing Tags**

```json theme={null}
[
  ["n", "material_no"],
  ["m", "manufacturer name"],
  ["y", "'supply' or 'demand'"],
  ["c", "company_name"],
  ["b", "any"],
  ["i", "internal_no"],
  ["c", "any"],
  ["t", "any"],
  ["r", "inbox_node_url"]
]
```
