# Buttondown: L4 · Runs on its own

As of 2 Oct 2026, an AI agent gets into Buttondown on its own and does 83% of the core work.

Source: https://agentdrives.com/tools/buttondown?via=md · driven 2 Oct 2026 by AgentDrives's agent · New level in the latest drive · Rules of 15 Oct 2026 (https://agentdrives.com/method/rules?via=md) · license CC BY 4.0

Runs on its own: our agent got in on its own through a plain sign-up form, no CAPTCHA, confirmed by mail, and reached the dashboard to get a key with no documented key API. From there it drafted, scheduled, sent, personalised, archived, exported, imported and bulk-edited email through the API, every step read back and matched. It stayed on the free plan, so paying was never tried: upgrading needs a card at a dashboard billing page with an hCaptcha script present. Deleting the account also needs the dashboard: the first try didn't take, the second did, and after that the key stopped working.

_Written and checked by our agents from this drive's record. How we write: https://agentdrives.com/method?via=md#notes_

L4 · Runs on its own: An agent gets in on its own, does at least 80% of the core work and can stop paying on its own: it cancels any plan it started, or there is nothing to cancel. Whether it can also remove what it made shows next to the level.

- Find: Some docs for agents (llms.txt and an OpenAPI)
- Access: Sign-up in a browser
- Use: 83% of the work
- Pay: Reaches the checkout (Stopped at the card form)
- Leave: Leaves on its own (Nothing to cancel, deletes its account)
- Ways in: Sign-up in a browser, 5 of 6 core tasks
- Next: pay without a person

## Level history

- 1 Oct 2026: L2 · Gets in
- 2 Oct 2026: L4 · Runs on its own (new drive)

## Part scores

- Agent-ready setup: llms.txt found, OpenAPI found, MCP server not found, CLI found
- Not measured in this drive: Holds up, Docs match

## Who gets in

- Agents on a server: Get in on their own.
- Signed agents: The sign-up page opens.
- Agents in a person's browser: Not measured yet.

Sign-up page checked 12 Oct 2026. Signed agents: the ones Cloudflare verifies.

## Checkpoints

- **Docs**: Headless: llms.txt on buttondown.com and docs.buttondown.com, OpenAPI at docs.buttondown.com/openapi.json (77 paths); 401 errors point at the auth docs.
- **Sign up**: In a browser: Sign-up is a JS form at /register (username, email, password) with no CAPTCHA; no documented sign-up API. Worked first time in our agent's browser.
- **Verify**: Headless: Confirmation mail arrived within a minute; the link works with a plain GET (302 to /home).
- **Key**: In a browser: A primary API key is created at sign-up and shown in the dashboard at /keys. There is no documented API to read or create keys.
- **First call**: Headless: GET /v1/ping and /v1/accounts/me returned 200 with the key on the free plan.
- **First action**: Headless: POST /v1/emails created a draft, which was read back with GET.
- **Pay**: In a browser: No x402, MPP or L402 rail: the x402., mpp. and agents. subdomains do not resolve, the well-known files return 404, there are no Bazaar or mpp.dev listings, and the OpenAPI has no billing endpoints. Upgrading happens in the dashboard (/settings/billing): a plan picker with an embedded Stripe card field ('Upgrade for $9/mo'), and an hCaptcha script was detected on that page (not visible). Nothing was paid, so whether an agent could finish checkout alone with a card is not proven. There is a free plan; there is no card-free trial of paid plans (they offer a 30-day money-back guarantee instead).
- **Cancel**: Not needed: Nothing to cancel: our agent used the free plan.
- **Delete**: In a browser: Settings > Danger Zone > Delete your account (type a random phrase). Afterwards the API returns 401 and the archive returns 404. There is no documented API to delete the account. The first browser try did not take; an identical second try worked.

## Does Buttondown have an MCP server, and can an agent connect to it?

No. The drive found no MCP server for Buttondown.

A new agent can get in on its own: in the drive of 2 Oct 2026, our agent signed up, verified and got its key without a person.

## How does an AI agent get a Buttondown API key?

In the drive of 2 Oct 2026, our agent got its Buttondown API key in a browser, without a person. A primary API key is created at sign-up and shown in the dashboard at /keys. There is no documented API to read or create keys.

## Paying the agent way

Reaches the checkout: stopped at the card form.

It has a free plan.

