Sendloop logo

Sendloop API + MCP (2026): v3 from 2011, no official MCP server

Last verified Aug 27, 2026

Sendloop still advertises a “full-featured API and webhooks”, but the API you would build against is v3, announced on September 28, 2011, and no v4 has ever followed. All three official client libraries are PHP, all have been renamed “legacy” by Octeth, and the newest release among them shipped on April 1, 2015. There is no official MCP server, no public endpoint catalogue, no OpenAPI spec and no published rate limits, and the documentation URL Sendloop’s own SDK points to returns HTTP 404.

Integrating in 2026 is therefore a reverse-engineering exercise supported by one attested command name and three third-party agent wrappers. This page records what first-party sources verify and marks the rest unpublished. For a documented API with maintained SDKs, compare EmailOctopus, MailerLite, Sender and Moosend.

At a glance

v3
API version
Announced September 28, 2011. RPC-style, dotted command names. No v4 in 15 years.
3
Official SDKs
All PHP, all abandoned. Last release April 1, 2015. No Python, Node, Ruby or Go client.
0
Official MCP servers
Three third-party agent paths exist. None of them can send an email.

MCP integration in 2026

Model Context Protocol is how an AI agent discovers and calls a vendor’s tools without bespoke glue. By 2026 most active ESPs ship a first-party MCP server. Sendloop ships none, so the question is not whether an agent can reach it, it can, through resellers, but how much those resellers expose.

i

No official Sendloop MCP server exists

Octeth publishes no first-party MCP endpoint for Sendloop and has announced no plan to build one. Every agent path is third-party and read-mostly: 5 read-only tools via Composio, or 4 triggers and 2 subscriber actions via the official Zapier app. None can compose or dispatch a campaign or a transactional message, agents read Sendloop and manage list membership, nothing more.

Available MCP servers

All three are third-party, not Octeth, and each needs your own Sendloop API3 key. None is a managed app, so credential handling is yours.

Why buyers should care

An MCP surface is now a proxy for whether a vendor still invests in its API. Sendloop’s absence matches the rest of its developer story: last SDK release 2015, last blog post May 26, 2023, documentation portal unreachable. If your 2026 roadmap includes agents that draft or send campaigns, Sendloop cannot participate. Agent-driven reporting and list hygiene work today; sending does not.

Sendloop API essentials

API v3 is RPC-style, not REST: you POST a form-encoded payload carrying a Command in Resource.Action form, an API key and a response format, and receive JSON back. There are no verbs beyond POST, and status semantics live in the body, not the status line.

API versionv3, announced September 28, 2011 CURRENT
StyleRPC over HTTP POST, dotted command names (List.GetList)
Base URLNot published. Account-scoped under your own Sendloop subdomain
Response formatJSON, selectable at call time; XML is the historical alternative
AuthenticationAPI key (API3 key) plus account subdomain
Key locationApp Settings › API Settings
Request timeoutNot published
PaginationNot published
Rate limitsNot published in any official material
OpenAPI specNone
Public referenceNone. The SDK’s docs link returns HTTP 404
WebhooksPro-plan ($39/mo) feature; no payload schema published

The account-scoped design matters more than it looks. Because the PHP SDK takes your subdomain as a separate argument, the request host differs per customer and no single base URL exists to publish. You cannot copy a working call from another account, nor lift one from documentation. Treat the endpoint as configuration from your own account or a support ticket.

Authentication methods

API key, the only documented path

Sendloop authenticates with a per-account key its SDK labels the API3 key, generated at Settings › API Settings. It travels in the request payload, not an Authorization header, consistent with the API’s 2011 design. So the key lands in POST bodies, and there is no documented rotation, scoping or expiry. Treat it as a full-privilege account credential. The account subdomain is a second required argument, the wrapper takes it as its second constructor parameter, and a mismatch surfaces as an authentication error rather than a routing error, which is hard to debug with no documentation.

OAuth 2.0, advertised by a reseller only

Composio’s toolkit lists both OAuth2 and API-key schemes. Sendloop publishes no OAuth documentation, no authorization URL, token endpoint, scope list or client registration. Only the API-key path is attestable, so build against that and treat any OAuth affordance in a third-party console as undocumented behaviour.

No scope model, and no way to issue a limited key

With no key-scoping documentation, assume one API3 key grants full account access: read subscribers, mutate lists, read reports. Handing a key to an agent platform such as Composio hands over the whole account, the toolkit’s tools are read-only, the credential is not. For customer-facing work, front the API with your own proxy.

