SocketLabs logo

SocketLabs API + MCP (2026): two gateways, zero MCP servers

Last verified Sep 14, 2026

SocketLabs runs two HTTP surfaces: an Injection API at v1 that does nothing but send mail, and a SocketLabs API at v2 for configuration, suppression, reporting and subaccounts. Both are plain JSON over HTTPS, both are wrapped by 8 first-party SDKs, and 5 of those have not shipped since 2023. On MCP the answer is unambiguous: there is no SocketLabs MCP server in 2026, official or community, so any agent workflow starts with a wrapper you write yourself.

At a glance

v1 + v2
API versions in production
Injection v1 sends; API v2 manages and reports. Legacy v1 reporting died March 2024.

8
Official SDKs
C#, Go, Java, Node, PHP, Python, Ruby, PowerShell. Only 3 shipped in 18 months; the docs list just 6 of 8.

None
MCP servers
Zero official, zero community. The 18 repos in the socketlabs GitHub org hold nothing MCP-related in 2026.

MCP integration in 2026

Model Context Protocol lets an agent call a vendor API without a hand-rolled tool schema per endpoint: query bounces, add suppressions, send a test. SocketLabs ships nothing of the kind.

i

No SocketLabs MCP server exists, official or community

As of August 2026 no MCP server for SocketLabs exists anywhere, not in the vendor GitHub organisation (18 public repositories, none MCP-related), not in public directories, not from a third party. The closest artefact is the MCP server from Infobip, which acquired SocketLabs on 9 July 2026, but no documentation states it reaches SocketLabs relay, reporting or suppression. Agent access today means wrapping the two APIs yourself, both plain JSON over HTTPS, so a thin wrapper is a day of work.

Available MCP servers

Short by necessity: what exists, and what it covers.

Why buyers should care

MCP availability is a proxy for how much attention a vendor still pays its developer surface. SocketLabs published nothing on Product Updates in all of 2026, the last entry dating to October 2025, and 5 of its 8 SDKs are dormant. If your roadmap includes agent-driven deliverability triage, budget to build it in-house; off the shelf, price Postmark and SendGrid against it, then weigh that against SocketLabs’ real strength, analytics depth and multi-provider observability.

SocketLabs API essentials

The most expensive misunderstanding here is treating “the SocketLabs API” as one thing. It is two, with different base URLs, auth styles and lifecycles: Injection sends mail and nothing else; v2 does everything else and never sends mail.

Injection API base URLhttps://inject.socketlabs.com/api/v1/email DEFAULT
Injection API (CX gateway)https://inject-cx.socketlabs.com/api/v1/email
Management API base URLhttps://api.socketlabs.com/v2
Versions in productionInjection v1 · management and reporting v2
DecommissionedLegacy v1 Reporting and Suppression APIs, end of March 2024
Response formatJSON only
PaginationpageSize and pageNumber query parameters
Sorting and datessortField, sortDirection, startDate and endDate (YYYY-MM-DD)
Server scopingPath segment /v2/servers/{serverId}/ – moved out of the query string in v2
Bulk sendSupported – Messages array plus MergeData in a single POST

Pagination is offset-based and returns no link headers, so rows shift between pages when events land mid-export. Where a stable snapshot matters, bound every query with explicit dates and treat the window, not the page, as your unit of idempotency.

Authentication methods

SocketLabs issues three unrelated credentials with different scopes. None substitutes for another, and getting this wrong is the platform’s signature failure.

Injection API: serverId plus APIKey in the body

The classic Injection API takes a numeric serverId and a string APIKey, both inside the JSON body, not in a header. Every SDK constructor mirrors this: SocketLabsClient(serverId, apiKey). The credential travels in the payload, so it lands in request-body logs.

Bearer token for the v2 API and the CX gateway

The SocketLabs API at https://api.socketlabs.com/v2 uses a standard Authorization: Bearer header. The v2 migration consolidated the formerly separate Reporting and Suppression keys into this one. The newer inject-cx gateway also uses Bearer auth, a signal of where the platform is heading.

SMTP credentials

A third username and password pair drives the relay at smtp.socketlabs.com. The username is issued, not chosen, in the form server12345server plus your numeric Server ID. Provision it under Configuration SMTP Credentials.

Event webhook verification

Event Webhooks are inbound, so there is no request to authenticate. SocketLabs puts a SecretKey and ServerId in the POST body; return 401 on mismatch, 200 otherwise. Validation traffic comes from 52.152.150.178, production from 142.0.176.0/20.

