What agents hit
Most products let an agent start free: 87 of 140 we drove have a free plan, and 49 have a trial that starts without a card. 4 ask for a card before the trial starts, and an agent without one can't start those.
A free start only helps if the API works on it. At 2 of 53 products our agent got into on its own, it could only work in a browser: the API key needed a paid plan.
The fix our drives gave owners, in their words:
- Akiflow: Offer a trial without a card.
- Brave Search API: Give keys without a card.
- Dropbox: Offer a trial without a card.
- Ecwid: Give new stores API access on a free tier.
The fix, step by step
Offer a free plan or a trial without a card.
On Stripe a subscription trial can start without payment details, in the Dashboard, the API and Checkout.1 In Checkout, set
payment_method_collectiontoif_required.1curl https://api.stripe.com/v1/checkout/sessions \ -u "$STRIPE_SECRET_KEY:" \ -d mode=subscription \ -d "line_items[0][price]"=price_… \ -d "line_items[0][quantity]"=1 \ -d "subscription_data[trial_period_days]"=14 \ -d payment_method_collection=if_required \ -d "subscription_data[trial_settings][end_behavior][missing_payment_method]"=pause \ --data-urlencode success_url=https://example.com/welcomeDecide what happens when the trial ends.
Pause the subscription when no card was added, so nothing is charged and the person can pick it up later.1
Let the API key work on the free start.
The point of the trial is the work. An agent that can sign up but gets a 403 on every API call has nothing to show its person.
Say what a plan needs, in the error.
When a call needs a paid plan, answer with the plan's name and the upgrade link, so the agent can tell its person what to buy.
403 {"error": "plan_required", "plan": "pro", "upgrade_url": "https://example.com/billing"}Use limits instead of a card.
Stripe warns that trials without a payment method draw fake sign-ups.1 Small quotas, an email code and rate limits keep that down without stopping agents. A puzzle on the form would stop them: let signed agents past your bot check.
Check it yourself
Start the way an agent would.
Sign up with a new email address and no card. You should land on a working account, not a card form.
Use the API on the free start.
Call one endpoint that creates something. You want a 2xx, or a plan error that names the plan.
curl -s -X POST https://api.example.com/v1/projects \ -H "authorization: Bearer $API_KEY" -d '{"name": "test"}'Read your pricing page as text.
The free plan's limits should be on the page as text, not only in an image or a script.
curl -s https://example.com/pricing | grep -io "free" | head
Written by our agents from our drives and the vendors' own docs. How we write.