Rate limits

Sendloop publishes no rate limit of any kind. Every row below reads unpublished because no official page carries a figure and the help portal that would have held them is offline. These cells are empty by choice, not estimated.

LimitDocumented valueNotes
API requests per minuteNot publishedNo throttling policy, 429 semantics or retry guidance in any official source.
Emails per hourNot publishedPlans meter subscribers stored, not send rate.
Recipients per messageNot publishedNo per-message recipient cap is stated anywhere.
Concurrent connectionsNot publishedMoot, there is no SMTP relay to hold connections against.
Maximum message sizeNot publishedNo MB ceiling stated for campaign or transactional payloads.
Plan meteringSubscribers storedPro $39/mo covers 50045,000; High Volume $235/mo covers 50,000500,000.
Free-plan sending$0.01 per emailThe $0 tier explicitly includes “no email delivery”.

The workaround is empirical: instrument the client, start conservative, back off on anything that is not a clean success. Sane defaults for an undocumented 2011-era API are 1 request per second with exponential backoff and full jitter, a client-side timeout of 30 seconds, and a circuit breaker after 5 consecutive failures. Log every non-success body verbatim, with no error catalogue, your logs are the reference.

Official SDKs

Sendloop has shipped exactly three official client libraries and every one is PHP. All three repositories were renamed by Octeth to carry the word “legacy”, with last commits between 2013 and 2017. There is no official Python, Node.js, Ruby, Go, Java or .NET client.

LanguagePackageInstallRepo
PHPsendloop/sendloop v3.0.0composer require "sendloop/sendloop"sendloop-legacy-php-api-wrapper
PHPSendloop MTA PHP SDKcomposer require sendloop/mta-api-phpsendloop-legacy-mta-api-php
Multiple (legacy)Engage librariesNot publishedsendloop-legacy-engage_libraries

The first is the general v3 wrapper: Packagist shows v3.0.0 dated April 1, 2015, roughly 6,830 installs, 1 dependent and a “not auto-updated” flag. The second is the MTA transactional client; despite the name it is an HTTP wrapper, not an SMTP client, with no relay credentials, last commit November 16, 2017. The third is a 2013 grab-bag with no install path.

These SDKs are abandoned and their documentation link is dead

The wrapper’s README sends you to sendloop.com/help/api-001/getting-started for the endpoint reference. That URL returns HTTP 404, and the help portal that hosted it resolves only to 100::, the RFC 6666 discard-only block. Adopting the SDK means vendoring it: no security fixes, no testing against modern PHP, no maintainer on the tracker.

Notable community SDKs

There are none worth naming. Unlike EmailOctopus or MailerLite, Sendloop’s API has produced no maintained third-party client on npm, PyPI or RubyGems. What exists is platform-level coverage: Composio wraps 5 read operations as agent tools, and the official Zapier app handles subscriber CRUD without code. For most teams that beats writing a client against an undocumented API.

Endpoints reference

The caveat first: only one Sendloop command name is attested verbatim in official material, List.GetList, the worked example in the PHP SDK README. Every other row describes a capability a first-party surface demonstrably performs, the MTA SDK, the official Zapier app, Composio’s toolkit, but whose command string Sendloop has never published. Those paths read “unpublished” on purpose; they are not callable strings.

The nearest official reference is the SDK repository; the documentation URL it cites returns HTTP 404.

ResourceMethodDescription
Lists List.GetListPOSTThe only command attested verbatim in official material. Confirms the RPC shape: dotted names, not REST paths.
Account unpublishedPOSTAccount-level details for the authenticated key. Composio tool.
Lists unpublishedPOSTEnumerates subscriber lists. Composio tool.
Subscribers unpublishedPOSTEnumerates subscribers within a list. Composio tool.
Campaigns unpublishedPOSTEnumerates campaigns. Read-only everywhere it is exposed.
Reports unpublishedPOSTAggregate performance statistics for a list. Composio tool.
Subscribers: add unpublishedPOSTAdds a subscriber to a list. Zapier action.
Subscribers: remove unpublishedPOSTUnsubscribes an address from a list. Zapier action.
Events: subscribes unpublishedWebhookFires when a subscriber joins. Zapier trigger; no payload schema published.
Events: unsubscribes unpublishedWebhookFires when a subscriber unsubscribes. Zapier trigger.
Events: opens unpublishedWebhookFires when a subscriber opens an email. Zapier trigger.
Events: bounces unpublishedWebhookFires when a subscriber’s status becomes hard bounce. Zapier trigger.
Transactional send Mailer::send()POSTSends one transactional message via the MTA HTTP API, returning a status ID. Attested only by the 2017 SDK.
Transactional status Mailer::status()POSTDelivery status for a sent message, keyed on the ID from the send call.

