Systeme.io MCP Server

Funnels, email campaigns and sales reports for marketers.

Hosted MCP Server

npx add-mcp 'https://cotlet.dev/mcp/v1/systeme-io'

Installs into Claude Code, Codex, Cursor and more

Documentation

Cotlet · Integrations · How it works · Security · For developers · For automation agencies · Blog · API docs · Help center · Changelog · Contact · Pricing · Sign up

Systeme.io API and MCP server: Let your AI agent handle Systeme.io sales and pages.

Yes. Systeme.io has a public API and an official MCP server for contacts, tags, newsletters, campaigns, products, offers, courses, calendars and automation rules (checked 27 Oct 2026). Neither lists a transaction, issues a refund, sends an invoice, writes a blog post or edits part of an existing funnel page. Cotlet runs 13 hosted tools for those, over MCP for agents and REST for scripts.

Funnels, email campaigns and sales reports for marketers. Use it in ChatGPT, Claude or any AI agent over MCP, or in n8n, Make and scripts over REST.

MCP setup REST API guide

What can you automate in Systeme.io?

  • Refund a sale and send the invoice
  • Total last month's sales by country
  • Change a date or price on every funnel page
  • Copy a sales page for an A/B test
  • Publish blog posts from Markdown
  • Check if a buyer was already refunded

Does Systeme.io have an MCP server or an API?

  • Sales reach your code only as the SALE_NEW and SALE_CANCELED webhooks, from the day you subscribe. Earlier months stay in Sales > Transactions.
  • The MCP help (12 Oct 2026) says editing or deleting funnel steps is "not supported", and it can only regenerate the full content of a webinar page.
  • MCP keys last 90 days at most, and you can hold two at a time. OAuth is "currently planned".
What you needOfficial MCPPublic APICotlet
Contacts, tags, emails, courses, productsYesYesUse the official MCP
List transactions, refund, send invoicesNoSale webhooks onlyYes, refunds after your OK
Change one line on a funnel pageWhole webinar pageWhole page saveYes, chosen elements
Duplicate or delete a funnel stepNot supportedNoYes
Blog postsNoNoCreate and activate
Allowed by Systeme.ioYes, officialYes, officialUses the web app

Checked 27 Oct 2026. Sources: How to use the systeme.io MCP server (Help Center), Systeme.io MCP Server (developer docs), Systeme.io Public API index, systeme.io on Zapier, Systeme.io pricing

How does Cotlet connect to Systeme.io?

  1. Sign in to Systeme.io. Use your own account in its Cotlet Cloud Browser.
  2. Choose MCP or REST. Connect your agent or create a Cotlet API key.
  3. Run your workflow. Ask your agent or send an HTTP request.

We never keep your Systeme.io password, and no refund, invoice, deleted step or published post goes out before you approve it.

Connect Systeme.io to your agent or workflow

Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.

  1. Sign in to Systeme.io in a Cloud Browser. Create a Cotlet account, open Systeme.io in its Cloud Browser, log in with your own Systeme.io account on any plan and press Enable for agents.
  2. Add the Cotlet address. Set https://cotlet.dev/mcp/v1 as the MCP server or connector URL in your agent.
  3. Approve the connection. Chat apps send you to a Cotlet sign-in page. Code editors, n8n and scripts send an API key from the console.

https://cotlet.dev/mcp/v1 serves every Cotlet app you enable, Systeme.io included, and runs next to Systeme.io's own MCP server without a clash. If you enable Systeme.io after connecting, refresh the connector to see its tools.

Claude:

Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"

ChatGPT:

Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth

Cursor:

// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}

Codex:

# ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"

n8n:

MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: systeme_io_read

Make, Zapier:

Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: systeme_io_write

How to use the Systeme.io REST API

Create your Cotlet API key

Create a Cotlet API key with access to Systeme.io and its read operations. Store it as COTLET_API_KEY in your environment or automation platform's credential store.

Connect Systeme.io in Cotlet and enable it for agents. Account access: Your own Systeme.io account.

Make your first Systeme.io API request

REST:

curl "https://cotlet.dev/api/v1/systeme-io/transactions?limit=5" \
  -H "Authorization: Bearer $COTLET_API_KEY"

Read transactions and apply the operation limits

A successful REST call puts the tool output in result. This illustrative response excerpt omits call IDs, messages and credit details.

Illustrative response excerpt:

