{
  "name": "SellThat",
  "description": "The AI-native payment button for anything you create. Add checkout, paywalls and signed webhooks to any site with PayKit; connect a tool-using AI assistant via the MCP server; or call the public checkout endpoint directly. Runs on Stripe Connect — SellThat never exposes the creator's Stripe secrets.",
  "url": "https://sellthat.ai",
  "provider": {
    "organization": "SellThat",
    "url": "https://sellthat.ai"
  },
  "version": "0.1.0",
  "documentationUrl": "https://sellthat.ai/developers",
  "capabilities": {
    "streaming": false,
    "pushNotifications": true
  },
  "authentication": {
    "schemes": [
      "public",
      "bearer",
      "oauth2"
    ],
    "detail": "The checkout endpoint is public (uses a public button id, never a secret key). The PayKit REST API under /api/v1 — products, payment buttons, checkout sessions, entitlements and the social API — uses a bearer developer API key (st_test_/st_live_, or the X-API-Key header) with per-route scopes (products:read/write, payment_buttons:read/write, checkout_sessions:create/read, entitlements:read, social:read/write/publish). A key holder with the relevant write scope can update product prices and delete payment buttons; refunds and payouts are never available through any API. Social publishing always requires the creator's explicit approval. AI assistants can also connect through the MCP server via OAuth, on a scoped grant (read/create only) the creator can revoke anytime; the MCP tools never expose refunds, price changes, deletes or payouts."
  },
  "skills": [
    {
      "id": "create_checkout_session",
      "name": "Create checkout session",
      "description": "Start a hosted Stripe Checkout session for a payment button via POST /api/paykit/buttons/{publicId}/checkout. Public, no auth.",
      "status": "available"
    },
    {
      "id": "social_draft_and_publish",
      "name": "Draft and publish product posts",
      "description": "Draft posts about a creator's products and publish them after the creator's explicit approval, via /api/v1/social/*. Approval-gated; tokens never exposed.",
      "status": "available"
    },
    {
      "id": "mcp_create_products",
      "name": "Create products and buttons (MCP)",
      "description": "Through the connected MCP server, create real products and checkout buttons and fetch embed code on the creator's account.",
      "status": "available"
    },
    {
      "id": "paykit_rest_api",
      "name": "PayKit REST API (manage products/buttons)",
      "description": "A key-authenticated REST API to create, list and update products and payment buttons, to create and read checkout sessions, and to check buyer entitlements, under /api/v1. Use POST /api/v1/products, POST /api/v1/payment-buttons, then POST /api/v1/checkout-sessions to get a checkout URL; POST /api/v1/entitlements/check gates a paywall. Scopes: products:read/write, payment_buttons:read/write, checkout_sessions:create/read, entitlements:read. Successful responses are { data, meta }; errors return a non-2xx status with an { error } field.",
      "status": "available"
    },
    {
      "id": "generate_marketing_and_apps",
      "name": "Generate marketing copy and apps",
      "description": "Trigger SellThat's own AI to write launch & marketing copy (POST /api/v1/generate/marketing, scope generation:marketing) or to start a new App Builder draft from a brief (POST /api/v1/generate/app, scope generation:app). Note: the public App Builder has been retired; app generation remains only as a gated, plan-limited developer capability. Both spend the creator's existing monthly AI budget (402 when exhausted); app generation creates a draft the creator finishes in SellThat and never auto-publishes.",
      "status": "available"
    }
  ],
  "x-ai-toolkit": {
    "description": "Connect once, then unlock SellThat's services through that one connection, gated by the creator's subscription plan. Each capability names the minimum plan needed to grant it.",
    "overviewUrl": "https://sellthat.ai/ai-toolkit",
    "capabilities": [
      {
        "id": "products.read",
        "scope": "products:read",
        "group": "Commerce",
        "title": "See your products",
        "description": "List and read the products on your account.",
        "access": "read",
        "minTier": "free",
        "minPlan": "Free"
      },
      {
        "id": "products.write",
        "scope": "products:write",
        "group": "Commerce",
        "title": "Create and edit products",
        "description": "Create new products and update existing ones.",
        "access": "write",
        "minTier": "free",
        "minPlan": "Free"
      },
      {
        "id": "payment_buttons.read",
        "scope": "payment_buttons:read",
        "group": "Commerce",
        "title": "See your payment buttons",
        "description": "List and read your checkout buttons.",
        "access": "read",
        "minTier": "free",
        "minPlan": "Free"
      },
      {
        "id": "payment_buttons.write",
        "scope": "payment_buttons:write",
        "group": "Commerce",
        "title": "Create and edit payment buttons",
        "description": "Create, update and delete checkout buttons.",
        "access": "write",
        "minTier": "free",
        "minPlan": "Free"
      },
      {
        "id": "checkout_sessions.create",
        "scope": "checkout_sessions:create",
        "group": "Commerce",
        "title": "Start checkout sessions",
        "description": "Open a checkout session for a button and get a payment link. Live keys take real money; test keys are simulated.",
        "access": "write",
        "minTier": "free",
        "minPlan": "Free",
        "movesRealMoney": true
      },
      {
        "id": "checkout_sessions.read",
        "scope": "checkout_sessions:read",
        "group": "Commerce",
        "title": "See checkout sessions",
        "description": "Read the status of a checkout session (order).",
        "access": "read",
        "minTier": "free",
        "minPlan": "Free"
      },
      {
        "id": "entitlements.read",
        "scope": "entitlements:read",
        "group": "Commerce",
        "title": "Check buyer access",
        "description": "Check whether a buyer has access to one of your products.",
        "access": "read",
        "minTier": "free",
        "minPlan": "Free"
      },
      {
        "id": "page.read",
        "scope": "page:read",
        "group": "Commerce",
        "title": "Read a product's page",
        "description": "Read the public page content for one of your products — its headline, tagline, feature bullets, content sections (including FAQs), and SEO settings.",
        "access": "read",
        "minTier": "free",
        "minPlan": "Free"
      },
      {
        "id": "page.write",
        "scope": "page:write",
        "group": "Commerce",
        "title": "Edit a product's page",
        "description": "Stage edits to a product's public page (headline, tagline, sections, FAQs, SEO) as a draft, and publish that draft once you approve it. Nothing goes live without your approval.",
        "access": "write",
        "minTier": "free",
        "minPlan": "Free"
      },
      {
        "id": "page.embed",
        "scope": "page:embed",
        "group": "Commerce",
        "title": "Embed external apps on a product page",
        "description": "Add a sandboxed embed of an external app (by https URL) to a product's page, and check whether a URL can be safely embedded. The embed runs isolated — no SellThat login or buyer data is shared with it.",
        "access": "write",
        "minTier": "starter",
        "minPlan": "Starter"
      },
      {
        "id": "products.import",
        "scope": "products:import",
        "group": "Commerce",
        "title": "Bulk-import products",
        "description": "Read many products at once from a website or a pasted list, preview them, then create the ones that fit your plan as draft products (and optionally a buy link for each). Created products start paused so you can review them. Starter plan and up.",
        "access": "write",
        "minTier": "starter",
        "minPlan": "Starter"
      },
      {
        "id": "physical.read",
        "scope": "physical:read",
        "group": "Physical commerce",
        "title": "See shipping setup and stock",
        "description": "See a physical product's shipping setup, stock levels, delivery eligibility, live shipping rates, and the orders that still need to be shipped.",
        "access": "read",
        "minTier": "starter",
        "minPlan": "Starter"
      },
      {
        "id": "physical.write",
        "scope": "physical:write",
        "group": "Physical commerce",
        "title": "Set up shipping and stock",
        "description": "Set up and edit a physical product's shipping details (package size and weight, where it ships from and to, and pickup or courier options), add stock, and duplicate a product. Shipping is always a separate paid add-on — there is no free shipping.",
        "access": "write",
        "minTier": "starter",
        "minPlan": "Starter"
      },
      {
        "id": "physical.fulfil",
        "scope": "physical:fulfil",
        "group": "Physical commerce",
        "title": "Ship and track paid orders",
        "description": "Handle orders that need shipping — refresh tracking, buy a shipping label for an order the buyer has already paid for, mark a local pickup as collected, or cancel an order's shipment. A label is only ever bought after payment.",
        "access": "write",
        "minTier": "starter",
        "minPlan": "Starter",
        "movesRealMoney": true
      },
      {
        "id": "social.read",
        "scope": "social:read",
        "group": "Social",
        "title": "See connected social accounts",
        "description": "See your connected social accounts and post drafts.",
        "access": "read",
        "minTier": "free",
        "minPlan": "Free"
      },
      {
        "id": "social.write",
        "scope": "social:write",
        "group": "Social",
        "title": "Draft social posts",
        "description": "Create and edit social post drafts for your products.",
        "access": "write",
        "minTier": "free",
        "minPlan": "Free"
      },
      {
        "id": "social.publish",
        "scope": "social:publish",
        "group": "Social",
        "title": "Publish approved posts",
        "description": "Publish a draft you have approved. Never publishes without your explicit approval.",
        "access": "write",
        "minTier": "free",
        "minPlan": "Free"
      },
      {
        "id": "email.send",
        "scope": "email:send",
        "group": "Email",
        "title": "Send an email",
        "description": "Send a one-off email to a single person from your account. It goes out through SellThat showing your name, and replies come back to your verified email. Paid plans only.",
        "access": "write",
        "minTier": "starter",
        "minPlan": "Starter"
      },
      {
        "id": "docs.ask",
        "scope": "docs:ask",
        "group": "Docs Q&A",
        "title": "Ask your documents",
        "description": "Ask a question and get an answer drawn only from the documents you've added to one of your vaults, along with the sources it used.",
        "access": "read",
        "minTier": "free",
        "minPlan": "Free"
      },
      {
        "id": "domains.check",
        "scope": "domains:check",
        "group": "Domains",
        "title": "Check a domain",
        "description": "Check whether a domain name is available to buy and what it would cost. Safe — nothing is purchased.",
        "access": "read",
        "minTier": "free",
        "minPlan": "Free"
      },
      {
        "id": "domains.purchase",
        "scope": "domains:purchase",
        "group": "Domains",
        "title": "Buy a domain",
        "description": "Start buying a domain for your account. Returns a secure checkout link to finish paying — it never charges a card on its own. Paid plans only.",
        "access": "write",
        "minTier": "starter",
        "minPlan": "Starter",
        "movesRealMoney": true
      },
      {
        "id": "generation.marketing",
        "scope": "generation:marketing",
        "group": "Generation",
        "title": "Write launch and marketing copy",
        "description": "Generate launch and marketing copy for one of your products. Uses your plan's monthly AI budget.",
        "access": "write",
        "minTier": "starter",
        "minPlan": "Starter"
      },
      {
        "id": "generation.app",
        "scope": "generation:app",
        "group": "Generation",
        "title": "Start a new app build",
        "description": "Start a new AI app build from a plain-English brief. Creates a draft you can finish in the app builder. Uses your plan's monthly AI budget.",
        "access": "write",
        "minTier": "free",
        "minPlan": "Free"
      },
      {
        "id": "generation.page",
        "scope": "page:generate",
        "group": "Generation",
        "title": "Write product page content",
        "description": "Generate page content for one of your products — a section, FAQs, or SEO text — staged as a draft you can review before publishing. Uses your plan's monthly AI budget.",
        "access": "write",
        "minTier": "starter",
        "minPlan": "Starter"
      },
      {
        "id": "reviews.read",
        "scope": "reviews:read",
        "group": "Reviews",
        "title": "See reviews and ratings",
        "description": "Read verified buyer reviews and rating summaries for your products, plus your seller reputation.",
        "access": "read",
        "minTier": "free",
        "minPlan": "Free"
      },
      {
        "id": "reviews.write",
        "scope": "reviews:write",
        "group": "Reviews",
        "title": "Respond to reviews",
        "description": "Post your one public reply to a buyer review. You can't edit or delete a buyer's review.",
        "access": "write",
        "minTier": "free",
        "minPlan": "Free"
      }
    ]
  },
  "documentation": {
    "llms": "https://sellthat.ai/llms.txt",
    "llmsFull": "https://sellthat.ai/llms-full.txt",
    "openapi": "https://sellthat.ai/openapi.json",
    "paykit": "https://sellthat.ai/docs/paykit",
    "paykitApi": "https://sellthat.ai/developers/paykit-api",
    "mcp": "https://sellthat.ai/docs/paykit/mcp",
    "security": "https://sellthat.ai/developers/security",
    "aiToolkit": "https://sellthat.ai/ai-toolkit"
  }
}