Recursos
Inicio rápido
Sección titulada «Inicio rápido»Los siguientes ejemplos muestran cómo enviar tu primer correo transaccional. Reemplaza $MAILERDASH_API_KEY con tu API key real.
curl -X POST https://api.mailerdash.com/v1/mail/send \ -H "Authorization: Bearer $MAILERDASH_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "from": { "email": "noreply@tu-dominio.com", "name": "Tu Empresa" }, "to": [{ "email": "cliente@ejemplo.com" }], "subject": "Bienvenido", "text": "Hola, gracias por registrarte.", "html": "<p>Hola, gracias por registrarte.</p>" }'Node.js
Sección titulada «Node.js»const response = await fetch('https://api.mailerdash.com/v1/mail/send', { method: 'POST', headers: { Authorization: `Bearer ${process.env.MAILERDASH_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ from: { email: 'noreply@tu-dominio.com', name: 'Tu Empresa' }, to: [{ email: 'cliente@ejemplo.com' }], subject: 'Bienvenido', text: 'Hola, gracias por registrarte.', html: '<p>Hola, gracias por registrarte.</p>', }),});
if (!response.ok) { const { error } = await response.json(); console.error(error.type, error.code, error.message);} else { const data = await response.json(); console.log('Enviado, message_id:', data.message_id);}import osimport httpx
response = httpx.post( "https://api.mailerdash.com/v1/mail/send", headers={"Authorization": f"Bearer {os.environ['MAILERDASH_API_KEY']}"}, json={ "from": {"email": "noreply@tu-dominio.com", "name": "Tu Empresa"}, "to": [{"email": "cliente@ejemplo.com"}], "subject": "Bienvenido", "text": "Hola, gracias por registrarte.", "html": "<p>Hola, gracias por registrarte.</p>", },)
if response.is_error: error = response.json()["error"] print(f"Error {error['type']}: {error['code']} — {error['message']}")else: print("Enviado:", response.json().get("message_id"))Con Guzzle (composer require guzzlehttp/guzzle):
<?phprequire 'vendor/autoload.php';
use GuzzleHttp\Client;use GuzzleHttp\Exception\RequestException;
$client = new Client();
try { $response = $client->post('https://api.mailerdash.com/v1/mail/send', [ 'headers' => ['Authorization' => 'Bearer ' . getenv('MAILERDASH_API_KEY')], 'json' => [ 'from' => ['email' => 'noreply@tu-dominio.com', 'name' => 'Tu Empresa'], 'to' => [['email' => 'cliente@ejemplo.com']], 'subject' => 'Bienvenido', 'text' => 'Hola, gracias por registrarte.', 'html' => '<p>Hola, gracias por registrarte.</p>', ], ]);
$data = json_decode((string) $response->getBody(), true); echo 'Enviado, message_id: ' . $data['message_id'] . PHP_EOL;} catch (RequestException $e) { $error = json_decode((string) $e->getResponse()->getBody(), true)['error']; fprintf(STDERR, "Error %s: %s — %s\n", $error['type'], $error['code'], $error['message']);}Laravel
Sección titulada «Laravel»Usando el cliente HTTP de Laravel (Illuminate\Support\Facades\Http):
use Illuminate\Support\Facades\Http;
$response = Http::withToken(env('MAILERDASH_API_KEY')) ->post('https://api.mailerdash.com/v1/mail/send', [ 'from' => ['email' => 'noreply@tu-dominio.com', 'name' => 'Tu Empresa'], 'to' => [['email' => 'cliente@ejemplo.com']], 'subject' => 'Bienvenido', 'text' => 'Hola, gracias por registrarte.', 'html' => '<p>Hola, gracias por registrarte.</p>', ]);
if ($response->failed()) { $error = $response->json('error'); logger()->error("MailerDash {$error['type']}: {$error['code']} — {$error['message']}");} else { logger()->info('Enviado, message_id: ' . $response->json('message_id'));}WordPress
Sección titulada «WordPress»Con wp_remote_post. Define tu API key como constante en wp-config.php
(define('MAILERDASH_API_KEY', 'tu-api-key');):
$response = wp_remote_post('https://api.mailerdash.com/v1/mail/send', array( 'headers' => array( 'Authorization' => 'Bearer ' . MAILERDASH_API_KEY, 'Content-Type' => 'application/json', ), 'body' => wp_json_encode(array( 'from' => array('email' => 'noreply@tu-dominio.com', 'name' => 'Tu Empresa'), 'to' => array(array('email' => 'cliente@ejemplo.com')), 'subject' => 'Bienvenido', 'text' => 'Hola, gracias por registrarte.', 'html' => '<p>Hola, gracias por registrarte.</p>', )), 'timeout' => 15,));
if (is_wp_error($response)) { error_log('MailerDash: ' . $response->get_error_message());} elseif (wp_remote_retrieve_response_code($response) >= 400) { $error = json_decode(wp_remote_retrieve_body($response), true)['error']; error_log('MailerDash error: ' . $error['type'] . ' — ' . $error['message']);} else { $data = json_decode(wp_remote_retrieve_body($response), true); error_log('MailerDash enviado, message_id: ' . $data['message_id']);}Referencia de la API
Sección titulada «Referencia de la API»La referencia interactiva (Swagger UI) está disponible directamente en el panel:
| Sección | URL |
|---|---|
| Transaccional (envíos individuales) | /reference/transactional/ |
| Bulk (campañas, contactos, listas, sequences) | /reference/bulk/ |
| Plataforma (keys, dominios, webhooks, usage) | /reference/platform/ |
También puedes explorar la API de forma interactiva (Swagger UI) o descargar el spec OpenAPI público (solo endpoints de cliente) en JSON:
# Spec OpenAPI público (JSON) — útil para generar SDKs o importar a Postmancurl https://api.mailerdash.com/docs.json -o mailerdash-openapi.json- Swagger UI interactivo: https://api.mailerdash.com/docs
- Spec JSON:
https://api.mailerdash.com/docs.json
Para agentes y LLMs
Sección titulada «Para agentes y LLMs»Si construyes con un agente de IA o un LLM, esta documentación es agent-friendly:
| Recurso | URL |
|---|---|
| Índice para LLMs | /llms.txt |
| Documentación completa en texto plano | /llms-full.txt |
| OpenAPI crudo — Transaccional | /openapi/openapi.transactional.json |
| OpenAPI crudo — Bulk | /openapi/openapi.bulk.json |
| OpenAPI crudo — Plataforma | /openapi/openapi.platform.json |
llms-full.txt reúne toda la documentación en un solo archivo, listo para pegar en el contexto de un modelo.
Genera tu SDK
Sección titulada «Genera tu SDK»Todavía no publicamos una librería oficial (npm/pip), pero el spec OpenAPI
público (docs.json, arriba) te permite generar un cliente tipado en tu
lenguaje con openapi-generator — sin esperar
a un paquete oficial.
TypeScript
Sección titulada «TypeScript»npx @openapitools/openapi-generator-cli generate \ -i https://api.mailerdash.com/docs.json \ -g typescript-fetch \ -o ./mailerdash-sdknpx @openapitools/openapi-generator-cli generate \ -i https://api.mailerdash.com/docs.json \ -g python \ -o ./mailerdash-sdk-pythonEl CLI corre sobre la JVM, así que necesitas Java 11+ instalado. Hay
generadores para más de 50 lenguajes (PHP, Ruby, Go, C#, etc.); consulta la
lista completa con npx @openapitools/openapi-generator-cli list. Como el spec
se mantiene sincronizado con la API en producción, regenerar tu SDK tras un
cambio de versión es solo volver a correr el comando.
Soporte
Sección titulada «Soporte»Si tienes preguntas, encuentras un bug o necesitas ayuda con tu integración, abre un ticket desde el dashboard o escríbenos directamente. El sistema de tickets permite dar seguimiento a cada caso y adjuntar logs o ejemplos de payload para diagnóstico más rápido.
- Desde el dashboard: menú lateral → Soporte → Nuevo ticket
- Via API:
POST /v1/ticketscon los campossubjectybody
Responderemos en el horario de atención publicado en el dashboard. Para incidentes críticos de producción, indícalo en el asunto del ticket.