Skip to main content
HomeLanding pagesCrewAI monetization
LANDING PAGE

CrewAI monetization

8 min read·Last updated June 2, 2026

Monetize a CrewAI crew by charging per call for its output. Because the x402 server adapter is Node and CrewAI is Python, front the crew's HTTP endpoint with a small Node gateway running createX402Plugin from @blockchain0x/x402. An unpaid request gets a 402; a paid one is proxied to the crew, settling USDC on Base. Keep discovery free; price the work.

What monetizing a crew means

Monetizing a CrewAI crew means charging callers for the work the crew produces, settled in USDC on Base, per call. The crew already does something valuable, a research brief, a generated asset, an analysis, and monetizing it is putting a price in front of that output so a caller pays before the crew runs. The crew itself does not change; you add a paywall ahead of it.

This is the earn side of CrewAI. The spend side, agents paying for what they call, is crewai-wallet-tool; the broad integration reference is crewai-payment-integration; the general monetization decisions are how-to-monetize-ai-agent. Here the focus is the CrewAI-specific path to charging, which has one wrinkle worth understanding first. The payment API product page is the broader reference.

The Node gateway pattern

Here is the wrinkle: the x402 server adapter ships for Node (Fastify and Express), and CrewAI runs in Python, usually behind a web framework like FastAPI. So you do not gate the crew from inside Python; you front it with a small Node gateway.

The gateway is a tiny Fastify (or Express) service that mounts createX402Plugin, returns the 402, verifies payment, and proxies paid requests to your Python crew endpoint. Your crew stays exactly as it is, serving its result on its own HTTP route; the gateway sits in front and is the only thing that knows about payment. This is the same front-with-a-gateway approach any non-Node stack uses to speak x402, and for a CrewAI crew it is the clean, honest path that keeps every payment identifier on the verified Node surface.

Gate the crew endpoint

The gateway gates the route and proxies paid traffic to the crew.

TYPESCRIPT
import Fastify from "fastify";
import { createClient } from "@blockchain0x/node";
import { createX402Plugin } from "@blockchain0x/x402/server/fastify";

const sdk = createClient({ apiKey: process.env.B0X_API_KEY! });
const app = Fastify();

await app.register(createX402Plugin, {
  sdk,
  defaultNetwork: "testnet",
  pricing: {
    "POST /crew/run": { amountUsdc: "0.25", payToAddress: process.env.B0X_PAYTO_ADDRESS!, paymentRequestId: "pr_crew" },
  },
});

// Paid requests reach here; proxy them to the Python crew service.
app.post("/crew/run", async (req) => {
  const r = await fetch("http://127.0.0.1:8000/run", { method: "POST", body: JSON.stringify(req.body) });
  return await r.json();
});

await app.listen({ port: 8080 });

An unpaid POST /crew/run gets a 402 quoting the price; the adapter verifies the X-Payment header through paymentRequests.settle on the retry; only then does the gateway call your Python crew at :8000 and return its result. The crew never sees the payment, and you did not touch its code.

What to charge for

Charge for the crew's output, not its mechanics, and price per the value of a run. A crew that produces a finished research report is one paid call for that report; a caller pays once and gets the deliverable. Resist gating per internal tool call or per agent step, which the caller neither sees nor cares about; they are buying the result, so price the result.

Keep discovery free. A route that lists what the crew does, what inputs it takes, and what it returns belongs on an unpriced path, so a caller (often another agent) can evaluate the crew before paying. Set the price from the crew's real cost (the upstream APIs and model calls a run consumes) plus a margin, then adjust on conversion data. The general pricing strategy is in how-to-monetize-ai-agent; the CrewAI-specific point is to price the run, keep discovery open, and let the gateway enforce it.

Keep a free discovery route

A paid crew that gives a caller no way to see what it does before paying will not get called, especially by machine callers that evaluate options programmatically. So pair every gated route with a free one. Leave a GET /crew/describe route off the gateway's pricing map (or serve it from the crew directly) that returns the crew's purpose, the inputs it expects, and the shape of what it returns. A caller, often another agent, reads that, decides the crew is worth the price, and then pays the gated POST /crew/run.