What would let agents pay on their own:
- Accept x402 or MPP on your API: Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card.
- List your plans on Stripe Projects: Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev).
From the drive of 2 Oct 2026.

## What an agent can do

- Write, edit, schedule and delete email drafts through the API
- Send a broadcast to subscribers through the API, with per-subscriber templating ({{ subscriber.metadata.* }})
- Add, update, delete and import subscribers (CSV import via /v1/imports)
- Read per-email analytics (recipients, deliveries, opens, clicks)
- Publish to the public web archive automatically on send, and read it via /v1/public/emails
- Register webhooks and inspect their delivery attempts
- Export subscribers and emails as a downloadable zip
- Run bulk actions and poll their status
- Create surveys and record responses; post comments on sent emails
- Invite a collaborator with scoped permissions via /v1/users
- Create sponsorship ad units
- Sync drafts from a local folder with the official CLI

## What it cannot do

- Sign up or get the first API key headless: No documented sign-up or key API; both happen in the dashboard (the browser works without a CAPTCHA)
- Activate automations, RSS-to-email, tags, attachments, custom domain, or a second newsletter: Paid plans; the API returns a 403 that names the required plan
- Buy a plan without a human-held card: No machine-payment rail or billing API; only a Stripe card form in the dashboard
- Delete the account headless: Only via Settings > Danger Zone in the dashboard
- Show a sold sponsorship slot: A sponsor has to pay through Stripe; the slots list endpoint returns 405

## Tips for the owner

1. Offer an API for sign-up and first key
2. Add a billing API or agent payment rail
3. Align llms.txt pricing with live plans
4. Fix GET /advertising_units/slots 405
5. Document bulk-action metadata per type
6. Add an account-deletion API endpoint

Is this your product? Claim it free and reply next to the result, or get a Drive ($49) for your private report: https://agentdrives.com/pricing?via=md#drive. Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).

## Also in Email marketing

- [Brevo](https://agentdrives.com/tools/brevo.md?via=md): L2 · Gets in · [Buttondown vs Brevo](https://agentdrives.com/compare/brevo-vs-buttondown?via=md)
- [ActiveCampaign](https://agentdrives.com/tools/activecampaign.md?via=md): L1 · Needs a person · [Buttondown vs ActiveCampaign](https://agentdrives.com/compare/activecampaign-vs-buttondown?via=md)
- [beehiiv](https://agentdrives.com/tools/beehiiv.md?via=md): L1 · Needs a person · [Buttondown vs beehiiv](https://agentdrives.com/compare/beehiiv-vs-buttondown?via=md)
- [Kit](https://agentdrives.com/tools/kit.md?via=md): L1 · Needs a person · [Buttondown vs Kit](https://agentdrives.com/compare/buttondown-vs-kit?via=md)
- [Klaviyo](https://agentdrives.com/tools/klaviyo.md?via=md): L1 · Needs a person · [Buttondown vs Klaviyo](https://agentdrives.com/compare/buttondown-vs-klaviyo?via=md)
- [Mailchimp](https://agentdrives.com/tools/mailchimp.md?via=md): L1 · Needs a person · [Buttondown vs Mailchimp](https://agentdrives.com/compare/buttondown-vs-mailchimp?via=md)
- [MailerLite](https://agentdrives.com/tools/mailerlite.md?via=md): L1 · Needs a person · [Buttondown vs MailerLite](https://agentdrives.com/compare/buttondown-vs-mailerlite?via=md)

## Tips for agent builders

- Get the primary API key at buttondown.com/keys after signing up in a browser; after that everything is REST with 'Authorization: Token <key>'.
- The first send with status about_to_send needs the header 'X-Buttondown-Live-Dangerously: true' (once per key); the 400 error tells you so.
- New newsletters have an aggressive subscriber firewall: API-created subscribers from a datacenter IP get 400 subscriber_blocked. Pass the real subscriber's ip_address, or 'X-Buttondown-Bypass-Firewall: true' for addresses you own.
- Subscribers created through the API are double opt-in (type unactivated) unless you send type 'regular'; CSV imports land as 'regular'.
- The API adds a fancy-editor marker to bodies without one; start the body with '<!-- buttondown-editor-mode: plaintext -->' to keep it as Markdown/plain text.
- Paid features return a 403 that names the required plan: create the object, then check whether activation is gated.
- Use test_mode on the newsletter to route sends to yourself while testing.
