T
TOMO
Developer Docs
BETA These docs are under partner review. Some features described are roadmap items, not yet shipped. Verify against your sandbox before relying on any contract.

marketplace.list_classified_ad

Post a P2P classified ad (anything not covered by a dedicated TOMO marketplace intent) through partners (OLX / Quikr / Facebook Marketplace / Karaageel). TOMO is the listing-form + image + price-guidance surface; partner hosts the listing and routes buyer messages. P2P = TOMO charges zero commission on the sale itself (only a listing-tier rev-share if partner offers paid promotion-free placement).


1. Identity

  • Intent ID: marketplace.list_classified_ad
  • Vertical: marketplace
  • Verb: list
  • Noun: classified_ad
  • Primary agent: MarketplaceAgent
  • Sub-agents (DATA only): SafetyAgent (banned-items detection, scam-pattern flag), LogisticsAgent (inter-buyer pickup hints)
  • Single-intent → completed action: title + photos + price + category → live listing on partner
  • Handoff layer: L2

2. NL Coverage

  • "post an ad on olx"
  • "list my old guitar for sale"
  • "classified ad sell my plants"
  • "quikr listing for my piano"
  • "facebook marketplace post"
  • "list household items"
  • "post free ad to sell"
  • "olx ad for my bicycle"
  • "list my collectibles"
  • "classified ad sell my dog accessories"

Must NOT match: anything that already has a dedicated intent (car/bike/electronics/furniture). TOMO routes those to their typed flow instead, NEVER to classified.


3. Input (slots)

Slot Type Required Source
title string ≤80 chars HARD seller drafted (LLM-suggest from photo OK)
category enum (partner taxonomy) HARD NL → partner taxonomy mapper
description string ≤2000 chars HARD seller drafted
photos url[] 1-10 HARD seller upload
asking_price_inr int OR negotiable HARD seller
pickup_address geo (city-level only by default) HARD saved or NL
condition enum [new, like_new, used_good, used_fair, for_parts] HARD quiz
contact_visibility enum [in_app_only, phone_visible, both] HARD default in_app_only

4. Provider Tools

  • validate_category(text, photos){suggested_category, taxonomy_path}
  • scan_banned_items(photos, title, description){banned, reason}
  • create_listing(payload){listing_id, partner_url, status}
  • update_listing(listing_id, patch){updated_at}
  • pause_listing(listing_id){paused_at}
  • delete_listing(listing_id, reason){deleted_at}
  • get_message_inbox(listing_id){threads[]}
  • submit_buyer_report(thread_id, reason){report_id, action_eta}

5. Response Shape

  • Region 1 — INTELLIGENCE: category_validated, banned_check_passed, local_demand_index, suggested_price_band_inr, scam_risk_flags[]
  • Region 2 — summary: "Listing draft ready. Suggested price band: ₹{low}-₹{high}. Live on {partner} in {ttl} min."
  • Region 3 — visual: seller's uploaded photos (preview grid)
  • Region 4 — NOW pin: live publish CTA + visibility toggle (in-app vs phone)
  • Region 5 — CHOICES: OK (single partner, free), GOOD (multi-partner cross-post), GREAT (multi-partner + featured slot if partner offers organic-only feature, never paid_placement)

6. Controlled Vocabularies

  • condition: new | like_new | used_good | used_fair | for_parts
  • contact_visibility: in_app_only | phone_visible | both
  • partner: olx | quikr | facebook_marketplace | karaageel | sulekha
  • banned_category: weapons | live_animals | tobacco | alcohol | counterfeit | adult_content | prescription_drugs | hazardous | currency_notes | crypto | stolen_goods_flag | govt_documents
  • scam_risk_flag: price_far_below_band | urgency_language | offshore_buyer_pattern | advance_payment_request | shipping_to_unverified | id_proof_request

7. TTBS Dimensions

Dim Weight Signal
Time 0.20 publish ETA, message-inbox responsiveness
Taste 0.20 category fit, photo quality, title clarity
Budget 0.20 listing free, no hidden featured-fee surprises
Safety 0.40 banned-items pass, scam-pattern guard, contact visibility default safe, partner-side dispute support

Locked: safety = 0.40 — classified is the highest-fraud-risk surface; safety dominates.


8. Completion Contract

Complete when:

  1. Banned-items scan returns banned=false
  2. Partner emits listing_id AND status=live
  3. Partner URL retrievable
  4. CPC: event=listing_published, amount_inr = 0 (free) OR partner's organic-tier rev-share if applicable; pass_through_inr = 0 (TOMO never collects payment for the item)

9. Widget

  • DRAFT bubble: title/desc/photos/price/condition → live preview card
  • BANNED-ITEMS warning if triggered (hard block + reason)
  • PRICE-GUIDE chip: "Listings in this category in {city} typically sell for ₹{low}-₹{high}"
  • SCAM-SAFETY tips chip: "Meet in public · verify cash · TOMO never asks for OTPs · report suspicious DMs"
  • INBOX preview: threads + report-buyer button
  • EDIT / PAUSE / DELETE controls

NEVER show: AI-rendered listing photos, fake "5⭐ ad" badge, paid-promotion bumps.


10. Caching Policy

Key TTL Invalidate on
taxonomy:{partner} 24 h partner taxonomy update
banned_items_list:{partner} 24 h partner policy update
price_band:{category}:{city} 24 h seasonal index refresh
listing:{partner}:{listing_id} 5 min edit, paused, deleted

11. Error Codes

Code Meaning UX
MKT_BANNED_ITEM hard block reason chip, suggest legitimate channel
MKT_CATEGORY_UNMAPPED partner taxonomy can't resolve manual picker
MKT_PHOTO_REJECTED quality/copyright/explicit reason chip
MKT_LISTING_FLOOD too many listings in short window partner rate-limit, surface cooldown
MKT_SCAM_PATTERN_DETECTED inbox flag safety warning, partner support link
MKT_PARTNER_DOWN API unreachable queue + retry

12. Sandbox → Production Checklist

  • 50 sample listings across 3 partners
  • Taxonomy mapper covers top 100 categories
  • Banned-items scanner tested with 20 known violators
  • Price-guide ML calibrated on 10k sold listings
  • Scam-pattern detector tested on labelled corpus
  • CPC HMAC 50 events
  • Default contact visibility = in_app_only verified
  • Anti-fab audit

13. Anti-Fabrication Rules

  • NEVER paid placement / bump-ups
  • NEVER AI-render listing photos
  • NEVER auto-write fake reviews
  • NEVER hide banned-items reason
  • NEVER suggest the seller post a banned item via workaround
  • NEVER expose phone number unless seller explicitly enables phone_visible
  • NEVER claim TOMO mediates disputes (partner does)
  • NEVER cache price-guide >24h (market moves)

14. Regulatory Framing

  • IT Act 2000 §79 — intermediary safe-harbour; partner is the publisher of record, TOMO is form-and-route surface
  • DPDPA 2023 — seller PII (phone/address) released only with explicit consent
  • Consumer Protection (E-commerce) Rules 2020 — partner is platform of record for grievance
  • IT Intermediary Guidelines 2021 — banned-content takedown SLA 36h, partner responsibility
  • Drugs and Cosmetics Act / Arms Act / Wildlife Protection Act — strict banned-items list enforced at scan time
  • Customs Act — international shipping disabled by default for P2P
  • Cybercrime advisory — never share OTPs, never accept advance payment from unverified buyer, never share ID proof in chat