List My Products
List products created by the current user - with eager loading to prevent N+1 queries.
Request
- Base URL: http://localhost:8000
- URL: http://localhost:8000/v1/products/my
- Auth: HTTP bearer
Headers
Response
Successful Response
Store ID to list under (omit for personal listing)
Product name/title
Stock Keeping Unit - unique per store
Price in whole currency units (e.g. 15.99 means €15.99). NOT cents.
Currency symbol (e.g. €, $, CHF)
Link to the product page
Product description
When the listing expires (for second-hand items)
Whether the responsible human has confirmed this listing. Default true covers humans, scrapers (the source website's listing is the implicit confirmation), and AI agents acting as the seller themselves. Set false ONLY when an AI agent is proposing a listing on behalf of a human who has not explicitly confirmed it (tentative).
Whether a product row is real stock or a demand probe.
in_stock is a normal listing: someone has the thing and you can go buy it. That is Partle's whole promise, so it is the default and the only type the catalog returns unless a caller opts out.
tentative is a seller floating an item they do not stock yet, to see whether anyone wants it. Interest is recorded in product_demand. A tentative row is excluded from every catalog read by default (see apply_visible_products_filter) — a shopper searching for a drill must never be shown one that cannot be bought.
Named listing_type rather than inventory_type because inventory_items / InventoryStatus in this module already mean a user's personal holdings, which is a different thing entirely.
Buyers asking for something nobody sells are NOT modelled here — that is BuyRequest below, which predates this and has its own table, public feed at /v1/public/wanted, and MCP tools.
Changes
No recorded changes to this operation across all 1 revision of this API.