This mirrors how the pay side reasons: the crewai-wallet-tool lets a calling agent weigh a price before spending, and a free discovery route is what gives it something to weigh. Discovery free, work paid is the shape that makes an agent-to-agent economy actually transact, because both sides can evaluate before money moves.

Verify a paid run end to end

Before charging real callers, prove the loop on Base Sepolia. Call the gated route with no payment and confirm a 402 comes back quoting your price in USDC. Then call it through a paying client (the x402 client, or another agent's wallet tool) and confirm three things: the payment settles, the gateway proxies the request to your crew, and the crew's result comes back to the caller. Watch the dashboard for the matching settlement on the crew's agent profile, which is where the USDC lands.

That single end-to-end check, unpaid gets a 402 and paid runs the crew, is the whole contract. Once it holds on testnet, swapping the gateway's sk_test_ key for an sk_live_ key moves the same flow to Base mainnet with no other change, since the network is read from the key prefix.

Compatibility

The gateway sits in front, so it works regardless of how the crew is served.

CrewAI surface Works? Notes
Crew behind FastAPI / Flask Yes The gateway proxies paid requests to it
Process.sequential or hierarchical Yes The gateway gates the endpoint, not the process type
Crew.kickoff() invoked per request Yes One paid request maps to one run
Multiple crews or tiers Yes Put each on its own route with its own price
Gateway framework Node (Fastify/Express) The adapter is Node; the crew stays Python

When this fits

Monetizing a crew fits when the crew produces output worth paying for and you want machine callers, other agents, apps, to pay per use with no signup. The Node-gateway path fits any Python crew, which is most of them, and adds one small process rather than a rewrite.

It fits less well when the crew is internal-only (no external caller to charge) or when a human buyer wants a contract and an invoice (a traditional checkout suits that better). For an agent-facing crew that sells a result, the gateway plus per-call USDC is the path that reaches callers a signup funnel never would.

Pricing

Monetizing is free to set up; you pay the wallet platform fee per agent profile on the pricing page: Free is $0 per agent per month at a 5% transaction fee, Pro is $9 at 2%, Business is $29 at 1%. The fee applies to the crew's own agent profile, the one that receives the USDC, and scales with what you earn rather than a flat seat.

What to ship today

Stand up a small Node gateway with createX402Plugin in front of your crew's HTTP endpoint, price one route, and confirm an unpaid call gets a 402 while a paid one runs the crew and returns its result on Base Sepolia. Keep a free discovery route. For the broad integration overview see crewai-payment-integration. Pricing is on the pricing page.

FAQ

Frequently asked questions.

How does a Python CrewAI crew charge if the adapter is Node?

You put a small Node gateway in front of the crew. The gateway runs createX402Plugin from @blockchain0x/x402, returns the 402, verifies payment, and proxies paid requests to your Python crew service. The crew code does not change; the gateway is the paywall, the same front-with-a-gateway approach any non-Node stack uses.

Does my crew code need to change to be monetized?

No. The crew keeps serving its HTTP endpoint as it does now. Monetizing it is adding a gateway in front that gates the route, so the crew runs only on a verified payment. You are putting a paywall ahead of the crew, not rewriting it.

What does the crew charge for, the whole run or each tool?

Per request to the gated endpoint, which usually maps to one crew run that produces one result a caller pays for. Pricing is per route, so if you offer different crews or tiers, put each on its own path with its own price. Keep a free route for discovery so callers can see what the crew does.

Can the same crew also pay for things?

Yes. A crew can both earn (gated endpoint via the Node gateway) and spend (its agents pay through the wallet tool and proxy from crewai-wallet-tool). Earning is the receive side, spending is the pay side, and they use the same wallet per agent. One crew can be a buyer and a seller at once.

Which network and token does it settle in?

USDC, 6 decimals, on Base. The gateway's sk_test_ key settles on Base Sepolia (eip155:84532), sk_live_ on Base mainnet (eip155:8453). The only scheme is exact-usdc, and the gateway converts your decimal price to amountWeiUsdc.

Create your free agent wallet in 5 minutes.

First payment confirmed in under ten minutes. Free to start.