The 501 5.7.0 trap

Pasting an Injection API key into an SMTP password field returns 501 5.7.0 – Authentication failed. The error is correct and the credential is valid, just for a different surface. Identify which one you hold: Server ID plus key means Injection, a bare token means v2, a server12345 username means SMTP.

Rate limits

SocketLabs publishes firm structural ceilings and no throughput ceiling at all. The table separates the two: numbers you can design against, and numbers you cannot.

LimitValueEnforcement
Message size40 MB totalHard, returns 552 5.3.4 Message too big for system
Recipients per message500Hard, documented cap
Simultaneous SMTP connections20 per accountHard, returns 421 4.4.5 Too many connections from your host
Messages per SMTP connection50 recommendedAdvisory, throughput guidance, not enforced
New-account send throttleNot publishedAutomatic during warm-up; lifts as mailbox providers learn your domain and IP


Two absences matter. No request-rate limit is documented for either API: no headers, no described 429 behaviour, so you cannot derive a back-off strategy from the docs and must retry exponentially on 5xx. And the new-account throttle is real but unquantified, the docs say only that it lifts automatically, that complaints and bounces prolong it, and that it “can be adjusted by opening a support ticket.” Migrating an established stream? Open that ticket before cutover.

The workaround for the 20-connection ceiling is pipelining, not parallelism: SocketLabs recommends command pipelining and 50 messages per connection. Beyond that, the Injection API takes a Messages array and skips the connection model.

Official SDKs

SocketLabs maintains 8 client libraries, all wrappers over the Injection API. None covers the v2 management and reporting surface, which you call with a plain HTTP client. The maintenance picture is uneven enough to shape language choice.

LanguagePackageInstallStatus
C# / .NETSocketLabs.InjectionApidotnet add package SocketLabs.InjectionApiActive – May 2026
Gosocketlabs-gogo get github.com/socketlabs/socketlabs-goActive – February 2026
Javacom.socketlabs injection-apiMaven or Gradle artifact, see READMEMaintained – July 2025
Node.js@socketlabs/emailnpm install --save @socketlabs/emailDormant – January 2024
PHPsocketlabs/injection-apicomposer require socketlabs/injection-apiDormant – December 2023
Pythonsocketlabs-injectionapipip install socketlabs-injectionapiDormant – v1.4.4, October 2023
Rubysocketlabs-injectionapigem install socketlabs-injectionapiDormant – October 2023
PowerShellsocketlabs-powershellModule import, see repo READMEDormant – June 2023

Half the SDK fleet has been untouched since 2023

Node.js, PHP, Python, Ruby and PowerShell have all gone over two years without a release. Python still sits at v1.4.4, final changelog entry “Added MetadataOrTagsAreTooLarge error message.” Ruby is not listed on the API Libraries page at all, which names only 6 of 8. None are broken, the Injection API is a stable v1 contract, but they will not carry you to the inject-cx gateway.

Notable community SDKs

There is none worth naming. Unlike Mailgun, whose API attracted independent Rust, Elixir and Laravel clients, SocketLabs never drew third parties in to fill the gaps left by its dormant libraries. The practical community layer is framework-level: the WordPress.org plugin and the first-party ASP.NET Core webhook extensions for validating event POSTs.

Endpoints reference

The table covers the send path and the v2 management surface. Where the migration guide confirms a resource but never quotes its path, the column says so. Full docs: SocketLabs API introduction and the v1 to v2 migration guide.

ResourceMethodDescription
Send message
inject.socketlabs.com/api/v1/email
POSTPrimary send endpoint. Body carries serverId, APIKey and a Messages array; each needs To, From and Subject, with TextBody, HtmlBody, CC, BCC, CustomHeaders, Attachments and MergeData optional.
Send message, CX gateway
inject-cx.socketlabs.com/api/v1/email
POSTNewer v2 gateway. Bearer header, not in-body keys.
Subaccount Injection credentials
/v2/subaccount/:id/credentials/injection-api
POSTCreates or returns a subaccount Injection key.
Subaccount SMTP credentials
/v2/subaccount/:id/credentials/smtp
POSTCreates or returns a subaccount SMTP credential; gives username, password, gateway host.
Subaccount bounce domain
/v2/subaccount/:id/bounce
POSTRegisters a bounce (Return-Path) domain; must already CNAME to tracking.socketlabs.com.
Subaccount engagement tracking
/v2/subaccount/:id/engagement-tracking
POSTSets the tracking domain, reusing the bounce CNAME.
Account-level event webhook
/v2/event-webhook/:webhookID
GET, POSTManages webhook endpoints; GET drives testing and Secret Key setup.
Suppressions, query
/v2/servers/{serverId}/suppressions
GETReads a server suppression list. Supports paging and sort.
Suppressions, add
/v2/servers/{serverId}/suppressions
POSTAdds addresses to the list.
Suppressions, remove
/v2/servers/{serverId}/suppressions
DELETERemoves addresses from the list.
Suppressions, bulk download
path not published verbatim
GETConfirmed in the migration guide; path not quoted.
Report: failed messages
path not published verbatim
GETBounce and failure reporting. Accepts dates, paging, sort.
Report: queued messages
path not published verbatim
GETMessages held in the queue.
Report: processed messages
path not published verbatim
GETMessages accepted and processed.
Report: complaints and engagement
path not published verbatim
GETComplaints, suppressed items, opens, clicks.

