{"openapi":"3.1.0","info":{"title":"Slab Swappers API","version":"1.0.0","description":"Public and authenticated API for Slab Swappers marketplace listings, feedback, price guide, checklists, hobby news, collection tracking, Stripe Checkout, Stripe Connect, Stripe Identity, payments, and platform feedback."},"servers":[{"url":"https:\/\/slabswappers.com\/api\/v1","description":"Versioned application API"},{"url":"https:\/\/slabswappers.com\/api","description":"Provider webhook endpoints"}],"components":{"securitySchemes":{"sanctum":{"type":"http","scheme":"bearer","description":"Laravel Sanctum bearer token for authenticated user actions."}}},"tags":[{"name":"Marketplace"},{"name":"Feedback"},{"name":"Price Guide"},{"name":"Checklists"},{"name":"Hobby News"},{"name":"Collection"},{"name":"Stripe"},{"name":"Support"}],"paths":{"\/categories":{"get":{"tags":["Marketplace"],"summary":"List categories","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}}}},"\/listings":{"get":{"tags":["Marketplace"],"summary":"Search public listings","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"parameters":[{"name":"q","in":"query","schema":{"type":"string"},"description":"string"},{"name":"category","in":"query","schema":{"type":"string"},"description":"string"},{"name":"listing_type","in":"query","schema":{"type":"string"},"description":"sale|trade|sale_trade"},{"name":"per_page","in":"query","schema":{"type":"string"},"description":"integer"}]}},"\/listings\/{slug}":{"get":{"tags":["Marketplace"],"summary":"Get listing detail","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}}}},"\/users\/{id}\/feedback":{"get":{"tags":["Feedback"],"summary":"Get user feedback","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"parameters":[{"name":"feedback_type","in":"query","schema":{"type":"string"},"description":"positive|neutral|negative"},{"name":"transaction_type","in":"query","schema":{"type":"string"},"description":"trade|purchase|sale"},{"name":"rating","in":"query","schema":{"type":"string"},"description":"integer"}]}},"\/trades\/{id}\/feedback":{"post":{"tags":["Feedback"],"summary":"Leave completed trade feedback","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"security":[{"sanctum":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"reviewed_user_id":{"type":"integer","description":"integer"},"rating":{"type":"integer","description":"integer 1-5"},"feedback_type":{"type":"string","description":"positive|neutral|negative"},"title":{"type":"string","description":"string nullable"},"body":{"type":"string","description":"string"}}}}}}}},"\/orders\/{id}\/feedback":{"post":{"tags":["Feedback"],"summary":"Leave completed order feedback","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"security":[{"sanctum":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"reviewed_user_id":{"type":"integer","description":"integer"},"rating":{"type":"integer","description":"integer 1-5"},"feedback_type":{"type":"string","description":"positive|neutral|negative"},"title":{"type":"string","description":"string nullable"},"body":{"type":"string","description":"string"}}}}}}}},"\/feedback\/{id}\/reply":{"post":{"tags":["Feedback"],"summary":"Reply to feedback","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"security":[{"sanctum":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"body":{"type":"string","description":"string"}}}}}}}},"\/feedback\/{id}\/dispute":{"post":{"tags":["Feedback"],"summary":"Dispute feedback","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"security":[{"sanctum":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","description":"string"}}}}}}}},"\/platform-feedback":{"post":{"tags":["Support"],"summary":"Submit platform feedback","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"category":{"type":"string","description":"bug|feature_request|general_feedback|support_feedback|checkout_feedback|trade_feedback"},"priority":{"type":"string","description":"low|normal|high|urgent"},"title":{"type":"string","description":"string"},"message":{"type":"string","description":"string"}}}}}}}},"\/price-guide\/cards":{"get":{"tags":["Price Guide"],"summary":"Search price guide cards","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"parameters":[{"name":"sport","in":"query","schema":{"type":"string"},"description":"string"},{"name":"set","in":"query","schema":{"type":"string"},"description":"string"},{"name":"year","in":"query","schema":{"type":"string"},"description":"string"},{"name":"q","in":"query","schema":{"type":"string"},"description":"string"},{"name":"sort","in":"query","schema":{"type":"string"},"description":"value|name"}]}},"\/price-guide\/cards\/{id}":{"get":{"tags":["Price Guide"],"summary":"Get price guide card detail","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}}}},"\/price-guide\/sets":{"get":{"tags":["Price Guide"],"summary":"List price guide sets","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"parameters":[{"name":"sport","in":"query","schema":{"type":"string"},"description":"string"}]}},"\/checklists":{"get":{"tags":["Checklists"],"summary":"Search checklist sets","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"parameters":[{"name":"sport","in":"query","schema":{"type":"string"},"description":"string"},{"name":"year","in":"query","schema":{"type":"string"},"description":"string"},{"name":"q","in":"query","schema":{"type":"string"},"description":"string"}]}},"\/checklists\/{slug}":{"get":{"tags":["Checklists"],"summary":"Get checklist cards","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"parameters":[{"name":"q","in":"query","schema":{"type":"string"},"description":"string"},{"name":"group","in":"query","schema":{"type":"string"},"description":"string"},{"name":"team","in":"query","schema":{"type":"string"},"description":"string"}]}},"\/hobby-news":{"get":{"tags":["Hobby News"],"summary":"Search published hobby news","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"parameters":[{"name":"q","in":"query","schema":{"type":"string"},"description":"string"},{"name":"category","in":"query","schema":{"type":"string"},"description":"category slug"},{"name":"sort","in":"query","schema":{"type":"string"},"description":"featured|most_viewed"},{"name":"per_page","in":"query","schema":{"type":"string"},"description":"integer"}]}},"\/hobby-news\/categories":{"get":{"tags":["Hobby News"],"summary":"List hobby news categories","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}}}},"\/hobby-news\/{slug}":{"get":{"tags":["Hobby News"],"summary":"Get hobby news detail","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}}}},"\/collection":{"get":{"tags":["Collection"],"summary":"List collection items","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"security":[{"sanctum":[]}],"parameters":[{"name":"q","in":"query","schema":{"type":"string"},"description":"string"}]},"post":{"tags":["Collection"],"summary":"Add collection item","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"security":[{"sanctum":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"price_guide_card_id":{"type":"integer","description":"integer"},"quantity":{"type":"integer","description":"integer"},"grade_company":{"type":"string","description":"string"},"grade_value":{"type":"string","description":"string"},"declared_value_cents":{"type":"integer","description":"integer"}}}}}}}},"\/collection\/{id}":{"delete":{"tags":["Collection"],"summary":"Remove collection item","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"security":[{"sanctum":[]}]}},"\/checkout\/listings\/{slug}":{"post":{"tags":["Stripe"],"summary":"Create listing Checkout Session","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"security":[{"sanctum":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"success_url":{"type":"string","description":"url nullable"},"cancel_url":{"type":"string","description":"url nullable"}}}}}}}},"\/connect\/account":{"get":{"tags":["Stripe"],"summary":"Create or sync seller connected account","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"security":[{"sanctum":[]}]}},"\/connect\/account-session":{"post":{"tags":["Stripe"],"summary":"Create Connect embedded account session","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"security":[{"sanctum":[]}]}},"\/identity\/verification-session":{"post":{"tags":["Stripe"],"summary":"Create Stripe Identity verification session","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"security":[{"sanctum":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"return_url":{"type":"string","description":"url nullable"}}}}}}}},"\/payments":{"get":{"tags":["Stripe"],"summary":"List authenticated buyer\/seller payments","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"security":[{"sanctum":[]}],"parameters":[{"name":"status","in":"query","schema":{"type":"string"},"description":"string"}]}},"\/payments\/{id}":{"get":{"tags":["Stripe"],"summary":"Get authenticated payment detail","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"security":[{"sanctum":[]}]}},"\/openapi.json":{"get":{"tags":["Documentation"],"summary":"OpenAPI JSON","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}}}},"\/stripe\/webhook":{"post":{"tags":["Stripe"],"summary":"Signed Stripe webhook receiver","responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"422":{"description":"Validation failed"}},"servers":[{"url":"https:\/\/slabswappers.com\/api"}]}}}}