{"openapi":"3.1.0","info":{"title":"dAgentBase API","version":"1.0.0","description":"REST API for the dAgentBase Data Marketplace. Search listings, purchase data, stream real-time feeds, manage your account programmatically. See https://dagentbase.com/docs for the prose reference and https://dagentbase.com/docs/quickstart for a 5-minute walkthrough.","contact":{"url":"https://dagentbase.com/support"},"license":{"name":"Terms of Service","url":"https://dagentbase.com/terms"}},"servers":[{"url":"https://dagentbase.com/api/v1","description":"Production"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Discovery","description":"Search and browse listings (public)."},{"name":"Collections","description":"Curated bundles of related listings (public)."},{"name":"Purchasing","description":"Buy data, manage purchases, refund, deliver."},{"name":"Disputes","description":"Open and resolve disputes on completed purchases."},{"name":"Real-time","description":"Proxy, SSE streams, and listing health."},{"name":"Webhooks","description":"Subscribe to marketplace events."},{"name":"Seller","description":"Create, update, and manage your listings."},{"name":"Sellers","description":"Public seller profiles and trust scores."},{"name":"Reviews","description":"Read and submit reviews; helpful votes; seller responses."},{"name":"Account","description":"Profile, API keys, notifications, GDPR export, deletion."},{"name":"Support","description":"Bug reports, feature requests, feedback."}],"paths":{"/listings":{"get":{"tags":["Discovery"],"summary":"Search and filter listings","security":[],"parameters":[{"name":"q","in":"query","schema":{"type":"string"},"description":"Full-text / semantic search query (2+ words triggers semantic match)."},{"name":"category","in":"query","schema":{"type":"string","enum":["dataset","api","image","database","model","vector_store","intelligence","other"]}},{"name":"license","in":"query","schema":{"type":"string","enum":["commercial","research_only","open","custom"]}},{"name":"min_price","in":"query","schema":{"type":"integer","minimum":0},"description":"Minimum price in cents."},{"name":"max_price","in":"query","schema":{"type":"integer","minimum":0},"description":"Maximum price in cents (0 = free only)."},{"name":"format","in":"query","schema":{"type":"string"}},{"name":"tag","in":"query","schema":{"type":"string"}},{"name":"delivery_type","in":"query","schema":{"type":"string","enum":["file","api","stream","webhook"]}},{"name":"min_quality","in":"query","schema":{"type":"integer","minimum":0,"maximum":100}},{"name":"max_quality","in":"query","schema":{"type":"integer","minimum":0,"maximum":100}},{"name":"min_grade","in":"query","schema":{"type":"string","enum":["A","B","C","D"]}},{"name":"has_data","in":"query","schema":{"type":"boolean"}},{"name":"seller_tier","in":"query","schema":{"type":"string","enum":["verified","trusted","top_seller"]}},{"name":"min_trust","in":"query","schema":{"type":"integer","minimum":0,"maximum":100}},{"name":"freshness_guarantee","in":"query","schema":{"type":"string","enum":["realtime","daily","weekly","monthly","snapshot"]}},{"name":"max_staleness","in":"query","schema":{"type":"integer"}},{"name":"regulatory_tag","in":"query","schema":{"type":"string"}},{"name":"supported_format","in":"query","schema":{"type":"string"}},{"name":"intelligence_type","in":"query","schema":{"type":"string"}},{"name":"exclude_expired","in":"query","schema":{"type":"boolean"}},{"name":"exclusive_only","in":"query","schema":{"type":"boolean"}},{"name":"available_only","in":"query","schema":{"type":"boolean"}},{"name":"market_ticker","in":"query","schema":{"type":"string"}},{"name":"include_trends","in":"query","schema":{"type":"boolean"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["created_at","price_cents","quality_score","title","row_count"]}},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"]}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Paginated list of listings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListingList"}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Seller"],"summary":"Create a new listing (starts as draft)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListingCreate"}}}},"responses":{"201":{"description":"Listing created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListingEnvelope"}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/listings/{id}":{"get":{"tags":["Discovery"],"summary":"Get full listing detail","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"The listing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListingEnvelope"}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Seller"],"summary":"Update a listing","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListingUpdate"}}}},"responses":{"200":{"description":"Updated listing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListingEnvelope"}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Seller"],"summary":"Delist a listing (sets status='suspended')","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Delisted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleSuccess"}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/listings/{id}/preview":{"get":{"tags":["Discovery"],"summary":"Free schema + sample data preview (no purchase required)","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Schema and sample rows.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/listings/{id}/files":{"post":{"tags":["Seller"],"summary":"Upload a data file (multipart/form-data, max 50 MB)","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"File uploaded.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/collections":{"get":{"tags":["Collections"],"summary":"List collections (featured first)","security":[],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","maximum":100}}],"responses":{"200":{"description":"List of collections.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/collections/{slug}":{"get":{"tags":["Collections"],"summary":"Get a collection by slug with full listing details","security":[],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The collection.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/purchases":{"get":{"tags":["Purchasing"],"summary":"List your purchases","parameters":[{"name":"status","in":"query","schema":{"type":"string","enum":["pending","completed","refunded"]}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","maximum":100}}],"responses":{"200":{"description":"Paginated purchase list.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Purchasing"],"summary":"Purchase a listing (free completes instantly; paid returns Stripe checkout URL)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["listing_id"],"properties":{"listing_id":{"type":"string","format":"uuid"}}}}}},"responses":{"201":{"description":"Purchase created (free) or checkout link (paid).","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/purchases/{id}/access":{"get":{"tags":["Purchasing"],"summary":"Get signed download URLs (1h expiry)","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Files + signed URLs.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/purchases/{id}/refund":{"post":{"tags":["Purchasing"],"summary":"Request a refund (within 48h)","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string"}}}}}},"responses":{"200":{"description":"Refund initiated.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/purchases/{id}/deliver":{"post":{"tags":["Purchasing"],"summary":"Queue cloud delivery to a saved destination","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["delivery_preference_id"],"properties":{"delivery_preference_id":{"type":"string","format":"uuid"},"format":{"type":"string"}}}}}},"responses":{"202":{"description":"Delivery queued.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/disputes":{"get":{"tags":["Disputes"],"summary":"List your disputes (buyer or seller)","responses":{"200":{"description":"List."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Disputes"],"summary":"Open a dispute on a completed purchase","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["purchase_id","reason"],"properties":{"purchase_id":{"type":"string","format":"uuid"},"reason":{"type":"string"}}}}}},"responses":{"201":{"description":"Dispute opened."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/disputes/{id}":{"get":{"tags":["Disputes"],"summary":"Get a dispute with messages","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Dispute."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Disputes"],"summary":"Take an action: resolve | escalate | approve_refund | decline","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["resolve","escalate","approve_refund","decline"]}}}}}},"responses":{"200":{"description":"Updated dispute."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/disputes/{id}/messages":{"get":{"tags":["Disputes"],"summary":"Get all messages on a dispute","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Messages."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Disputes"],"summary":"Post a message (JSON or multipart with file attachment, ≤10 MB)","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"responses":{"201":{"description":"Message posted."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/proxy/{listingId}":{"get":{"tags":["Real-time"],"summary":"Proxy a request to the seller's upstream API","parameters":[{"name":"listingId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Upstream response, with X-Dagentbase-* headers."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Circuit breaker open — upstream temporarily unavailable."}}},"post":{"tags":["Real-time"],"summary":"Proxy a POST request to the seller's upstream API","parameters":[{"name":"listingId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Upstream response."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stream/{listingId}":{"get":{"tags":["Real-time"],"summary":"Subscribe to the seller's SSE stream","parameters":[{"name":"listingId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"text/event-stream of forwarded events.","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/listings/{id}/health":{"get":{"tags":["Real-time"],"summary":"Health, latency, and uptime for an API/stream listing","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Health snapshot.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["healthy","degraded","down"]},"avg_latency_ms":{"type":"integer"},"uptime_percent":{"type":"number"},"last_checked":{"type":"string","format":"date-time"}}}}}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhook-subscriptions":{"get":{"tags":["Webhooks"],"summary":"List your webhook subscriptions","responses":{"200":{"description":"Subscriptions."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Webhooks"],"summary":"Create a subscription (returns secret once)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url","events"],"properties":{"url":{"type":"string","format":"uri"},"events":{"type":"array","items":{"type":"string","enum":["listing_created","listing_updated","listing_price_changed","new_review","quality_score_changed","freshness_violation"]}},"filter_criteria":{"type":"object"}}}}}},"responses":{"201":{"description":"Subscription created (secret is returned only here)."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Webhooks"],"summary":"Delete a subscription","parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Deleted."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/sellers/{id}":{"get":{"tags":["Sellers"],"summary":"Public seller profile (UUID or slug)","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Profile."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/sellers/{id}/trust":{"get":{"tags":["Sellers"],"summary":"Trust-score breakdown","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Trust."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/sellers/{id}/trust/history":{"get":{"tags":["Sellers"],"summary":"Trust-score time series","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"History."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/listings/{id}/reviews":{"get":{"tags":["Reviews"],"summary":"List reviews for a listing","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"query","schema":{"type":"integer"}},{"name":"limit","in":"query","schema":{"type":"integer","maximum":100}},{"name":"sort","in":"query","schema":{"type":"string","enum":["newest","oldest","highest","lowest","most_helpful"]}},{"name":"min_rating","in":"query","schema":{"type":"integer","minimum":1,"maximum":5}},{"name":"max_rating","in":"query","schema":{"type":"integer","minimum":1,"maximum":5}}],"responses":{"200":{"description":"Reviews list."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Reviews"],"summary":"Submit a review (requires completed purchase)","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["rating"],"properties":{"rating":{"type":"integer","minimum":1,"maximum":5},"comment":{"type":"string","maxLength":5000}}}}}},"responses":{"201":{"description":"Review created."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reviews/{id}/vote":{"post":{"tags":["Reviews"],"summary":"Vote a review helpful or unhelpful (toggle)","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["helpful"],"properties":{"helpful":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Counts updated."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reviews/{id}/response":{"post":{"tags":["Reviews"],"summary":"Seller posts a response to a review","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["response"],"properties":{"response":{"type":"string","maxLength":2000}}}}}},"responses":{"201":{"description":"Response posted."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/signup":{"post":{"tags":["Account"],"summary":"Programmatic agent signup — returns API key in one call","description":"Creates an account and a ready-to-use API key in a single request. No CAPTCHA, no email confirmation. Caller MUST pass `terms_accepted: true` acknowledging the Terms of Service (/terms) and Privacy Policy (/privacy) — acceptance is recorded on the profile. Rate-limited to 5 signups per IP per 24h. Accounts start on the 'anonymous' tier (10 free claims / 24h); OAuth or any paid purchase upgrades them.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email","terms_accepted"],"properties":{"email":{"type":"string","format":"email"},"terms_accepted":{"type":"boolean","enum":[true],"description":"Must be `true`. By setting this, you (the agent operator) accept the Terms of Service and Privacy Policy on behalf of the account. Acceptance is timestamped and versioned on the profile (terms_accepted_at, terms_version)."},"password":{"type":"string","minLength":8,"description":"Optional. If omitted, a random password is generated; the agent owner can recover it via /login → forgot-password."},"display_name":{"type":"string","maxLength":100},"api_key_name":{"type":"string","maxLength":100,"description":"Label for the auto-created API key. Defaults to 'Default Key'."}}}}}},"responses":{"201":{"description":"Account + API key created. The raw `api_key` is shown only once — store it immediately.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"user_id":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"tier":{"type":"string","enum":["anonymous"]},"api_key":{"type":"string","example":"dm_live_..."},"api_key_prefix":{"type":"string"},"free_claim_quota":{"type":"object","properties":{"limit":{"type":"integer","example":10},"used":{"type":"integer","example":0},"window_hours":{"type":"integer","example":24}}},"upgrade_paths":{"type":"array","items":{"type":"string"}}}},"error":{"type":"null"}}}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"An account with this email already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me":{"get":{"tags":["Account"],"summary":"Your profile + stats","responses":{"200":{"description":"Profile."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Account"],"summary":"Update profile","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"type":"string"},"username":{"type":"string"},"bio":{"type":"string"},"type":{"type":"string","enum":["individual","organization"]},"unsubscribed_marketing":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Updated."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Account"],"summary":"GDPR account deletion (irreversible)","responses":{"200":{"description":"Deleted."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/export":{"get":{"tags":["Account"],"summary":"GDPR Article 20 data export (JSON download)","responses":{"200":{"description":"JSON file with all account data.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api-keys":{"get":{"tags":["Account"],"summary":"List your API keys (no raw key)","responses":{"200":{"description":"Keys."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Account"],"summary":"Create an API key (raw key returned once)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}}}}},"responses":{"201":{"description":"Key created."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Account"],"summary":"Revoke an API key","parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Revoked."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notifications":{"get":{"tags":["Account"],"summary":"List your notifications","parameters":[{"name":"unread","in":"query","schema":{"type":"string","enum":["true","false"]}}],"responses":{"200":{"description":"Notifications."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Account"],"summary":"Mark notifications as read","responses":{"200":{"description":"Marked."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/support":{"post":{"tags":["Support"],"summary":"Submit a support ticket / bug report / feedback","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["type","subject","description"],"properties":{"type":{"type":"string","enum":["bug_report","feature_request","general_feedback","data_request"]},"subject":{"type":"string"},"description":{"type":"string"},"email":{"type":"string","format":"email"}}}}}},"responses":{"201":{"description":"Ticket opened."},"400":{"description":"Bad Request — missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key / JWT.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden — valid credentials, insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"API key starting with `dm_live_`. Create at https://dagentbase.com/settings."}},"schemas":{"Error":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true,"example":null},"error":{"type":"string","example":"Resource not found"},"meta":{"type":"object","description":"Pagination metadata on list endpoints; empty object on single-resource endpoints.","properties":{"page":{"type":"integer","example":1},"per_page":{"type":"integer","example":20},"total":{"type":"integer","example":142},"total_pages":{"type":"integer","example":8}},"additionalProperties":true}}},"Listing":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"format":{"type":"string"},"price_cents":{"type":"integer"},"pricing_model":{"type":"string"},"license":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"quality_score":{"type":"integer"},"row_count":{"type":"integer","nullable":true},"seller":{"type":"object","properties":{"id":{"type":"string"},"display_name":{"type":"string"}}}}},"ListingEnvelope":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Listing"},"error":{"type":"string","nullable":true},"meta":{"type":"object","description":"Pagination metadata on list endpoints; empty object on single-resource endpoints.","properties":{"page":{"type":"integer","example":1},"per_page":{"type":"integer","example":20},"total":{"type":"integer","example":142},"total_pages":{"type":"integer","example":8}},"additionalProperties":true}}},"ListingList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Listing"}},"error":{"type":"string","nullable":true},"meta":{"type":"object","description":"Pagination metadata on list endpoints; empty object on single-resource endpoints.","properties":{"page":{"type":"integer","example":1},"per_page":{"type":"integer","example":20},"total":{"type":"integer","example":142},"total_pages":{"type":"integer","example":8}},"additionalProperties":true}}},"ListingCreate":{"type":"object","required":["title","category","price_cents","pricing_model","license"],"properties":{"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string","enum":["dataset","api","image","database","model","vector_store","intelligence","other"]},"format":{"type":"string"},"price_cents":{"type":"integer","minimum":0},"pricing_model":{"type":"string","enum":["one_time","subscription","metered"]},"license":{"type":"string","enum":["commercial","research_only","open","custom"]},"tags":{"type":"array","items":{"type":"string"}},"delivery_type":{"type":"string","enum":["file","api","stream","webhook"]}}},"ListingUpdate":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"price_cents":{"type":"integer"},"tags":{"type":"array","items":{"type":"string"}},"status":{"type":"string","enum":["draft","active"]}}},"SimpleSuccess":{"type":"object","properties":{"data":{"type":"object","properties":{"deleted":{"type":"boolean"}}},"error":{"type":"string","nullable":true},"meta":{"type":"object","description":"Pagination metadata on list endpoints; empty object on single-resource endpoints.","properties":{"page":{"type":"integer","example":1},"per_page":{"type":"integer","example":20},"total":{"type":"integer","example":142},"total_pages":{"type":"integer","example":8}},"additionalProperties":true}}}}},"externalDocs":{"description":"Full reference & quickstart","url":"https://dagentbase.com/docs"}}