CountdownMail API
Esta guía te ayudará a comenzar a usar la API de CountdownMail. Cubre cómo configurar, autenticar, manejar errores y trabajar con temporizadores de cuenta regresiva.
Inicio rápido
Esta sección te preparará para usar la API de CountdownMail y te mostrará cómo hacer tu primera solicitud API.
- Obtén tu clave API:
- Inicia sesión en tu cuenta de CountdownMail.
- Ve a Perfil » API.
- Copia tu clave API.
- Haz tu primera solicitud API:
- Usaremos el endpoint "Crear un temporizador" como ejemplo.
- Usa una herramienta como cURL o Postman para enviar una solicitud POST a https://countdownmail.com/api/create.
- Agrega tu clave API en el encabezado Authorization.
- Incluye los detalles requeridos del temporizador en el cuerpo de la solicitud (en formato JSON).
Aquí hay un ejemplo usando cURL:
Solicitud
curl -H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-X POST "https://countdownmail.com/api/create" \
-d '{
"skin_id": 1,
"name": "Big Sale!",
"time_end": "2025-04-21 20:00:00",
"time_zone": "America/Los_Angeles",
"font_family": "Roboto-Bold",
"color_primary": "FF3A43",
"color_text": "FFFFFF",
"color_bg": "000000"
}'
- Reemplaza YOUR_API_KEY con tu clave API real.
- Si todo funciona, obtendrás una respuesta como esta:
Respuesta
{
"status": "success",
"message": {
"id": 1057,
"code": "td",
"src": "http://i.countdownmail.com/td.gif"
}
}
Esta respuesta incluye un código de temporizador (ej., "td") y una URL para la imagen del temporizador.
Autenticación
Para usar la API de CountdownMail, necesitas autenticar cada solicitud con tu clave API. Así es como:
- Agrega un encabezado Authorization a tu solicitud. El valor es tu clave API.
- Alternativamente, usa autenticación básica: establece tu clave API como nombre de usuario y deja la contraseña vacía.
Ejemplo con encabezado Authorization (cURL):
Solicitud
curl -H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-X GET "https://countdownmail.com/api/some_endpoint"
- Reemplaza YOUR_API_KEY con tu clave API real.
- Siempre incluye autenticación, o recibirás un error 401 Unauthorized.
Usar Postman
Si usas Postman, es fácil probar las solicitudes a la API. Para usarlo con CountdownMail:
Errores
A veces, las solicitudes API fallan. La API de CountdownMail usa códigos de estado HTTP para indicarte qué salió mal. Aquí hay una lista de posibles errores, su significado y qué hacer:
| Código | Nombre del estado | Descripción | Acción sugerida | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 400 | Solicitud incorrecta | Algo está mal con tu solicitud. | Verifica que tu solicitud coincida con la documentación y use la sintaxis correcta. | ||||||||
| 401 | No autorizado | No tienes permiso para hacer esta solicitud. | Asegúrate de estar usando una clave API válida en el encabezado Authorization. | ||||||||
| 404 | No encontrado | El servidor no puede encontrar lo que solicitaste. | Verifica que tu URL coincida con un endpoint API válido. | ||||||||
| 405 | Método no permitido | El endpoint no soporta ese método. | Usa el método HTTP correcto (ej., GET, POST) como se muestra en la documentación. | ||||||||
| 429 | Demasiadas solicitudes | El cliente ha enviado demasiadas solicitudes en 1 minuto. | Puedes usar los encabezados que se envían con cada respuesta para determinar el estado actual de tu límite de velocidad.
| ||||||||
| 500 | Error interno del servidor | Algo falló en el lado de CountdownMail. | Intenta de nuevo más tarde. Si sigue ocurriendo, contacta al soporte. | ||||||||
| 503 | Servicio no disponible | El servidor está muy ocupado en este momento. | Espera un poco e intenta de nuevo. |
Ejemplo de respuesta de error (401 Unauthorized):
Respuesta
{
"status": "error",
"message": "Unauthorized"
}
Si ves un error, verifica el código de estado y el mensaje, luego sigue la acción sugerida.
Modelo del temporizador
El recurso Timer contiene toda la información sobre el temporizador de cuenta regresiva. Estos son los campos disponibles para definir un temporizador de cuenta regresiva:
| Propiedad | Tipo | Descripción | Requerido | Notas |
|---|---|---|---|---|
| skin_id | entero | El estilo de diseño del temporizador (plantilla). | Sí | Debe ser un número entre 1 y 23. |
| name | cadena | El nombre del temporizador. | Sí | Máximo 100 caracteres. Ejemplo: Big Sale! |
| time_end | cadena | Cuándo termina el temporizador (YYYY-MM-DD HH:MM:SS). | Sí | Ejemplo: 2025-04-09 04:57:16 |
| time_zone | cadena | La zona horaria del temporizador. | Sí | Ejemplo: America/Los_Angeles. Ver todos los valores de time_zone disponibles. |
| font_family | cadena | Fuente para el texto del temporizador. | No | Ejemplo: Roboto-Bold. Ver todos los valores de font_family disponibles. |
| label_font_family | cadena | Fuente para las etiquetas del temporizador. | No | Ejemplo: Roboto-Bold. Ver todos los valores de font_family disponibles. |
| color_primary | cadena | Color principal (código hexadecimal). | Sí | Ejemplo: FF3A43 (rojo). |
| color_text | cadena | Color del texto (código hexadecimal). | Sí | Ejemplo: FFFFFF (blanco). |
| color_bg | cadena | Color de fondo (código hexadecimal). | Sí | Ejemplo: 000000 (negro). |
| font_size | entero | Tamaño del texto del temporizador. | No | Entre 14 y 73. |
| label_font_size | entero | Tamaño del texto de la etiqueta. | No | Entre 0 y 50. |
| day | entero | Mostrar días (0 = no, 1 = sí). | No | Debe ser 0 o 1. |
| lang | cadena | Código de idioma (ISO 2 letras). | No | Ejemplo: en (inglés). Ver los 54 idiomas soportados. |
| transparent | entero | Fondo: 0 = sólido, 1 = transparente. | No | Debe ser 0 o 1. |
| expired_mes_on | entero | Mostrar mensaje de expiración (0 = no, 1 = sí). | No | Debe ser 0 o 1. |
| expired_mes | cadena | Mensaje cuando expira el temporizador. | No | Máximo 100 caracteres. Ejemplo: This offer has expired |
| labels | entero | Usar etiquetas personalizadas (0 = no, 1 = sí). | No | Debe ser 0 o 1. |
| days | cadena | Etiqueta para días. | No | Máximo 15 caracteres. Ejemplo: days |
| hours | cadena | Etiqueta para horas. | No | Máximo 15 caracteres. Ejemplo: hours |
| minutes | cadena | Etiqueta para minutos. | No | Máximo 15 caracteres. Ejemplo: minutes |
| seconds | cadena | Etiqueta para segundos. | No | Máximo 15 caracteres. Ejemplo: seconds |
| timer_type | entero | Tipo de temporizador: 1 = Temporizador con fecha compartida, 2 = Temporizador personal, 3 = Temporizador por enlace. | No | Debe ser 1, 2 o 3. El predeterminado es 1 (Temporizador con fecha compartida). |
| duration | entero | Duración del temporizador en segundos (para temporizadores personales). | No | Obligatorio cuando timer_type es 2 (Temporizador personal). Ejemplo: 86400 (24 horas). |
| advanced_params | objeto | Configuraciones adicionales (ej., color del separador). | No | Ejemplo |
Crear un temporizador
Este endpoint te permite crear un temporizador. Para crear un nuevo temporizador, debes proporcionar todas las propiedades requeridas.
Ejemplo de solicitud:
Solicitud
curl -H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-X POST "https://countdownmail.com/api/create" \
-d '{
"skin_id":3,
"name":"Big Sale!",
"time_end":"2026-10-05 20:00:00",
"time_zone":"America\/Los_Angeles",
"font_family":"Roboto-Bold",
"color_primary":"FF3A43",
"color_text":"FFFFFF",
"color_bg":"000000",
"transparent":"0",
"font_size":"38",
"lang":"en",
"expired_mes_on":"1",
"expired_mes":"This offer has expired",
"labels":"1",
"days":"days",
"hours":"hours",
"minutes":"minutes",
"seconds":"seconds"
}'
Respuesta
{
"status": "success",
"message": {
"id": 1057,
"code": "td",
"src": "http://i.countdownmail.com/td.gif"
}
}
Actualizar un temporizador
Este endpoint te permite actualizar cualquier atributo del temporizador. Para actualizar un temporizador, envía una solicitud PUT a /update/{code} con los campos que deseas actualizar. Reemplaza {code} con el código del temporizador (ej., "td").
Ejemplo de solicitud:
Solicitud
curl -H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-X PUT "https://countdownmail.com/api/update/{code}" \
-d '{
"skin_id":6,
"name":"Flash Sale!",
"time_end":"2026-10-05 20:00:00"
}'
Respuesta
{
"status": "success",
"message": {
"id": 1057,
"code": "td",
"src": "http://i.countdownmail.com/td.gif"
}
}
Duplicar un temporizador
Para hacer una copia de un temporizador existente, envía una solicitud POST a /duplicate/{code}. Reemplaza {code} con el código único del temporizador que deseas copiar. Esto crea un nuevo temporizador que comienza con la misma configuración que el original.
Puedes actualizar los detalles del nuevo temporizador agregando un objeto JSON en el cuerpo de la solicitud. Esto te permite cambiar atributos específicos, como la hora de finalización o el nombre, mientras mantienes todo lo demás igual que el original. Los atributos que puedes actualizar son los mismos que puedes establecer al crear un nuevo temporizador (consulta la sección Modelo del temporizador para la lista completa). Si no incluyes un atributo, permanece igual que en el temporizador original.
Importante: El temporizador original no cambia. Solo el nuevo temporizador se ve afectado por las actualizaciones que envías en la solicitud.
Ejemplo de solicitud:
Solicitud
curl -H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-X POST "https://countdownmail.com/api/duplicate/{code}" \
-d '{
"skin_id":6,
"name":"Flash Sale!",
"time_end":"2026-10-05 20:00:00"
}'
Respuesta
{
"status": "success",
"message": {
"id": 1057,
"code": "td",
"src": "http://i.countdownmail.com/td.gif"
}
}
Desactivar un temporizador
Para detener un temporizador (archivar), envía una solicitud GET a /deactivate/{code}. Reemplaza {code} con el código del temporizador.
Activar un temporizador
Para activar un temporizador de nuevo, envía una solicitud GET a /activate/{code}. Reemplaza {code} con el código del temporizador.
Eliminar un temporizador
Para eliminar un temporizador, envía una solicitud DELETE a /delete/{code}. Reemplaza {code} con el código del temporizador.
Esta guía debería darte todo lo que necesitas para comenzar a usar la API de CountdownMail. Mantén tu clave API segura y consulta la documentación oficial para más detalles sobre campos como zonas horarias o fuentes.
