CountdownMail API
Esta guia te ayudara a comenzar a usar la API de CountdownMail. Cubre como configurar, autenticar, manejar errores y trabajar con temporizadores de cuenta regresiva.
Inicio rapido
Esta seccion te preparara para usar la API de CountdownMail y te mostrara como hacer tu primera solicitud API.
- Obtener tu clave API:
- Inicia sesion 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).
Aqui 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, obtendras una respuesta como esta:
Respuesta
{
"status": "success",
"message": {
"id": 1057,
"code": "td",
"src": "http://i.countdownmail.com/td.gif"
}
}
Esta respuesta incluye un codigo de temporizador (ej., "td") y una URL para la imagen del temporizador.
Autenticacion
Para usar la API de CountdownMail, necesitas autenticar cada solicitud con tu clave API. Asi es como:
- Agrega un encabezado Authorization a tu solicitud. El valor es tu clave API.
- Alternativamente, usa autenticacion basica: establece tu clave API como nombre de usuario y deja la contrasena vacia.
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 autenticacion, o recibiras un error 401 Unauthorized.
Usar Postman
Si usas Postman facilita probar solicitudes API. Para usarlo con CountdownMail:
Errores
A veces, las solicitudes API fallan. La API de CountdownMail usa codigos de estado HTTP para indicarte que salio mal. Aqui hay una lista de posibles errores, su significado y que hacer:
| Codigo | Nombre del estado | Descripcion | Accion sugerida | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 400 | Solicitud incorrecta | Algo esta mal con tu solicitud. | Verifica que tu solicitud coincida con la documentacion y use la sintaxis correcta. | ||||||||
| 401 | No autorizado | No tienes permiso para hacer esta solicitud. | Asegurate de estar usando una clave API valida en el encabezado Authorization. | ||||||||
| 404 | No encontrado | El servidor no puede encontrar lo que solicitaste. | Verifica que tu URL coincida con un endpoint API valido. | ||||||||
| 405 | Metodo no permitido | El endpoint no soporta ese metodo. | Usa el metodo HTTP correcto (ej., GET, POST) como se muestra en la documentacion. | ||||||||
| 429 | Demasiadas solicitudes | El cliente ha enviado demasiadas solicitudes en 1 minuto. | Puedes usar los encabezados que se envian con cada respuesta para determinar el estado actual de tu limite de velocidad.
| ||||||||
| 500 | Error interno del servidor | Algo fallo en el lado de CountdownMail. | Intenta de nuevo mas tarde. Si sigue ocurriendo, contacta al soporte. | ||||||||
| 503 | Servicio no disponible | El servidor esta 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 codigo de estado y el mensaje, luego sigue la accion sugerida.
Modelo del temporizador
El recurso Timer contiene toda la informacion sobre el temporizador de cuenta regresiva. Estos son los campos disponibles para definir un temporizador de cuenta regresiva:
| Propiedad | Tipo | Descripcion | Requerido | Notas |
|---|---|---|---|---|
| skin_id | entero | El estilo de diseno del temporizador (plantilla). | Si | Debe ser un numero entre 1 y 23. |
| name | cadena | El nombre del temporizador. | Si | Maximo 100 caracteres. Ejemplo: Big Sale! |
| time_end | cadena | Cuando termina el temporizador (YYYY-MM-DD HH:MM:SS). | Si | Ejemplo: 2025-04-09 04:57:16 |
| time_zone | cadena | La zona horaria del temporizador. | Si | 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 (codigo hexadecimal). | Si | Ejemplo: FF3A43 (rojo). |
| color_text | cadena | Color del texto (codigo hexadecimal). | Si | Ejemplo: FFFFFF (blanco). |
| color_bg | cadena | Color de fondo (codigo hexadecimal). | Si | Ejemplo: 000000 (negro). |
| font_size | entero | Tamano del texto del temporizador. | No | Entre 14 y 73. |
| label_font_size | entero | Tamano del texto de la etiqueta. | No | Entre 0 y 50. |
| day | entero | Mostrar dias (0 = no, 1 = si). | No | Debe ser 0 o 1. |
| lang | cadena | Codigo de idioma (ISO 2 letras). | No | Ejemplo: en (Ingles). Ver los 54 idiomas soportados. |
| transparent | entero | Fondo: 0 = solido, 1 = transparente. | No | Debe ser 0 o 1. |
| expired_mes_on | entero | Mostrar mensaje de expiracion (0 = no, 1 = si). | No | Debe ser 0 o 1. |
| expired_mes | cadena | Mensaje cuando expira el temporizador. | No | Maximo 100 caracteres. Ejemplo: This offer has expired |
| labels | entero | Usar etiquetas personalizadas (0 = no, 1 = si). | No | Debe ser 0 o 1. |
| days | cadena | Etiqueta para dias. | No | Maximo 15 caracteres. Ejemplo: days |
| hours | cadena | Etiqueta para horas. | No | Maximo 15 caracteres. Ejemplo: hours |
| minutes | cadena | Etiqueta para minutos. | No | Maximo 15 caracteres. Ejemplo: minutes |
| seconds | cadena | Etiqueta para segundos. | No | Maximo 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 | Duracion 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-02-02 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, envia una solicitud PUT a /update/{code} con los campos que deseas actualizar. Reemplaza {code} con el codigo 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-02-02 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, envia una solicitud POST a /duplicate/{code}. Reemplaza {code} con el codigo unico del temporizador que deseas copiar. Esto crea un nuevo temporizador que comienza con la misma configuracion 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 especificos, como la hora de finalizacion o el nombre, mientras mantienes todo lo demas igual que el original. Los atributos que puedes actualizar son los mismos que puedes establecer al crear un nuevo temporizador (consulta la seccion 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 envias 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-02-02 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), envia una solicitud GET a /deactivate/{code}. Reemplaza {code} con el codigo del temporizador.
Activar un temporizador
Para activar un temporizador de nuevo, envia una solicitud GET a /activate/{code}. Reemplaza {code} con el codigo del temporizador.
Eliminar un temporizador
Para eliminar un temporizador, envia una solicitud DELETE a /delete/{code}. Reemplaza {code} con el codigo del temporizador.
Esta guia deberia darte todo lo que necesitas para comenzar a usar la API de CountdownMail. Manten tu clave API segura y consulta la documentacion oficial para mas detalles sobre campos como zonas horarias o fuentes.