Code examples

Python: send a basic message

from socketlabs.injectionapi import SocketLabsClient
from socketlabs.injectionapi.message.basicmessage import BasicMessage
from socketlabs.injectionapi.message.emailaddress import EmailAddress

# serverId is an integer; the API key is NOT your SMTP password
client = SocketLabsClient(10000, "YOUR-API-KEY")

message = BasicMessage()
message.subject = "Test"
message.html_body = "<html>Message body</html>"
message.from_email_address = EmailAddress("from@example.com")
message.to_email_address.append(EmailAddress("recipient@example.com"))

print(client.send(message).result)

Node.js: send with credentials from the environment

const { SocketLabsClient } = require('@socketlabs/email');

const client = new SocketLabsClient(
  parseInt(process.env.SOCKETLABS_SERVER_ID),
  process.env.SOCKETLABS_INJECTION_API_KEY
);

const message = {
  to: 'recipient@example.com',
  from: 'sender@example.com',
  subject: 'Hello from Node.js',
  textBody: 'Sent using the SocketLabs Node.js library.',
  htmlBody: '<html>Sent using the SocketLabs Node.js library.</html>',
  messageType: 'basic'
};

client.send(message)
  .then(res => console.log(res))
  .catch(err => console.error(err));

curl: raw Injection API POST

curl -X POST https://inject.socketlabs.com/api/v1/email \
  -H "Content-Type: application/json" \
  -d '{
    "serverId": 10000,
    "APIKey": "YOUR-API-KEY",
    "Messages": [{
      "To": [{ "EmailAddress": "recipient@example.com" }],
      "From": { "EmailAddress": "sender@example.com" },
      "Subject": "Raw injection test",
      "TextBody": "Sent without an SDK."
    }]
  }'

# Success: {"ErrorCode":"Success","MessageResults":[],"TransactionReceipt":"..."}

curl: read the v2 suppression list

# Bearer token here - NOT the Injection key, NOT the SMTP password
curl -X GET \
  "https://api.socketlabs.com/v2/servers/12345/suppressions?pageSize=100" \
  -H "Authorization: Bearer YOUR-SOCKETLABS-API-KEY"

Common gotchas

Three credentials, zero interchangeability

SMTP username and password, Injection serverId plus APIKey, and a v2 bearer token are generated separately and none substitutes for another. The signature failure is an Injection key in an SMTP password field, returning 501 5.7.0. Store all three under distinct names: one SOCKETLABS_API_KEY variable is how teams debug this at 2am.

Two hostname generations coexist with no deprecation notice

The help center documents smtp.socketlabs.com and the C# SDK hardcodes inject.socketlabs.com. The v2 docs reference smtp-cx.socketlabs.com and inject-cx.socketlabs.com, the latter bearer-authenticated. Neither pair is marked deprecated. Use whichever hostname was handed to you for that credential, and never mix a v2 credential with a classic endpoint.

The v1 Reporting and Suppression APIs are gone, not deprecated

Both were decommissioned at the end of March 2024. A codebase still calling them is not degraded, it is dead. Migration is more than a base-URL change: serverId moved into the path, and the two keys became one.

No documented rate limits means no documented back-off contract

Neither API publishes a request ceiling, rate-limit headers or 429 semantics. That is an absence of contract, not permission to hammer the endpoint. Back off exponentially on 5xx and connection resets, and cap concurrency yourself.

Infobip closed the acquisition on 9 July 2026 and has said nothing since

