CountdownMail API
Este guia ajudara voce a comecar a usar a API CountdownMail. Ele aborda como configurar, autenticar, lidar com erros e trabalhar com temporizadores de contagem regressiva.
Inicio rapido
Esta secao vai prepara-lo para usar a API CountdownMail e mostrar como fazer sua primeira solicitacao de API.
- Obtenha sua chave de API:
- Faca login na sua conta CountdownMail.
- Va para Perfil » API.
- Copie sua chave de API.
- Faca sua primeira solicitacao de API:
- Usaremos o endpoint "Criar um temporizador" como exemplo.
- Use uma ferramenta como cURL ou Postman para enviar uma solicitacao POST para https://countdownmail.com/api/create.
- Adicione sua chave de API no cabecalho Authorization.
- Inclua os detalhes necessarios do temporizador no corpo da solicitacao (em formato JSON).
Aqui esta um exemplo usando cURL:
Solicitacao
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, voce recebera uma resposta como esta:
Resposta
{
"status": "success",
"message": {
"id": 1057,
"code": "td",
"src": "http://i.countdownmail.com/td.gif"
}
}
Esta resposta inclui um codigo de temporizador (ex., "td") e uma URL para a imagem do temporizador.
Autenticacao
Para usar a API CountdownMail, voce precisa autenticar cada solicitacao com sua chave de API. Veja como:
- Adicione um cabecalho Authorization a sua solicitacao. O valor e sua chave de API.
- Alternativamente, use autenticacao basica: defina sua chave de API como nome de usuario e deixe a senha vazia.
Exemplo com cabecalho Authorization (cURL):
Solicitacao
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 autenticacao, ou voce recebera um erro 401 Unauthorized.
Usando Postman
Se voce usa Postman, ele facilita o teste de solicitacoes de API. Para usa-lo com CountdownMail:
Erros
As vezes, as solicitacoes de API falham. A API CountdownMail usa codigos de status HTTP para informar o que deu errado. Aqui esta uma lista de possiveis erros, o que significam e o que fazer:
| Codigo | Nome do status | Descricao | Acao sugerida | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 400 | Solicitacao invalida | Algo esta errado com sua solicitacao. | Verifique se sua solicitacao corresponde a documentacao e usa a sintaxe correta. | ||||||||
| 401 | Nao autorizado | Voce nao tem permissao para fazer esta solicitacao. | Certifique-se de usar uma chave de API valida no cabecalho Authorization. | ||||||||
| 404 | Nao encontrado | O servidor nao consegue encontrar o que voce solicitou. | Verifique se sua URL corresponde a um endpoint de API valido. | ||||||||
| 405 | Metodo nao permitido | O endpoint nao suporta esse metodo. | Use o metodo HTTP correto (ex., GET, POST) conforme mostrado na documentacao. | ||||||||
| 429 | Muitas solicitacoes | O cliente enviou muitas solicitacoes em 1 minuto. | Voce pode usar os cabecalhos 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 | Servico indisponivel | O servidor esta muito ocupado no momento. | Aguarde um pouco e tente novamente. |
Exemplo de resposta de erro (401 Unauthorized):
Resposta
{
"status": "error",
"message": "Unauthorized"
}
Se voce vir um erro, verifique o codigo de status e a mensagem e siga a acao sugerida.
Modelo do temporizador
O recurso Timer contem todas as informacoes sobre o temporizador de contagem regressiva. Estes sao os campos disponiveis para definir um temporizador de contagem regressiva:
| Propriedade | Tipo | Descricao | Obrigatorio | Notas |
|---|---|---|---|---|
| skin_id | inteiro | O estilo de design do temporizador (modelo). | Sim | Deve ser um numero entre 1 e 23. |
| name | string | O nome do temporizador. | Sim | Maximo 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 horario do temporizador. | Sim | Exemplo: America/Los_Angeles. Veja todos os valores de time_zone disponiveis. |
| font_family | string | Fonte para o texto do temporizador. | Nao | Exemplo: Roboto-Bold. Veja todos os valores de font_family disponiveis. |
| label_font_family | string | Fonte para os rotulos do temporizador. | Nao | Exemplo: Roboto-Bold. Veja todos os valores de font_family disponiveis. |
| color_primary | string | Cor principal (codigo hexadecimal). | Sim | Exemplo: FF3A43 (vermelho). |
| color_text | string | Cor do texto (codigo hexadecimal). | Sim | Exemplo: FFFFFF (branco). |
| color_bg | string | Cor de fundo (codigo hexadecimal). | Sim | Exemplo: 000000 (preto). |
| font_size | inteiro | Tamanho do texto do temporizador. | Nao | Entre 14 e 73. |
| label_font_size | inteiro | Tamanho do texto do rotulo. | Nao | Entre 0 e 50. |
| day | inteiro | Mostrar dias (0 = nao, 1 = sim). | Nao | Deve ser 0 ou 1. |
| lang | string | Codigo do idioma (ISO 2 letras). | Nao | Exemplo: en (Ingles). Veja todos os 54 idiomas suportados. |
| transparent | inteiro | Fundo: 0 = solido, 1 = transparente. | Nao | Deve ser 0 ou 1. |
| expired_mes_on | inteiro | Mostrar mensagem de expiracao (0 = nao, 1 = sim). | Nao | Deve ser 0 ou 1. |
| expired_mes | string | Mensagem quando o temporizador expira. | Nao | Maximo 100 caracteres. Exemplo: This offer has expired |
| labels | inteiro | Usar rotulos personalizados (0 = nao, 1 = sim). | Nao | Deve ser 0 ou 1. |
| days | string | Rotulo para dias. | Nao | Maximo 15 caracteres. Exemplo: days |
| hours | string | Rotulo para horas. | Nao | Maximo 15 caracteres. Exemplo: hours |
| minutes | string | Rotulo para minutos. | Nao | Maximo 15 caracteres. Exemplo: minutes |
| seconds | string | Rotulo para segundos. | Nao | Maximo 15 caracteres. Exemplo: seconds |
| timer_type | inteiro | Tipo de temporizador: 1 = Temporizador com data compartilhada, 2 = Temporizador pessoal, 3 = Temporizador por link. | Nao | Deve ser 1, 2 ou 3. O padrao e 1 (Temporizador com data compartilhada). |
| duration | inteiro | Duracao do temporizador em segundos (para temporizadores pessoais). | Nao | Obrigatorio quando timer_type e 2 (Temporizador pessoal). Exemplo: 86400 (24 horas). |
| advanced_params | objeto | Configuracoes extras (ex., cor do separador). | Nao | Exemplo |
Criar um temporizador
Este endpoint permite criar um temporizador. Para criar um novo temporizador, voce deve fornecer todas as propriedades obrigatorias.
Exemplo de solicitacao:
Solicitacao
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"
}'
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 solicitacao PUT para /update/{code} com os campos que deseja atualizar. Substitua {code} pelo codigo do temporizador (ex., "td").
Exemplo de solicitacao:
Solicitacao
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"
}'
Resposta
{
"status": "success",
"message": {
"id": 1057,
"code": "td",
"src": "http://i.countdownmail.com/td.gif"
}
}
Duplicar um temporizador
Para fazer uma copia de um temporizador existente, envie uma solicitacao POST para /duplicate/{code}. Substitua {code} pelo codigo unico do temporizador que deseja copiar. Isso cria um novo temporizador que comeca com as mesmas configuracoes do original.
Voce pode atualizar os detalhes do novo temporizador adicionando um objeto JSON no corpo da solicitacao. Isso permite alterar atributos especificos, como a hora de termino ou o nome, mantendo todo o resto igual ao original. Os atributos que voce pode atualizar sao os mesmos que pode definir ao criar um novo temporizador (consulte a secao Modelo do temporizador para a lista completa). Se voce nao incluir um atributo, ele permanece o mesmo do temporizador original.
Importante: O temporizador original nao muda. Apenas o novo temporizador e afetado pelas atualizacoes que voce envia na solicitacao.
Exemplo de solicitacao:
Solicitacao
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"
}'
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 solicitacao GET para /deactivate/{code}. Substitua {code} pelo codigo do temporizador.
Ativar um temporizador
Para ativar um temporizador novamente, envie uma solicitacao GET para /activate/{code}. Substitua {code} pelo codigo do temporizador.
Excluir um temporizador
Para excluir um temporizador, envie uma solicitacao DELETE para /delete/{code}. Substitua {code} pelo codigo do temporizador.
Este guia deve fornecer tudo o que voce precisa para comecar a usar a API CountdownMail. Mantenha sua chave de API segura e consulte a documentacao oficial para mais detalhes sobre campos como fusos horarios ou fontes!
