CountdownMail API
Este guia ajudará você a começar a usar a API CountdownMail. Ele aborda como configurar, autenticar, lidar com erros e trabalhar com temporizadores de contagem regressiva.
Início rápido
Esta seção vai prepará-lo para usar a API CountdownMail e mostrar como fazer sua primeira solicitação de API.
- Obtenha sua chave de API:
- Faça login na sua conta CountdownMail.
- Vá para Perfil » API.
- Copie sua chave de API.
- Faça sua primeira solicitação de API:
- Usaremos o endpoint "Criar um temporizador" como exemplo.
- Use uma ferramenta como cURL ou Postman para enviar uma solicitação POST para https://countdownmail.com/api/create.
- Adicione sua chave de API no cabeçalho Authorization.
- Inclua os detalhes necessários do temporizador no corpo da solicitação (em formato JSON).
Aqui está um exemplo usando cURL:
Solicitação
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"
}'
- Substitua YOUR_API_KEY pela sua chave de API real.
- Se tudo funcionar, você receberá uma resposta como esta:
Resposta
{
"status": "success",
"message": {
"id": 1057,
"code": "td",
"src": "http://i.countdownmail.com/td.gif"
}
}
Esta resposta inclui um código de temporizador (ex., "td") e uma URL para a imagem do temporizador.
Autenticação
Para usar a API CountdownMail, você precisa autenticar cada solicitação com sua chave de API. Veja como:
- Adicione um cabeçalho Authorization à sua solicitação. O valor é sua chave de API.
- Alternativamente, use autenticação básica: defina sua chave de API como nome de usuário e deixe a senha vazia.
Exemplo com cabeçalho Authorization (cURL):
Solicitação
curl -H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-X GET "https://countdownmail.com/api/some_endpoint"
- Substitua YOUR_API_KEY pela sua chave de API real.
- Sempre inclua autenticação, ou você receberá um erro 401 Unauthorized.
Usando Postman
Se você usa Postman, ele facilita o teste de solicitações de API. Para usá-lo com CountdownMail:
Erros
Às vezes, as solicitações de API falham. A API CountdownMail usa códigos de status HTTP para informar o que deu errado. Aqui está uma lista de possíveis erros, o que significam e o que fazer:
| Código | Nome do status | Descrição | Ação sugerida | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 400 | Solicitação inválida | Algo está errado com sua solicitação. | Verifique se sua solicitação corresponde à documentação e usa a sintaxe correta. | ||||||||
| 401 | Não autorizado | Você não tem permissão para fazer esta solicitação. | Certifique-se de usar uma chave de API válida no cabeçalho Authorization. | ||||||||
| 404 | Não encontrado | O servidor não consegue encontrar o que você solicitou. | Verifique se sua URL corresponde a um endpoint de API válido. | ||||||||
| 405 | Método não permitido | O endpoint não suporta esse método. | Use o método HTTP correto (ex., GET, POST) conforme mostrado na documentação. | ||||||||
| 429 | Muitas solicitações | O cliente enviou muitas solicitações em 1 minuto. | Você pode usar os cabeçalhos enviados com cada resposta para determinar o status atual do seu limite de taxa.
| ||||||||
| 500 | Erro interno do servidor | Algo quebrou no lado do CountdownMail. | Tente novamente mais tarde. Se continuar acontecendo, entre em contato com o suporte. | ||||||||
| 503 | Serviço indisponível | O servidor está muito ocupado no momento. | Aguarde um pouco e tente novamente. |
Exemplo de resposta de erro (401 Unauthorized):
Resposta
{
"status": "error",
"message": "Unauthorized"
}
Se você vir um erro, verifique o código de status e a mensagem e siga a ação sugerida.
Modelo do temporizador
O recurso Timer contém todas as informações sobre o temporizador de contagem regressiva. Estes são os campos disponíveis para definir um temporizador de contagem regressiva:
| Propriedade | Tipo | Descrição | Obrigatório | Notas |
|---|---|---|---|---|
| skin_id | inteiro | O estilo de design do temporizador (modelo). | Sim | Deve ser um número entre 1 e 23. |
| name | string | O nome do temporizador. | Sim | Máximo 100 caracteres. Exemplo: Big Sale! |
| time_end | string | Quando o temporizador termina (YYYY-MM-DD HH:MM:SS). | Sim | Exemplo: 2025-04-09 04:57:16 |
| time_zone | string | O fuso horário do temporizador. | Sim | Exemplo: America/Los_Angeles. Veja todos os valores de time_zone disponíveis. |
| font_family | string | Fonte para o texto do temporizador. | Não | Exemplo: Roboto-Bold. Veja todos os valores de font_family disponíveis. |
| label_font_family | string | Fonte para os rótulos do temporizador. | Não | Exemplo: Roboto-Bold. Veja todos os valores de font_family disponíveis. |
| color_primary | string | Cor principal (código hexadecimal). | Sim | Exemplo: FF3A43 (vermelho). |
| color_text | string | Cor do texto (código hexadecimal). | Sim | Exemplo: FFFFFF (branco). |
| color_bg | string | Cor de fundo (código hexadecimal). | Sim | Exemplo: 000000 (preto). |
| font_size | inteiro | Tamanho do texto do temporizador. | Não | Entre 14 e 73. |
| label_font_size | inteiro | Tamanho do texto do rótulo. | Não | Entre 0 e 50. |
| day | inteiro | Mostrar dias (0 = não, 1 = sim). | Não | Deve ser 0 ou 1. |
| lang | string | Código do idioma (ISO 2 letras). | Não | Exemplo: en (Inglês). Veja todos os 54 idiomas suportados. |
| transparent | inteiro | Fundo: 0 = sólido, 1 = transparente. | Não | Deve ser 0 ou 1. |
| expired_mes_on | inteiro | Mostrar mensagem de expiração (0 = não, 1 = sim). | Não | Deve ser 0 ou 1. |
| expired_mes | string | Mensagem quando o temporizador expira. | Não | Máximo 100 caracteres. Exemplo: This offer has expired |
| labels | inteiro | Usar rótulos personalizados (0 = não, 1 = sim). | Não | Deve ser 0 ou 1. |
| days | string | Rótulo para dias. | Não | Máximo 15 caracteres. Exemplo: days |
| hours | string | Rótulo para horas. | Não | Máximo 15 caracteres. Exemplo: hours |
| minutes | string | Rótulo para minutos. | Não | Máximo 15 caracteres. Exemplo: minutes |
| seconds | string | Rótulo para segundos. | Não | Máximo 15 caracteres. Exemplo: seconds |
| timer_type | inteiro | Tipo de temporizador: 1 = Temporizador com data compartilhada, 2 = Temporizador pessoal, 3 = Temporizador por link. | Não | Deve ser 1, 2 ou 3. O padrão é 1 (Temporizador com data compartilhada). |
| duration | inteiro | Duração do temporizador em segundos (para temporizadores pessoais). | Não | Obrigatório quando timer_type é 2 (Temporizador pessoal). Exemplo: 86400 (24 horas). |
| advanced_params | objeto | Configurações extras (ex., cor do separador). | Não | Exemplo |
Criar um temporizador
Este endpoint permite criar um temporizador. Para criar um novo temporizador, você deve fornecer todas as propriedades obrigatórias.
Exemplo de solicitação:
Solicitação
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"
}'
Resposta
{
"status": "success",
"message": {
"id": 1057,
"code": "td",
"src": "http://i.countdownmail.com/td.gif"
}
}
Atualizar um temporizador
Este endpoint permite atualizar qualquer atributo do temporizador. Para atualizar um temporizador, envie uma solicitação PUT para /update/{code} com os campos que deseja atualizar. Substitua {code} pelo código do temporizador (ex., "td").
Exemplo de solicitação:
Solicitação
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"
}'
Resposta
{
"status": "success",
"message": {
"id": 1057,
"code": "td",
"src": "http://i.countdownmail.com/td.gif"
}
}
Duplicar um temporizador
Para fazer uma cópia de um temporizador existente, envie uma solicitação POST para /duplicate/{code}. Substitua {code} pelo código único do temporizador que deseja copiar. Isso cria um novo temporizador que começa com as mesmas configurações do original.
Você pode atualizar os detalhes do novo temporizador adicionando um objeto JSON no corpo da solicitação. Isso permite alterar atributos específicos, como a hora de término ou o nome, mantendo todo o resto igual ao original. Os atributos que você pode atualizar são os mesmos que pode definir ao criar um novo temporizador (consulte a seção Modelo do temporizador para a lista completa). Se você não incluir um atributo, ele permanece o mesmo do temporizador original.
Importante: O temporizador original não muda. Apenas o novo temporizador é afetado pelas atualizações que você envia na solicitação.
Exemplo de solicitação:
Solicitação
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"
}'
Resposta
{
"status": "success",
"message": {
"id": 1057,
"code": "td",
"src": "http://i.countdownmail.com/td.gif"
}
}
Desativar um temporizador
Para parar um temporizador (arquivar), envie uma solicitação GET para /deactivate/{code}. Substitua {code} pelo código do temporizador.
Ativar um temporizador
Para ativar um temporizador novamente, envie uma solicitação GET para /activate/{code}. Substitua {code} pelo código do temporizador.
Excluir um temporizador
Para excluir um temporizador, envie uma solicitação DELETE para /delete/{code}. Substitua {code} pelo código do temporizador.
Este guia deve fornecer tudo o que você precisa para começar a usar a API CountdownMail. Mantenha sua chave de API segura e consulte a documentação oficial para mais detalhes sobre campos como fusos horários ou fontes!
