# SenderKit ## Docs - [Get workspace context](https://docs.senderkit.com/api-reference/context/get-workspace-context.md): Returns the workspace the API key belongs to and the environment the key operates in. Useful to confirm which workspace and mode subsequent calls will affect before sending. - [Claim a custom inbound domain](https://docs.senderkit.com/api-reference/inbound/claim-a-custom-inbound-domain.md): Claims a domain or subdomain you own for receiving mail. Publish the returned `records`, then poll `GET /v1/inbound/domains/{id}` until `status` is `verified`. - [Create an inbound address](https://docs.senderkit.com/api-reference/inbound/create-an-inbound-address.md): Provisions a new address on the workspace's shared receiving domain. The domain itself is created lazily on first call. Omit `localPart` to get an unguessable generated one (`rcv-xxxxxxxxxx`); a caller-supplied `localPart` must be unique on the domain. - [Delete an inbound address](https://docs.senderkit.com/api-reference/inbound/delete-an-inbound-address.md): Soft-deletes the address; mail sent to it afterward is dropped like any other unmatched recipient. - [Delete an inbound domain](https://docs.senderkit.com/api-reference/inbound/delete-an-inbound-domain.md): Soft-deletes the domain and its addresses; mail sent to it afterward is dropped like any other unmatched recipient. The auto-provisioned shared domain cannot be deleted. - [Get a received message](https://docs.senderkit.com/api-reference/inbound/get-a-received-message.md): Retrieve a single received message, including parsed body, headers, verdicts, and links to its attachments and raw MIME source. - [Get an attachment](https://docs.senderkit.com/api-reference/inbound/get-an-attachment.md): Streams one attachment's bytes, extracted on demand from the raw MIME (attachments are not stored separately). `index` matches the `attachments[].index` on the message resource. Subject to the same 30-day retention as the raw message. - [Get an inbound domain](https://docs.senderkit.com/api-reference/inbound/get-an-inbound-domain.md): Retrieve one inbound domain, including its DNS records and verification status. - [Get the raw MIME source](https://docs.senderkit.com/api-reference/inbound/get-the-raw-mime-source.md): Returns the original message as stored in S3 (`message/rfc822`). The object expires 30 days after receipt; after that this returns `410`. - [List inbound addresses](https://docs.senderkit.com/api-reference/inbound/list-inbound-addresses.md): Returns every inbound address provisioned on the workspace's shared receiving domain (`{slug}.in.senderkit.email`), oldest first. - [List inbound domains](https://docs.senderkit.com/api-reference/inbound/list-inbound-domains.md): Returns every inbound domain on the workspace — the auto-provisioned shared receiving domain plus any claimed custom domains — oldest first. - [List received messages](https://docs.senderkit.com/api-reference/inbound/list-received-messages.md): Returns received-mail summaries for the workspace and API key environment, newest first. - [API Reference](https://docs.senderkit.com/api-reference/introduction.md): The SenderKit public REST API for sending and inspecting messages. - [Cancel a message](https://docs.senderkit.com/api-reference/messages/cancel-a-message.md): Cancel a still-pending message before it is dispatched. Only messages whose status is `scheduled` or `queued` can be canceled; anything past that (rendered, dispatched, sent, delivered, failed, opted_out, suppressed, blocked, canceled) is already committed to a provider or terminal. - [Get a message](https://docs.senderkit.com/api-reference/messages/get-a-message.md): Retrieve a single message by its public ID. The message must belong to the authenticated workspace and match the API key's environment (live or test). - [List messages](https://docs.senderkit.com/api-reference/messages/list-messages.md): Returns messages for the authenticated workspace and environment, newest first, with cursor pagination. - [Send a message](https://docs.senderkit.com/api-reference/send/send-a-message.md): Enqueue a message for delivery. Provide **either** `template` (send a stored template) **or** `content` (inline raw content) — never both. Returns `202` immediately; the message is dispatched asynchronously. - [Get a template](https://docs.senderkit.com/api-reference/templates/get-a-template.md) - [List templates](https://docs.senderkit.com/api-reference/templates/list-templates.md) - [Render a template](https://docs.senderkit.com/api-reference/templates/render-a-template.md): Render the template's current published version with the supplied variables, without sending. Returns the rendered output for the template's channel plus any variable paths that were referenced but not provided. - [Authentication](https://docs.senderkit.com/authentication.md): Create API keys and authenticate requests to SenderKit. - [Changelog](https://docs.senderkit.com/changelog.md): Notable changes to SenderKit's client libraries. - [context](https://docs.senderkit.com/cli/context.md): Report the connected workspace and send mode. - [Installation](https://docs.senderkit.com/cli/installation.md): Install @senderkit/cli, authenticate, and learn the global flags. - [messages](https://docs.senderkit.com/cli/messages.md): Inspect message history from the terminal. - [send](https://docs.senderkit.com/cli/send.md): Dispatch a templated or raw message from the terminal. - [templates](https://docs.senderkit.com/cli/templates.md): List and inspect templates from the terminal. - [AI Authoring](https://docs.senderkit.com/concepts/ai-authoring.md): Draft a template's subject, layout, and copy from a plain-language prompt. - [Channels & Providers](https://docs.senderkit.com/concepts/channels-and-providers.md): Email, SMS, push, and web push delivered through your own provider connections. - [Environments](https://docs.senderkit.com/concepts/environments.md): Test and live modes so staging never emails real users. - [Inbound Email](https://docs.senderkit.com/concepts/inbound.md): Receive email at addresses on your workspace's domain and get it delivered as a webhook. - [Messages](https://docs.senderkit.com/concepts/messages.md): The durable record of every send, its status, and its history. - [Sending](https://docs.senderkit.com/concepts/sending.md): How SenderKit accepts a send and delivers it asynchronously. - [Templates](https://docs.senderkit.com/concepts/templates.md): Dashboard-editable message definitions your code references by slug. - [Variables](https://docs.senderkit.com/concepts/variables.md): Typed values interpolated into templates at send time. - [Versioning](https://docs.senderkit.com/concepts/versioning.md): Every template edit is an immutable version you can publish or roll back to. - [Add SenderKit from your coding agent](https://docs.senderkit.com/guides/agent-skills.md): Install the SenderKit skills plugin so Claude Code, Codex, or Cursor can wire SenderKit into your app and operate it over MCP. - [Send emails from your AI agent](https://docs.senderkit.com/guides/ai-agent.md): Give an AI agent a SenderKit tool so it can send transactional emails — built with the Vercel AI SDK. - [Integrate over raw HTTP](https://docs.senderkit.com/guides/http-api.md): Send and track messages with fetch or curl, no SDK required. - [Guides](https://docs.senderkit.com/guides/overview.md): Task-oriented walkthroughs for common SenderKit workflows. - [Recover failed payments & win back churned users](https://docs.senderkit.com/guides/stripe-lifecycle.md): Send branded dunning, win-back, and trial-ending emails from Stripe webhooks — the lifecycle emails Stripe doesn't send for you. - [Supabase auth emails](https://docs.senderkit.com/guides/supabase-auth-emails.md): Route Supabase auth emails — sign-up confirmation, magic link, password recovery, and more — through SenderKit for custom templates and better deliverability. - [Notify on a database change with Supabase](https://docs.senderkit.com/guides/supabase-notifications.md): Send an email when a row changes — driven by a Supabase Database Webhook and an Edge Function. - [Send team & workspace invites](https://docs.senderkit.com/guides/team-invites.md): Invite teammates by email with a tokenized accept link — an email no platform sends for you. - [Send a welcome email on signup](https://docs.senderkit.com/guides/welcome-email.md): Fire a branded welcome email automatically when a user signs up with Clerk or Auth.js. - [SenderKit](https://docs.senderkit.com/index.md): Transactional notifications that live in a dashboard, not your codebase. - [Installation](https://docs.senderkit.com/mcp/installation.md): Configure the SenderKit MCP server in your AI client. - [Overview](https://docs.senderkit.com/mcp/overview.md): Use SenderKit from AI agents over the Model Context Protocol. - [Quickstart](https://docs.senderkit.com/mcp/quickstart.md): Connect Claude Code to SenderKit over MCP in under five minutes. - [Tools](https://docs.senderkit.com/mcp/tools.md): Every MCP tool the SenderKit server exposes. - [Quickstart](https://docs.senderkit.com/quickstart.md): Create a template, send it from your app, then change the copy without a redeploy. - [Laravel](https://docs.senderkit.com/sdks/laravel.md): SenderKit for Laravel — notification channel, mail transport, and webhook middleware. - [PHP SDK](https://docs.senderkit.com/sdks/php.md): The official SenderKit PHP SDK — framework-agnostic core for PHP 8.1+. - [Symfony](https://docs.senderkit.com/sdks/symfony.md): SenderKit for Symfony — bundle with autowiring and a webhook request verifier. - [TypeScript SDK](https://docs.senderkit.com/sdks/typescript.md): The official @senderkit/sdk client for Node.js and edge runtimes. - [Webhooks](https://docs.senderkit.com/webhooks.md): Receive real-time push notifications when async message outcomes resolve. ## OpenAPI Specs - [openapi](https://docs.senderkit.com/api-reference/openapi.yaml) ## Optional - [Dashboard](https://www.senderkit.com/app/dashboard) - [npm](https://www.npmjs.com/package/@senderkit/sdk) - [Packagist](https://packagist.org/packages/senderkit/senderkit-php)