Infobip closed its purchase on 9 July 2026, terms undisclosed, citing SocketLabs analytics and vendor-agnostic observability for its Email Deliverability Agent. It said nothing about brand, pricing, roadmap, support or endpoint longevity, and no customer communication accompanied the close. Pricing still shows standalone plans; Product Updates published nothing in 2026. Read that as “nothing changed yet, nothing was promised”, on a multi-year commitment, get endpoint continuity in writing.

Deprecations and changelog

  • July 9, 2026 – Infobip completed its acquisition of SocketLabs; terms not disclosed. Stated rationale: folding SocketLabs analytics, vendor-agnostic observability and intelligent routing into Infobip’s Email Deliverability Agent. No statement on brand, pricing, roadmap or support.
  • May 2026 – Latest C# / .NET SDK release, the only first-party library updated in 2026 besides Go (February 2026).
  • October 2025 – Email Relay expanded to more providers plus a Hurricane MTA Connector, routing traffic through third-party ESPs or a generic SMTP endpoint while keeping SocketLabs analytics. Last entry on Product Updates.
  • June 2025 – Email Relay launched, letting customers route traffic through SocketLabs without fully migrating their sending platform, with stream-level routing.
  • March 2024 – Legacy v1 Reporting and Suppression APIs decommissioned. All configuration, suppression and reporting moves to https://api.socketlabs.com/v2 with one bearer key.

Sources: SocketLabs Product Updates and the v1 to v2 migration guide.

Frequently asked questions

What is the SocketLabs Injection API base URL and how do I authenticate?

The classic endpoint is https://inject.socketlabs.com/api/v1/email, the default in the C# SDK. Auth is a numeric serverId plus a string APIKey, both inside the JSON body, not in a header. A newer gateway at https://inject-cx.socketlabs.com/api/v1/email uses Authorization: Bearer. Neither is deprecated, so use whichever matches your issued credential.

What is the difference between the SocketLabs API key, the Injection API key and SMTP credentials?

Three unrelated credentials. The Injection API key is a serverId and key pair used only for sending, and is what every SDK constructor takes. The SocketLabs API key is a bearer token for https://api.socketlabs.com/v2, covering configuration, suppression, reporting and subaccounts. The SMTP credential is a relay username and password, issued as server12345. The wrong one on SMTP returns 501 5.7.0.

Which official SocketLabs SDKs exist and which are still maintained?

Eight: C# / .NET, Go, Java, Node.js, PHP, Python, Ruby and PowerShell. Only C# (May 2026) and Go (February 2026) are actively maintained; Java last shipped July 2025. Node.js, PHP, Python (still 1.4.4), Ruby and PowerShell are dormant since 2023 or 2024. All still work, but on a dormant language, calling the HTTP API directly is reasonable.

How do I manage the SocketLabs suppression list through the v2 API?

Call https://api.socketlabs.com/v2/servers/{serverId}/suppressions with Authorization: Bearer. GET queries with pageSize, pageNumber, sortField and sortDirection; POST adds, DELETE removes. Critical detail: serverId lives in the path in v2, not the query string. The v1 Suppression API died end of March 2024.

Are there documented rate limits on the SocketLabs APIs?

No. Neither API publishes a request ceiling, rate-limit headers or 429 behaviour. What is published are structural SMTP limits: 40 MB message size, 500 recipients per message, 20 simultaneous connections, 50 messages per connection recommended. New accounts also carry an unquantified warm-up throttle, adjustable by support ticket, open one before a high-volume migration, not after.

Is there a SocketLabs MCP server for AI agents?

No, there is no SocketLabs MCP server, official or community, as of August 2026. The socketlabs GitHub organisation holds 18 repositories, none MCP-related, and public directories list nothing. Parent company Infobip publishes its own MCP server, but no documentation says it exposes SocketLabs relay, reporting or suppression. The practical route is wrapping the two APIs yourself; off the shelf, compare Postmark first.

Changelog (recent)

  • 2026-07-09 Infobip completed its acquisition of SocketLabs; terms not disclosed. Stated rationale: folding SocketLabs analytics, vendor-agnostic observability and intelligent routing into Infobip's Email Deliverability Agent. No statement on brand, pricing, roadmap or support.
  • 2026-05-01 Latest C# / .NET SDK release, the only first-party library updated in 2026 besides the Go client (February 2026). Five of the eight SDKs remain dormant since 2023 or 2024.
  • 2025-10-01 Email Relay expanded to more providers plus a Hurricane MTA Connector, routing traffic through third-party ESPs or a generic SMTP endpoint while keeping SocketLabs analytics. Last entry published on the Product Updates page.
AAlaa Touil RRabeb How we test →

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