Referencia de la API
URL base https://autorev.rohnelt.dev. Autentícate con Authorization: Bearer <clave de api>. Toda respuesta es JSON.
Inicio rápido
# 1. crea una cuenta (devuelve tu clave una sola vez)
curl -X POST https://autorev.rohnelt.dev/v1/signup \
-H 'Content-Type: application/json' \
-d '{"email":"you@company.com"}'
# 2. úsala
curl -H "Authorization: Bearer $KEY" \
"https://autorev.rohnelt.dev/v1/email/verify?email=john.doe@gmail.com"
POST /v1/signup
Sin autenticación. Cuerpo: email (obligatorio), name, company, country, plan, referral_code, locale. Envía la cabecera Idempotency-Key para que los reintentos sean seguros.
GET|POST /v1/email/verify
| Parámetro | Tipo | Notas |
|---|---|---|
| string | obligatorio | |
| deep | bool | añade consultas SPF/DMARC; se factura como 2 unidades |
| dns | bool | true por defecto; ponlo en false para comprobar solo la sintaxis (sigue costando 1 unidad) |
{
"email": "john.doe@gmail.com",
"status": "deliverable", // deliverable | risky | undeliverable | unknown
"sub_status": "verified",
"score": 87, // 0-100
"normalized": "johndoe@gmail.com",
"has_mx": true, "mx_hosts": ["gmail-smtp-in.l.google.com"],
"is_disposable": false, "is_role": false, "is_free_provider": true,
"gibberish_score": 0.17, "did_you_mean": null,
"reasons": ["MX present (5 host(s))", "free consumer provider"],
"meta": {"units_charged": 1, "units_remaining": 249}
}
POST /v1/email/batch
Cuerpo {"emails": ["a@x.com", "b@y.com"]}. Se factura una unidad por fila. Las filas duplicadas dentro de un lote se resuelven una vez y se reutilizan, así que quitar duplicados antes de enviar no te cuesta nada extra. El tope de filas depende de tu plan.
GET|POST /v1/identity/validate
type = cpf | cnpj | iban | vat | card | isbn | ean13 | ein, más value. Los números de tarjeta nunca se devuelven completos ni se escriben en los registros. /v1/identity/autodetect infiere el tipo.
GET|POST /v1/phone/validate
phone y, opcionalmente, el código de país en country para formatos nacionales. Devuelve E.164, país ISO, tipo de línea y formato nacional.
Cuenta
| Endpoint | Propósito |
|---|---|
| GET /v1/account | plan, uso, factura proyectada |
| POST /v1/account/keys | emitir otra clave |
| DELETE /v1/account/keys/<id> | revocar una clave |
| GET /v1/account/invoices | historial de facturas con líneas de detalle |
| POST /v1/account/plan | subir o bajar de plan por autoservicio |
| POST /v1/account/welcome | reenviar el correo de bienvenida |
Los endpoints de cuenta tienen límite de peticiones, pero nunca consumen cuota.
Idioma
El sitio responde en el idioma que pide tu navegador con Accept-Language; ?lang=en|pt-BR|es lo fuerza. Las respuestas de la API siguen en inglés: los códigos de error y los nombres de campo son identificadores, no texto de interfaz. Los correos del ciclo de vida salen en el idioma capturado al registrarse; envía locale en /v1/signup para fijarlo explícitamente.
Errores
| Estado | Código | Significado |
|---|---|---|
| 400 | missing_parameter | petición incorrecta |
| 401 | invalid_api_key | clave ausente, incorrecta o revocada |
| 402 | quota_exceeded | cuota gratuita agotada - mejora el plan para continuar |
| 413 | payload_too_large | cuerpo por encima del límite configurado |
| 429 | rate_limited | respeta la cabecera Retry-After |
| 500 | internal_error | incluye un request_id |