{"openapi":"3.1.0","info":{"title":"Scamshield API","version":"0.1.0","description":"A fully local, general-audience, e-commerce-specific online-shopping scam red-flags guide: checkout tells, urgency tactics, a payment-method buyer-protection comparison, fake storefront and social-media-ad signals, verification steps, what to do if scammed, and pure-compute checkout-risk-score and payment-method-lookup helpers.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://scamshield.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/scamshield/docs"},"termsOfService":"https://connectorbay.com/scamshield/terms"},"servers":[{"url":"https://scamshield.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/scamshield/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/checkout_red_flags":{"post":{"operationId":"checkout_red_flags","summary":"Tells on a checkout page itself: no HTTPS, payment methods limited to wire/crypto/gift-cards, no listed","description":"Tells on a checkout page itself: no HTTPS, payment methods limited to wire/crypto/gift-cards, no listed\n    business address or phone, a generic webmail-only contact, a mismatched or redirecting domain, no order-\n    confirmation promise, and pressure to enter payment info before seeing the full total or return policy. Use\n    for \"what should I check on a checkout page before I pay\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"checkout_red_flagsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/urgency_tactics":{"post":{"operationId":"urgency_tactics","summary":"Manufactured pressure tactics shopping scams use — countdown timers, fake low-stock counters, fake","description":"Manufactured pressure tactics shopping scams use — countdown timers, fake low-stock counters, fake\n    purchase popups, recurring 'today only' sales, and cart-release threats — with why each works and how to see\n    through it. Use for \"why do I feel rushed to buy on this site\", \"is that stock counter real\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"urgency_tacticsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/compare_payment_methods":{"post":{"operationId":"compare_payment_methods","summary":"Ranks common payment methods (credit card, debit card, PayPal Goods & Services, PayPal/Venmo/Cash App","description":"Ranks common payment methods (credit card, debit card, PayPal Goods & Services, PayPal/Venmo/Cash App\n    Friends & Family, wire transfer, cryptocurrency, gift cards) by buyer protection and whether the payment can\n    be reversed if something goes wrong. The single most actionable piece of advice in this guide: never pay a\n    new or unfamiliar seller with an irreversible method. Use for \"is it safe to pay for this with Zelle/crypto/a\n    gift card\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"compare_payment_methodsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/payment_method_lookup":{"post":{"operationId":"payment_method_lookup","summary":"Buyer-protection detail for one specific payment method (see compare_payment_methods for the full list).","description":"Buyer-protection detail for one specific payment method (see compare_payment_methods for the full list).\n    Use for \"how safe is it to pay this seller with Venmo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"payment_method":{"description":"Payment method to look up.","examples":["credit card","paypal","venmo","wire transfer","crypto","gift card"],"title":"Payment Method","type":"string"}},"required":["payment_method"],"title":"payment_method_lookupArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/fake_storefront_signals":{"post":{"operationId":"fake_storefront_signals","summary":"Signals that a whole shopping site may be a fake/clone storefront: domain age, product-photo authenticity,","description":"Signals that a whole shopping site may be a fake/clone storefront: domain age, product-photo authenticity,\n    missing About/reviews page, catalog-wide steep pricing, site text quality, social-proof authenticity, and\n    independent reputation. Use for \"how do I tell if this whole website is fake\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"fake_storefront_signalsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/social_media_ad_signals":{"post":{"operationId":"social_media_ad_signals","summary":"Signals specific to shopping via a social media ad or seller account: account age/rename history, whether","description":"Signals specific to shopping via a social media ad or seller account: account age/rename history, whether\n    comments are open, whether checkout happens on a real site vs. only via DM, whether the ad/account\n    disappears over time, and whether the deal exists anywhere on the real brand's own channels. Use for \"should I\n    trust this shopping ad I saw on social media\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"social_media_ad_signalsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/how_to_verify_a_store":{"post":{"operationId":"how_to_verify_a_store","summary":"Concrete steps to verify an unfamiliar online store before paying: searching for reviews/scam reports,","description":"Concrete steps to verify an unfamiliar online store before paying: searching for reviews/scam reports,\n    checking an independent review platform, checking domain registration age, reading the return policy and\n    contact info, and choosing a reversible payment method. Use for \"how do I check if this store is legit before\n    I buy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"how_to_verify_a_storeArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/what_to_do_if_scammed":{"post":{"operationId":"what_to_do_if_scammed","summary":"What to do after paying a scam shopping site: contact your card/payment provider about a chargeback right","description":"What to do after paying a scam shopping site: contact your card/payment provider about a chargeback right\n    away, stop responding to further payment requests, report the store to the platform, report to a consumer-\n    protection agency (FTC/IC3 in the US), change any reused passwords, and watch your statements. Use for \"I\n    think I just got scammed buying something online, what do I do\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"what_to_do_if_scammedArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/checkout_risk_score":{"post":{"operationId":"checkout_risk_score","summary":"Combines whichever signals you have observed — matched checkout red flags, the payment method requested,","description":"Combines whichever signals you have observed — matched checkout red flags, the payment method requested,\n    site age, whether independent reviews exist, and price vs. market — into one rough composite risk score\n    (0-100), a risk level, and a recommendation. Every input is optional; give what you know. Use for \"this store\n    has no HTTPS, is 2 months old, and only takes crypto — how risky is that\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"observed_flags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Ids of checkout red flags observed (see checkout_red_flags for valid ids), e.g. ['no_https', 'limited_payment_methods'].","title":"Observed Flags"},"payment_method":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Payment method being asked for, if known.","title":"Payment Method"},"site_age_days":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"How many days old the site's domain is, if known.","title":"Site Age Days"},"has_reviews_offsite":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Whether independent (offsite) reviews were found for this store, if checked.","title":"Has Reviews Offsite"},"price_ratio":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Typical catalog price divided by prices at established retailers (e.g. 0.3 if priced at 30% of normal), if known.","title":"Price Ratio"}},"title":"checkout_risk_scoreArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}