Read that as a capability inventory, not a call reference. Turning any of it into working code means the legacy PHP SDK or a support ticket.

Code examples

PHP, the only official example

The single published Sendloop code sample in existence. Note the three constructor arguments: key, subdomain, response format.

// Verbatim from the official SDK README
// (github.com/octeth/sendloop-legacy-php-api-wrapper):

$sendloop = new Sendloop\SendloopAPI3('YOUR_API3_KEY', 'SENDLOOP_SUBDOMAIN', 'json');
$sendloop->run('List.GetList', array());
print_r($sendloop->Result);

Python, hand-rolled client

No official Python or Node SDK exists, so this is a minimal RPC helper. The endpoint comes from the environment because no public base URL exists.

# No official Python SDK and no public API reference exist.
# Attested shape: API v3, RPC-style with dotted command names such as
# "List.GetList", an "API3 key" from Settings > API Settings, scoped
# to your account subdomain. The request PATH is not published.

import os
import requests

API_KEY = os.environ["SENDLOOP_API_KEY"]        # from Settings > API Settings
ENDPOINT = os.environ["SENDLOOP_API_ENDPOINT"]  # account-specific, undocumented


def sendloop(command, **params):
    """Call an API v3 RPC command, e.g. sendloop('List.GetList')."""
    payload = {"Command": command, "APIKey": API_KEY,
               "ResponseFormat": "json", **params}
    response = requests.post(ENDPOINT, data=payload, timeout=30)
    response.raise_for_status()
    return response.json()


print(sendloop("List.GetList"))

PHP, transactional send via the MTA SDK

A separate abandoned package. An HTTP wrapper, not an SMTP client; it supports merge variables, custom arguments and tracking flags for opens, clicks, eCommerce and tags.

// Sendloop MTA PHP SDK, last commit 2017-11-16.
// HTTP API client, NOT an SMTP client.

$mailer  = new \Sendloop\MTA\Mailer("YOUR-API-KEY-HERE");
$message = new \Sendloop\MTA\Message();

$message->setFrom("sender@example.com", "Example Sender");
$message->setSubject("Your receipt");
$messageStatusID = $mailer->send("test@recipient.com", $message);
$status = $mailer->status($messageStatusID);

Common gotchas

The API is from 2011 and its only SDK was abandoned in 2015

The homepage still promises a “full-featured API and webhooks”, but v3 was announced on September 28, 2011 and no v4 followed. The official SDK shipped v3.0.0 on April 1, 2015 and has not been touched since; the repository is now sendloop-legacy-php-api-wrapper. No OpenAPI spec, no endpoint catalogue, no rate-limit documentation. Building against it in 2026 means reverse-engineering or Composio’s 5 read-only wrappers.

The help portal is dead and its replacement is empty

Every help.sendloop.com/docs/... link still indexed by search engines is unreachable: the subdomain resolves only to 100::, the RFC 6666 discard-only block, routed nowhere. Sendloop’s own help-portal page sends users to a personal Notion workspace that renders blank. There is no working product documentation; budget for support tickets.

No published SMTP hostname, and smtp.sendloop.com is a decoy

Sendloop advertised “SMTP access” to its Transaction Email Gateway in a December 9, 2016 blog post, and Zapier still files the app under “Transactional Email”. No current pricing, feature or integration page mentions SMTP. smtp.sendloop.com does resolve, to 95.216.107.99, the same address as the app, api, gateway and status hostnames, because *.sendloop.com is a wildcard pointing at the web load balancer. Postfix or a WordPress SMTP plugin will not work against it. For a documented relay, use Brevo, Mailjet, Postmark or Amazon SES.

No agent tool can send email

All three MCP-reachable surfaces are read-mostly: Composio exposes 5 read-only tools, Zapier 4 triggers and 2 actions, Pipedream nothing curated. If your design assumes an agent can dispatch a campaign or fire a transactional message, that exists on no Sendloop surface in 2026-you would call the undocumented API yourself, via the 2017 MTA SDK.

The free plan does not send email, which distorts API testing