{
  "status": "success",
  "app": "systeme-io",
  "tool": "list_transactions",
  "result": {
    "transactions": [
      {
        "transaction_id": "tr_20931",
        "customer_email": "hans@example.com",
        "offer": "Starter course",
        "amount": 97,
        "currency": "EUR",
        "type": "sale",
        "customer_country": "DE",
        "customer_type": "individual",
        "occurred_at": "2026-10-08T09:12:00Z"
      },
      {
        "transaction_id": "tr_20944",
        "customer_email": "office@example.de",
        "offer": "Pro membership",
        "amount": 49,
        "currency": "EUR",
        "type": "sale",
        "customer_country": "DE",
        "customer_type": "company",
        "occurred_at": "2026-10-09T15:40:00Z"
      }
    ],
    "next_cursor": null
  }
}

Lists transactions with the same filters as the Transactions page: customer email, offer, transaction type, date range, customer country and customer type (company or individual). Results are newest first.

Pass next_cursor back as cursor for the next page.

from: Start of the date range.

to: End of the date range.

limit: 1 to 100. Default: 50.

cursor: Next page cursor from the previous call.

Keep the same selection when continuing a list. Compare changed record values as well as identifiers when refreshing your destination.

Systeme.io workflows for agents and automations

ToolConnect throughExample workflow
n8nHTTP RequestOne sale with customer, offer, amount, payment processor charge ID and refund status. Use get_transaction in your configured learning report.
MakeHTTP > Make a requestStarts a CSV export of transactions; Systeme.io emails the download link to your account address. Use export_transactions in your configured learning report.
Python or Node.jsREST APIYour sales funnels with their steps: name, type, URL path and page ID. Use list_funnel_steps in your configured learning report.

Send Authorization: Bearer <your Cotlet API key> in request headers. You configure the schedule, destination and record comparisons.

Cotlet reads Systeme.io; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.

Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.

The API and MCP reference lists operations and inputs. The REST API guide explains authentication, errors and approvals.

Systeme.io API endpoints and MCP tools

Sales, refunds and invoices

Refunds are whole sales only and need enough money in your payment gateway. Invoices go out one at a time; the CSV export arrives by email, not in the chat.

  • List transactions (list_transactions, read): Sales from the Transactions page, with customer, offer, amount and transaction type.
  • Get transaction (get_transaction, read): One sale with customer, offer, amount, payment processor charge ID and refund status.
  • Export transactions (export_transactions, read): Starts a CSV export of transactions; Systeme.io emails the download link to your account address.
  • Refund transaction (refund_transaction, write, asks first): Refund a sale in full through its payment gateway; an invoice with a negative amount is created.
  • Send invoice (send_invoice, write, asks first): Email the invoice of a transaction to its customer.

Funnel steps and page text

Text elements only: countdown dates, images and layout stay in the editor. URL paths must be lowercase.

  • List funnel steps (list_funnel_steps, read): Your sales funnels with their steps: name, type, URL path and page ID.
  • Get page content (get_page_content, read): Text elements of a funnel page (headlines, paragraphs, buttons) with an ID per element.
  • Update page text (update_page_text, write, asks first): Change the text of chosen elements on a funnel page and save it; the rest of the page stays as it is.
  • Duplicate funnel step (duplicate_funnel_step, write): Copy a step below the original, with "(copy)" in its name; set a new URL path for the copy.
  • Remove funnel step (remove_funnel_step, write, asks first): Permanently delete a step and its page from a funnel.

Blog posts

Posts are saved inactive, and categories must already exist in the blog.

  • List blog posts (list_blog_posts, read): Posts of a blog with title, URL path, categories and whether each is active.
  • Create blog post (create_blog_post, write): New blog post from Markdown, saved inactive so nobody sees it until you activate it.
  • Activate blog post (activate_blog_post, write, asks first): Show a post on your blog.

Inputs, REST path and example response of every tool: https://cotlet.dev/integrations/systeme-io-api-mcp-server#tools

Who can see my Systeme.io session, and how do I revoke it?

  • What we store. Your logged-in Systeme.io profile, AES-256-GCM, in Finland. Never the password.
  • What your agent gets. 13 Systeme.io tools. No cookie, no login, no MCP key.
  • What the session sees. What your login sees: buyers' emails, countries and amounts in Sales, your funnels and blogs.
  • What no tool touches. Payment gateways, your Systeme.io plan, contacts, emails and courses.
  • If Systeme.io logs you out. We email you a sign-in link. You log in yourself; we never do.
  • How to cut access. Disable for agents, reset the browser or delete the key. The next call fails.

