create_product

shallow

xyz.rubenayla.partle/marketplace · Verify this server

Create a new product listing on Partle. Authenticated. Prefer **OAuth**: connect once via the consent flow on claude.ai (or any MCP client that supports OAuth) and the bearer token is attached automatically — no `api_key` parameter needed. **Fallback**: pass an `api_key` (prefix `pk_`, generate at /account) for programmatic or non-OAuth clients. Required OAuth scope: `products:write`. Use when the user wants to add an item for sale. For edits to an existing product, use `update_product` instead. **Images.** This tool creates text fields only — no image arg. Do **not** try to pass image bytes through a tool argument; phone-sized payloads blow past conversation context limits. The response includes a one-shot ``upload_url`` (signed, ~15 min TTL, bound to this product and your authenticated user). To attach an image from your code-execution sandbox, do **one** PUT request — no auth headers needed, the URL itself carries the credential: requests.put(result["upload_url"], data=open("/path/to/photo.jpg", "rb").read(), headers={"Content-Type": "image/jpeg"}) The bytes flow Python → HTTP body → Partle, never through the conversation. The URL works once and expires fast. Alternative if you don't have local bytes but have a public image URL: call ``upload_product_image(product_id, image_url=...)`` instead. **Duplicate prevention.** Same user, same product name (case- and whitespace-insensitive) returns 409 with `existing.id`, `existing.url`, **and a fresh `upload_url`** for that existing product — so if the user is just retrying with a photo, you can attach it directly to the existing listing without having to create or pick anything new. You can also call `update_product` to change fields. Don't retry blindly. **Idempotency.** Pass `idempotency_key` (any unique string per logical create — UUID or hash of the source listing) and a retry after a network failure returns the original response instead of creating a duplicate. Reusing a key with a different payload is a 422. Args: name: Product name. Required, 1–200 chars. description: Long-form product description. Optional. price: Price in whole currency units, **not** cents (e.g. ``15.99`` means €15.99). Max 100000. Omit for "ask the seller". currency: Currency symbol. Defaults to `€`. Use `$`, `£`, etc. url: Link to the merchant's product page. Optional but recommended. store_id: ID of the store this product belongs to. Omit for a personal listing not tied to any store. listing_type: ``in_stock`` (default) when the seller has the item and it can be bought now. ``tentative`` when they do not stock it and want to measure interest first — such a listing is kept out of normal search results and instead collects "I need this" presses. Only use ``tentative`` if the user explicitly said they are gauging demand; an item that is merely out of stock today is still ``in_stock``. If the user is looking to *buy* something nobody sells, use `create_buy_request` instead — that is the demand side and it is a different tool. idempotency_key: Optional retry-safety token. Unique per logical create. Send the same key on retries to get the same response. api_key: Optional API key (`pk_*`, generate at /account). Used when there is no OAuth token, and also when the OAuth token lacks the required scope — an explicitly passed key overrides an ambient token that is scoped too narrowly. An invalid or revoked token still fails regardless. Omit when using OAuth. Returns: The created product record including its new `id` and canonical `partle_url`. Share `partle_url` with the user. Returns ``{"error": ...}`` on auth, dedup, or validation failure (dedup also returns ``{"existing": {"id", "name", "url"}}``).

100.0/100

1 trials · measured 8 days ago

create_product scores 100.0/100 on Vouch's measured behaviour index, from 1 real invocation trials against xyz.rubenayla.partle/marketplace, measured 25 Aug 2026 under methodology v0.2.0. Every measured component scored 100.

Component breakdown

ComponentWeightValue
Reliability35%not applicable
Schema integrity25%100.0
Failure behaviour15%not applicable
Latency15%not applicable
Concurrency10%not applicable

Tool details

Transport
remote
Credential class
self-provisionable
Input schema
not declared
Output schema
not declared
Side-effect classification
unclassified

Score history

DayScoreTierMethodology
2026-08-25100.0shallowv0.2.0

Probe evidence

ProbeOutcomes
schema_integritypass: 1

Raw request/response logs are not archived yet — the outcome counts above are drawn directly from every recorded trial.

Embed this score

Available for every tool, scored or not — not a verification perk. Always links back to this page.

Vouch score: create_product
[![Vouch score](https://vouch.tools/api/tools/af78c5b9-b5f3-4169-8ba6-0d0b52645def/badge.svg)](https://vouch.tools/tools/af78c5b9-b5f3-4169-8ba6-0d0b52645def)
create_product — Vouch