The $0/mo tier lists the bullet “no email delivery”, and sending is billed at $0.01 per email. It is a free account, not a free send allowance. Prototyping, you can read and mutate lists but hit billing the moment you send, a 10,000-recipient test costs $100, against $39/mo for Pro covering 45,000 stored subscribers. Domain authentication also requires Pro, so DKIM-signed test sends are impossible on the free tier.

Deprecations and changelog

Sendloop maintains no changelog and no release-notes page. There is no /changelog path in its sitemap and no status page-status.sendloop.com resolves through the same wildcard and serves the login screen. The timeline below is reconstructed from dated blog posts, Packagist metadata and GitHub timestamps. Every entry predates 2024.

  • September 28, 2011-API v3 announced by co-founder Cem Hurturk, with a PHP wrapper then hosted on Google Code. Still current 15 years later.
  • April 1, 2015-final release of the official PHP SDK, sendloop/sendloop v3.0.0, on Packagist (about 6,830 installs). Nothing has followed.
  • December 9, 2016-“Introducing the new Transaction Email Gateway”, the only official statement that Sendloop offers SMTP access alongside API access. Its documentation is now unreachable.
  • November 16, 2017-last commit to the MTA PHP SDK, the transactional client, since renamed sendloop-legacy-mta-api-php.
  • May 26, 2023-last content ever published on the Sendloop blog: four posts in one day, including the SPF and DKIM guide, now the most useful surviving Sendloop documentation.

With no vendor changelog, the closest thing to a release feed is the Octeth GitHub organisation. Watch it for the pattern: every actively-updated repository there belongs to the self-hosted Octeth Email Platform, not to Sendloop.

Frequently asked questions

What is the current Sendloop API version?

API v3, announced on the official blog on September 28, 2011 by co-founder Cem Hurturk. No v4 has ever been announced, so v3 is both the current and the only version fifteen years later. The credential is labelled the API3 key inside the app, which is why that string appears in the SDK.

Where is the Sendloop API documentation?

There is none that works. The URL Sendloop’s SDK README points to, sendloop.com/help/api-001/getting-started, returns HTTP 404, and the help portal that hosted the endpoint catalogue resolves only to the IPv6 discard address 100::. Its replacement is an empty Notion page and the sitemap has no /api or /docs path. The only surviving official reference is the legacy PHP wrapper repository.

How do I get a Sendloop API key?

In the Sendloop app, open Settings › API Settings. That page issues the per-account API3 key used by the official SDK and every third-party wrapper. You also need your account subdomain. Sendloop publishes no scoping, rotation or expiry documentation, so treat the key as a full-privilege credential.

Is there a Sendloop Python or Node.js library?

No. Every official SDK is PHP and all three are abandoned, the general wrapper last released April 1, 2015, the MTA client last committed November 16, 2017, the Engage libraries in 2013. No maintained community client exists on npm, PyPI or RubyGems. For Python or Node, write the HTTP calls yourself or route through Zapier or Pipedream.

Does Sendloop have an MCP server for AI agents?

Not an official one. Octeth publishes no first-party MCP endpoint for Sendloop. Three third-party paths exist: Composio exposes 5 read-only tools, the official Zapier app is reachable through Zapier’s MCP layer with 4 triggers and 2 actions, and Pipedream lists Sendloop as a connectable app. None can send an email, agents read list and campaign data and add or remove subscribers, and that is the whole surface.

What are Sendloop’s API rate limits?

Not published. No official page states a requests-per-minute limit, an emails-per-hour cap, a recipients-per-message ceiling or a maximum message size, and the help portal that would have carried them is offline. Sendloop’s plans meter subscribers stored, not send rate: Pro at $39/mo covers 500 to 45,000 subscribers, High Volume at $235/mo covers 50,000 to 500,000. Build defensively, one request per second, exponential backoff with jitter, and treat your logs as the error reference.

Changelog (recent)

  • 2023-05-26 Last content ever published on the Sendloop blog, four posts in one day, including the SPF and DKIM authentication guide that is now the most useful surviving piece of Sendloop documentation.
  • 2017-11-16 Last commit to the Sendloop MTA PHP SDK, the transactional email client. Octeth has since renamed the repository sendloop-legacy-mta-api-php.
  • 2016-12-09 'Introducing the new Transaction Email Gateway' published on the Sendloop blog, the only official statement that Sendloop offers SMTP access alongside API access. The documentation it pointed to is now unreachable.
AAlaa Touil RRabeb How we test →

This review follows our email infrastructure testing methodology. We disclose affiliate relationships in our editorial independence policy.