Sub-accounts are separate Systeme.io accounts with their own login, so each one gets its own Cloud Browser. The Cotlet site has A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results); there is no SOC 2 report or third-party pentest yet.

Is it against Systeme.io's terms? Account safety

if your use of our services continuously impacts other users negatively, or is generating costs to us that are not normal compared to other customers and make our service to you unprofitable to maintain, we may block your access to our services

Systeme.io Terms and conditions, Article 8: Fair usage policy (undated, read 27 Oct 2026)

The terms of ITACWT Limited, the Irish company behind Systeme.io, say nothing about bots, scripts, scraping or third-party tools, and Article 8 promises to contact you about a block. Systeme.io runs its own MCP server, so agents in an account are expected. We found no public case of an account blocked over automation (checked 27 Oct 2026).

How we keep your account looking like you:

  • Your own Systeme.io login, typed in by you
  • One Cloud Browser with a steady IP and cookies
  • Refunds, invoices, deleted steps and live posts wait for your OK
  • Normal page loads, a few calls a run, not bulk exports
  • If Systeme.io objects, we pause the Systeme.io tools for everyone within 24 h

A refund needs enough money in your Stripe or PayPal balance. When it fails, the agent reports the gateway message and does not try again.

What happens when Systeme.io changes?

  • 12 h between tests of the Systeme.io sales, funnel and blog reads
  • 24 h between tests of writes a buyer or visitor would see
  • $0 for a call to a Systeme.io tool paused for a fix

Systeme.io moves fast: the MCP help was rewritten on 12 Oct 2026 and a beta page template endpoint arrived on 30 Sep 2026. When a screen moves, we repair the tool and keep its name. If the official MCP server gains one of these jobs, use it there. status.cotlet.dev checks the site, console and API every 3 minutes.

Approvals, undo and mistakes

  1. Finds the sale. By the buyer's email and date. Two matches or none, it asks you.
  2. Checks it is not refunded. A buyer who wrote twice never gets two refunds.
  3. Waits for your OK. The full refund waits in your Cotlet console with the amount.
  4. Sends proof. The negative-amount invoice goes to the buyer, and any course access is named for you.
ActionUndo
Refund a saleNo, the money is back with the buyer
Send an invoiceNo, the email is out
Change page textYes, update_page_text with the old words
Delete a funnel stepNo, the page is gone
Duplicate a stepYes, remove_funnel_step
Activate a blog postNot with a tool; deactivate it in the dashboard

5 of the 7 write tools ask first. duplicate_funnel_step and create_blog_post run at once, because a copy nobody links to and an inactive post reach no one. Reads run at once. For a scheduled run you can switch the wait off per tool.

Systeme.io refunds whole sales only. Ask for half back and the agent stops and tells you, rather than refunding the full amount.

MCP call:

{
  "name": "update_page_text",
  "arguments": {
    "step_id": "8841207",
    "changes": {
      "headline-1a2b": "Live training: Thursday 7 PM",
      "button-9f3c": "Save my seat"
    }
  }
}

REST:

curl -X PATCH https://cotlet.dev/api/v1/systeme-io/steps/8841207/page-text \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"changes":{"headline-1a2b":"Live training: Thursday 7 PM","button-9f3c":"Save my seat"}}'

Response:

{
  "step_id": "8841207",
  "updated_elements": 2,
  "saved_at": "2026-10-11T14:05:12+02:00"
}

A cron job or a support inbox script can call the same tools over REST at /api/v1/systeme-io, with one key and one price. A call that fails in Systeme.io returns its message and costs nothing. Every tool row above lists its REST path.

How much does the Systeme.io MCP server cost?

About $13 a month for one course creator with about 60 sales a month, 2,310 credits. Works on Systeme.io Free; Startup is $17 a month.

JobCallsCredits
Yesterday's sales, daily1 × 30300
Refund and send the refund invoice4 × 3120
Sales by country for the accountant, monthly3 × 130
New date or price across a 3-step funnel10 × 2200
Blog post created, then activated, weekly3 × 4120
B version of the sales page4 × 140
Cloud Browser, 30 days1,500
Total2,310
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • No Systeme.io MCP key or paid plan needed

The month is our example: about 60 sales, 3 refund requests, two date changes on a 3-step funnel, a weekly blog post and one sales page variant. Systeme.io publishes no sales per account; it has about 500,000 users, mostly solo creators. Dollars at the $29 pack rate.

