import { createFileRoute } from "@tanstack/react-router"; import { buildPageSeo } from "@/lib/seo"; export const Route = createFileRoute("/_marketing/pricing")({ head: () => buildPageSeo({ title: "Pricing", description: "OpenSEO is free to self-host. The managed service is $10/month and includes Usage Credits.", path: "/pricing", titleSuffix: "OpenSEO", }), component: Pricing, }); function Pricing() { return ( <> {/* Headline */}

Pricing

{/* Managed */}

Managed

{/* Base Plan */}

Base Plan

$10/month

    {[ "Access to OpenSEO's managed service", "Includes $10.00 of Usage Credits each billing cycle", "Monthly included credits reset each cycle", ].map((item) => (
  • {item}
  • ))}
{/* Usage Credits — add-on, visually connected to Base Plan */}

Usage Credits

add-on

Credits are consumed as you use the app. We use powerful providers for AI and SEO data. We bill based on usage of those APIs and charge a small premium.

    {[ "Purchase top-up credits if you use up your monthly credits", "Top-up credits roll over and don't expire", ].map((item) => (
  • {item}
  • ))}
Get Started{" "}
{/* Self-hosted */}

Self-hosted

Deploy OpenSEO yourself via Docker or Cloudflare Workers. Bring your own API keys and pay DataForSEO and other API providers directly.

View on GitHub
{/* FAQ */}

FAQ

What features use credits vs. what's unlimited?
Credits are consumed by features that query DataForSEO's API — backlinks, keyword volume, competitor data, and site audits. Your projects, settings, and any data already fetched don't cost credits.
Do unused credits roll over?
Top-up credits roll over indefinitely. The Usage Credits included with your Base Plan reset each billing cycle.
Can I cancel anytime?
Yes. Cancel from your billing portal at any time. Your access continues through the end of the current billing period.{" "}
Do I need a subscription or just usage credits?
While top-up Usage Credits roll over and don't expire, you need an active subscription in order to use OpenSEO.
); }