Connector
Muse calls see2sell. Muse reads the speak field verbatim. It must not rewrite prices or add an appraisal.
API key (local mock)
s2s_live_demo
Health
GET https://see2sell.grok.me/api/v1/health → { "ok": true, "tape": "demo" }Glance
POST https://see2sell.grok.me/api/v1/glances
Authorization: Bearer s2s_live_demo
Idempotency-Key: aisle-001
{ "utterance": "What's this gone for?", "hint": "Rolex Submariner 16610", "surface": "glasses" }Rules
- At most three comps, newest first.
- Each production comp carries licensed true, or status is no_tape.
- speak is required on every status.
- No estimate, worth, fair value, or offer-to-buy field.
- Camera frames are for the active glance only.
- Publishing a listing requires confirmation on phone.
OpenAPI 3.1
openapi: 3.1.0
info:
title: see2sell
version: 0.1.0
description: Completed-sale lookup. Recent eBay sold prices when live lookups are on (typical price, range, recent sales), otherwise a demo tape. Caveats and a speak string on every response. Comps are facts. No appraisal. No offer to buy.
servers:
- url: https://see2sell.grok.me/api/v1
paths:
/health:
get:
summary: Liveness
responses:
"200":
description: ok
/glances:
post:
summary: Run a glance
security:
- bearerAuth: []
parameters:
- in: header
name: Idempotency-Key
description: Retries with the same key replay the first response instead of running a new glance.
schema: { type: string, maxLength: 200 }
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
utterance: { type: string, maxLength: 300 }
hint: { type: string, maxLength: 200 }
image_b64: { type: string, description: "JPEG or PNG frame, base64 or data URL. Identified by the vision model; the hint is optional extra context." }
image_url: { type: string, format: uri }
locale: { type: string }
surface: { type: string, enum: [glasses, muse_app, whatsapp, web] }
responses:
"200":
description: Glance with speak field Muse must read verbatim. status no_tape means the photo was identified but the item has no sales on the tape.
"400":
description: Invalid request body
"401":
description: Missing or invalid API key
"413":
description: Request body too large
"429":
description: Rate limited (30 glances per minute per key); see Retry-After
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer