API de Integração

Integre mensagens seguras em qualquer aplicação

Início Rápido

curl
curl -X POST https://cryptnote.pro/api/v1/create.php \
  -H 'Content-Type: application/json' \
  -d '{"content":"Hello API","max_views":1}'
JavaScript
const res = await fetch('/api/v1/create.php', {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify({content: 'Hello', max_views: 1})
});

Base da API

https://cryptnote.pro/api/v1

Rate Limiting

A API possui limite de requisições para garantir disponibilidade para todos os usuários.

Limites:

  • 60 requisições por minuto por IP

Headers de Resposta:

Header Descrição
X-RateLimit-LimitLimite máximo (60)
X-RateLimit-RemainingRequisições restantes na janela atual
X-RateLimit-ResetUnix timestamp do reset

Resposta 429 (Limite Excedido):

{
  "success": false,
  "error": "rate_limit_exceeded",
  "message": "Too many requests. Please try again later.",
  "retry_after": 45
}

Estratégia de Retry Recomendada

  • • Verifique o header X-RateLimit-Remaining antes de fazer requisições
  • • Se receber 429, aguarde o tempo indicado em retry_after
  • • Implemente exponential backoff para retries

POST /api/v1/create.php

Criar conteúdo criptografado

Parâmetros:

Campo Tipo Descrição
contentstring*Conteúdo (máx. 50000)
max_viewsintVisualizações (1-20, padrão: 1)
passwordstringSenha (4-100 chars)
expire_minutesintExpiração (1-10080 min)
is_markdownboolFormato Markdown
is_htmlboolFormato HTML

Resposta:

{
  "success": true,
  "share_url": "https://cryptnote.pro/view.php?token=...",
  "token": "abc123..."
}

POST /api/v1/view.php

Ler/Descriptografar conteúdo

Este endpoint consome uma visualização quando bem-sucedido.

Parâmetros:

tokenstring*Token do conteúdo
passwordstringSenha (se protegido)

Resposta:

{
  "success": true,
  "content": "... plaintext ...",
  "is_markdown": false,
  "remaining_views": 0
}

POST /api/v1/status.php

Verificar status do token (não consome visualização)

Parâmetros:

tokenstring*Token do conteúdo

Resposta:

{
  "success": true,
  "status": "active|expired|not_found",
  "requires_password": false,
  "max_views": 1,
  "remaining_views": 1
}

Erros Comuns

  • rate_limit_exceeded — Limite de requisições excedido (aguarde retry_after segundos)
  • content_required — Conteúdo vazio
  • invalid_max_views — Fora do intervalo 1-20
  • invalid_expire_minutes — Fora do intervalo 1-10080
  • password_required — Senha necessária
  • not_found_or_expired — Token não existe ou expirado
Voltar ao Início