Can an AI agent use Postiz?
As of 2 Oct 2026, an AI agent gets into Postiz on its own.
- Find: Docs for agents: llms.txt, an OpenAPI and an MCP server.
- Access: Sign-up in a browser.
- Use: Work not reached.
- Pay: Card checkout.
- Leave: Nothing to cancel: Can't delete its account.
To reach L3 · Does the work: let a trial or free plan reach the core features.
With an account set up by a person: not measured yet.
Got in on 2 of 3 drives: the bot check let it through in some and not in others.
What the levels meanDriven 2 Oct 2026Same level in 2 drives in a rowRules of 15 Oct 2026Claim this page
Written and checked by our agents from this drive's record. How we write.
Who gets in
- Agents on a serverGet in on their own.
- Signed agentsThe site opens.
- Agents in a person's browserNot measured yet.
Sign-up page checked 12 Oct 2026. Signed agents: the ones Cloudflare verifies. Where agents come from
What an agent can do in Postiz.
On its own
- Read the full developer documentation automatically
- Create an account and verify it through the normal sign-up flow
- Get a developer connection token without copying and pasting an API key
1 more
- See the list of available automation commands
What it can't, and why
- Connect a social media channel or schedule/publish any postNo free plan exists; the trial requires a credit card
- Pay for a plan itselfOnly a human credit-card checkout is offered, no agent payment option
- Delete the accountAccount deletion requires emailing human support
Can an AI agent sign up for Postiz on its own?
Yes, in a browser, without a human. Web form only (no documented headless sign-up); no visible CAPTCHA.
Does Postiz have an MCP server, and can an agent connect to it?
Yes. Postiz has an official MCP server.
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. Through the MCP server, 2 of our agent's 3 attempts worked.
What the drive found
APIOpenAPIMCP · officialCLISDKllms.txtWebhooks–SandboxHow does an AI agent get a Postiz API key?
In the drive of 2 Oct 2026, our agent got its Postiz API key in a browser, without a person. Documented MCP OAuth with dynamic client registration: DCR and token exchange headless, one consent click in the logged-in browser. API key itself not shown without a subscription.
Can an AI agent delete its Postiz account?
Not on its own: needs a human. Docs: no self-serve account deletion; email support@postiz.com. Not sent (no messages to real people); the account and its OAuth grant remain (Approved Apps page is behind the paywall).
Not tested in this drive: paying. Every checkpoint, in detail
For the team behind Postiz.
Where agents stop in Postiz today, and the fixes that get them further, highest impact first.
The fixes, highest impact first
- Offer a no-card trial or free tierStep-by-step guide
- Add an agent-payable checkout railStep-by-step guide
- Enforce subscription on the MCP server
2 more fixes
- Add self-serve account deletion
- Make cancel available via API
- Claim it free and reply next to the result.
- A Drive, $49: your private report, with where agents stop, the evidence and the fixes that move your level.
- Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).
Details
Your API, MCP server or CLI is the product? An Audit ($299) also checks every documented route, MCP tool and CLI command against your docs. Compare plans.
Already claimed it? Open it in your dashboard.
Rather not be driven? Block AgentDrivesAgent in robots.txt or write to us. We stop driving it ourselves; this page stays, with its date.
Embed the badge on your site
Behind the level.
The work, its reliability and the crash test weren't measured in this drive. The part scores are what it could judge.
Part scores · level history · paid plans
Part scores
Agent-ready setup
- llms.txt: found
- OpenAPI: found
- MCP server: found
- CLI: found
Not measured in this drive: Holds up, Docs match (part of an Audit).
Level history
- 1 Oct 2026L1Needs a person
- 1 Oct 2026sign-up variesL2Gets in
- 2 Oct 2026L2Gets in
Needs a paid plan
Not counted in the level. Our drive used none (no free access).
| Capability | Plan |
|---|---|
| any paid plan (7-day trial needs a card) | |
| any paid plan (7-day trial needs a card) | |
| any paid plan (7-day trial needs a card) | |
| any paid plan (7-day trial needs a card) | |
| any paid plan (7-day trial needs a card) | |
| any paid plan (7-day trial needs a card) | |
| any paid plan (7-day trial needs a card) | |
| any paid plan (7-day trial needs a card) | |
| any paid plan (7-day trial needs a card) | |
| any paid plan (7-day trial needs a card) | |
| any paid plan (7-day trial needs a card) | |
| any paid plan (7-day trial needs a card) |
For agents and builders.
The drive as data, every checkpoint and all 46 attempts.
How an agent connects · 4 tips
/api/tools/postiz.json/tools/postiz.mdMCP get_tool {"slug":"postiz"}
- Use the hosted MCP (https://mcp.postiz.com/mcp-oauth-dynamic): it supports dynamic client registration and PKCE, so no API key copy-paste is needed; consent needs a logged-in browser once.
- Without an active subscription (trial needs a card) the API and CLI answer 401 'No subscription found': have a human start the trial first.
- The documented connect-channel route is GET /public/v1/social/{integration}, not /integrations/connect/{integration}.
- Self-hosted Postiz has no subscription gate if you can run Docker.
Every checkpoint, in detail · 9 checkpoints
- DocsHeadlessllms.txt on postiz.com and docs.postiz.com, llms-full.txt, every page as .md with embedded OpenAPI.
- Sign upIn a browserWeb form only (no documented headless sign-up); no visible CAPTCHA.
- VerifyIn a browserActivation mail arrived in ~1 min; link opened in the browser logs you in.
- KeyIn a browserDocumented MCP OAuth with dynamic client registration: DCR and token exchange headless, one consent click in the logged-in browser. API key itself not shown without a subscription.
- First callHeadlessMCP initialize/tools/list (19 tools)/integrationList worked without a subscription; public API and CLI return 401 'No subscription found'.
- First actionBlockedNo free plan: the whole app is replaced by a plan picker; the 7-day trial needs a card in Stripe embedded checkout. No channel can be connected, so nothing can be created.
- PayNot triedNo 402/x402/MPP/L402, no agent-commerce discovery, no billing API. The trial requires a card (authorisation check) in Stripe embedded checkout with Stripe's invisible hCaptcha; we have no card.
- CancelNot neededNothing to cancel: our agent started no paid plan.
- DeleteDone by a humanDocs: no self-serve account deletion; email support@postiz.com. Not sent (no messages to real people); the account and its OAuth grant remain (Approved Apps page is behind the paywall).
The attempt log · 46 attempts
| Capability | Route | Result | Evidence |
|---|---|---|---|
| Find docs: Read llms.txt, docs llms.txt, API intro | api | done ✓ | postiz.com/llms.txt and docs.postiz.com/llms.txt (+ llms-full.txt, 512 KB) 200 text/plain; API reference per endpoint as .md |
| Sign up: Create account with email/password/company | browser | done ✓ | Web form at platform.postiz.com/auth. redirected to /auth/activate. No visible CAPTCHA. No documented headless signup route. |
| Verify email: Open activation link from the agent's inbox | browser | done ✓ | Mail 'Activate your account' from amarie@postiz.com arrived within ~1 min; link /auth/activate/<JWT> logged us in and landed on /launches?onboarding=true |
| Use the app after login: Reach the calendar/composer | browser | blocked ✓ | After login the whole UI is replaced by the plan picker: 'Pay $0 Today - Start your free trial!' with embedded Stripe Checkout asking for a card. Only 'Developers' (create OAuth app) is reachable. |
| Get API credentials: Get a token for MCP via documented OAuth with dynamic client registration | mcp | done ✓ | mcp.postiz.com/.well-known/oauth-protected-resource/mcp-oauth-dynamic and oauth-authorization-server metadata; POST api.postiz.com/oauth/register (DCR) -> 201 client pcd_...; consent screen platform.postiz.com/oauth/authorize clicked Authorize in browser; POST api.postiz.com/oauth/token (PKCE) -> 200 pos_ token |
| First API/MCP call: MCP initialize + tools/list + integrationList | mcp | done ✓ | initialize -> serverInfo 'Postiz MCP' 1.0.0; tools/list -> 19 tools (saved mcp_tools.json); tools/call integrationList -> {"output":[]} |
| First API call: Public API with OAuth token | api | plan_gated ✓ | GET https://api.postiz.com/public/v1/integrations and /public/v1/is-connected -> 401 {"msg":"No subscription found"} |
| First CLI call: postiz integrations:list (npm postiz CLI) with token as POSTIZ_API_KEY | cli | plan_gated ✓ | ❌ Failed to list integrations: Request failed: API Error (401): {"msg":"No subscription found"} |
| Pay step probe: Probe 402/x402/MPP/L402, well-known, checkout | api | done ✓ | api.postiz.com/public/v1/* unauthenticated -> 401 {"msg":"No API Key found"} (no 402, no PAYMENT-REQUIRED/WWW-Authenticate Payment); x402./mpp./agents.postiz.com do not resolve; /.well-known/ucp, /auth.md, /SKILL.md 404 HTML; no x402/MPP/L402/ACP/UCP in docs llms-full.txt. Checkout = Stripe embedded checkout in app (cs_live_), card required even for the $0 trial. |
| Cancel plan: Nothing to cancel (no trial started) | none | skipped | No subscription was started. Docs: cancel on the Billing page in web UI, requires a >=20-char reason, may show a 50% retention offer. |
| Delete account: Find self-serve account deletion | none | blocked ✓ | docs llms-full.txt: 'There is no self-serve account deletion or data export in Postiz today. Email support@postiz.com for account closure'. Not emailed (no messages to real people). |
| Schedule a post: Schedule a post on the free/no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). No channel can be connected (connect endpoint is behind the same 401), so nothing can be posted. |
| Publish now: Publish now on the free/no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). No channel can be connected (connect endpoint is behind the same 401), so nothing can be posted. |
| Per-channel content: Per-channel content on the free/no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). No channel can be connected (connect endpoint is behind the same 401), so nothing can be posted. |
| Cross-post: Cross-post on the free/no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). No channel can be connected (connect endpoint is behind the same 401), so nothing can be posted. |
| Threads: Threads on the free/no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). No channel can be connected (connect endpoint is behind the same 401), so nothing can be posted. |
| Media: Media on the free/no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). No channel can be connected (connect endpoint is behind the same 401), so nothing can be posted. |
| AI generation: AI generation on the free/no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). No channel can be connected (connect endpoint is behind the same 401), so nothing can be posted. |
| Repeating posts: Repeating posts on the free/no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). No channel can be connected (connect endpoint is behind the same 401), so nothing can be posted. |
| Clipping: Clipping on the free/no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). No channel can be connected (connect endpoint is behind the same 401), so nothing can be posted. |
| Calendar list/reschedule: Calendar list/reschedule on the free/no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). GET /public/v1/posts?startDate=2026-10-01T00:00:00Z&endDate=2026-10-31T00:00:00Z -> 401 No subscription found. |
| Connect channel: Connect channel on the free/no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). Documented connect route GET https://api.postiz.com/public/v1/social/x -> 401 {"msg":"No subscription found"} (the map's /integrations/connect/{integration} path is 404; OpenAPI says GET /social/{integration}). |
| AI agent chat: AI agent chat on the free/no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). No channel can be connected (connect endpoint is behind the same 401), so nothing can be posted. |
| Drive Postiz via MCP: tools/list then create a post | mcp | partial ✓ | tools/list returned 19 tools and integrationList answered (empty) without a subscription; create_post (integrationSchedulePostTool) needs a connected channel, which needs a subscription; not attempted further. |
| Draft/schedule status: Draft/schedule status on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Delete post: Delete post on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Preview link: Preview link on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Manage channel: Manage channel on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Time slots: Time slots on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Customer groups: Customer groups on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Invite link: Invite link on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Plugs: Plugs on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| RSS auto-post: RSS auto-post on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Webhooks: Webhooks on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Platform analytics: Platform analytics on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Post analytics: Post analytics on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Duplicate post: Duplicate post on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Missing content: Missing content on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Post settings: Post settings on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Media library: Media library on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Sets: Sets on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Signatures: Signatures on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Team: Team on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| API key / OAuth app: API key / OAuth app on the no-card scope | api | plan_gated ✓ | OAuth app creation (Settings > Developers) is visible on the paywall screen; API key not shown without a subscription. Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Provider tools: Provider tools on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). |
| Notifications: Notifications on the no-card scope | api | plan_gated ✓ | Public API GET /public/v1/integrations with our OAuth token -> 401 {"msg":"No subscription found"}; docs (cloud overview) "There is no free plan... an organisation without a subscription cannot use the app"; the 7-day trial requires a card (docs.postiz.com/cloud/trial "Starting a trial requires a payment method"). GET /public/v1/notifications -> 401 No subscription found. |
Also in Social media scheduling.
BufferL1Can't sign up on its ownPostiz vs Buffer
PublerL1Can't sign up on its ownPostiz vs Publer
TypefullyL1Can't sign up on its ownPostiz vs Typefully
LaterL0Can't sign up on its own