Systeme.io MCP server on GitHub, Zapier or hosted: which to use

OptionWhat it doesWhere it stops
softreviewed/systeme-extra-mcpEvery public API endpoint as 152 actions in 22 groups, on a Public API key. 0 stars, last commit 20 Oct 2026, MIT.Its README: anything missing from the API, "for example, refunds", is missing here too.
snzeeee/mcp-server-systemeioContacts, tags, courses and subscriptions for Claude Desktop. 3 stars, last commit 30 Mar 2026, MIT.API only, runs on your computer.
lexiitong/systemeio-cliCommand line reads on your logged-in browser: transactions, funnel stats, newsletters. 0 stars, Apache-2.0.Reads only, no MCP server, runs while your computer is on.
ZapierNew sale, opt-in, tag and webinar triggers; contact, tag, campaign and course access actions, also through Zapier MCP.Same surface as the API: no refunds, invoices, pages or blog.

For contacts, emails, courses and products, connect Systeme.io's own MCP server; it is free and official. For new sales into another app, Zapier does it. For refunds, invoices, sales reports, funnel page text and blog posts, add Cotlet next to it.

Also listed on: Odel, mcpbeat

Who runs Cotlet

Cotlet belongs to Take Group sp. z o.o., a software company registered in Poland, EU (VAT PL6342984273), trading since 2019. The founders are Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the Systeme.io tools go to contact@cotlet.dev.

Systeme.io API and MCP: questions

How do I get access?

Sign up free at https://cotlet.dev, open Systeme.io under Integrations in the console and log in to Systeme.io in its Cloud Browser. The trial starts when you sign up and needs no card.

How do I connect Systeme.io to ChatGPT or Claude?

Sign up at cotlet.dev, log in to Systeme.io once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Systeme.io account through Cotlet, in their phone apps too.

What can ChatGPT do in Systeme.io?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Systeme.io: refund a customer and send the refund invoice; monthly sales report by country and customer type; update text across funnel pages. You ask in plain words, and anything that reaches other people waits for your OK first.

Do I need a Systeme.io MCP key?

No. Cotlet works in your own Systeme.io account after you sign in once. Systeme.io's own MCP keys last 90 days at most and you can hold two at a time, so Cotlet does not depend on them.

Can my agent refund part of a sale?

No. Systeme.io supports full refunds only, and the payment gateway balance must cover the refund. After it, Systeme.io creates an invoice with a negative amount that send_invoice can email to the customer.

Can I use Cotlet and the official Systeme.io MCP server together?

Yes. Add both to your agent. Their tools do not overlap: the official one handles contacts, emails, products and courses, Cotlet handles sales, funnel page text and the blog.

Does Systeme.io have webhooks?

Six: contact opt-in, contact created, tag added, tag removed, new sale and sale canceled. No event is named for refunds, and the help does not say whether a dashboard refund fires sale canceled, so run your agent on a schedule and read Transactions to catch refunds.

Does it work on the free plan?

Yes. Cotlet works in your own account on Free, Startup, Webinar or Unlimited. Free allows one blog and stops taking payments after USD 10,000 in lifetime sales, and those limits stay.

Is the MCP server different from the REST API?

Only in how you call it. Both have the same 13 tools, inputs and answers, with one API key and one price. Agents use MCP; scripts and support inbox handlers use REST.

Is Cotlet affiliated with Systeme.io?

No. Cotlet is independent and not affiliated with Systeme.io or ITACWT Limited.

Can I use the Systeme.io API without an AI agent?

Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.


Give your AI agents your signed-in browser.

Product: Integrations · How it works · Pricing · Security

Resources: Blog · API docs · Help center · Changelog · GitHub

Solutions: For developers · For automation agencies

Company: About · AI info: company facts · Contact

Legal: Terms of service · Privacy policy · Refund policy · Acceptable use · Cookie policy · DPA · Subprocessors

Elsewhere: Status page · Cotlet on GitHub · Cotlet on X · Cotlet on LinkedIn · Cotlet on Product Hunt · Cotlet on Crunchbase · Cotlet on SaaSHub

Cotlet.dev is built by Bart Krawczyk and Jake Slugocki, the founders of Take Group sp. z o.o., ul. Wincentego Janasa 4, 40-855 Katowice, Poland. KRS 0000871398, NIP 6342984273, VAT EU: PL6342984273. About us

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.