Quickstart: Tu Primera Solicitud en 5 Minutos
Esta guía te llevará desde cero hasta obtener tu primer resultado con MasLeads API.
Prerrequisitos
- Cuenta de MasLeads con plan Professional, Elite o Custom
- API Key activa (cómo obtenerla en Autenticación)
Paso 1: Verifica tu API Key
Primero, comprobemos que tu API Key funciona:
curl -X GET "https://api.masleads.com/api/v1/usage" \
-H "X-API-Key: sk_live_tu_api_key_aqui"
import requests
headers = {"X-API-Key": "sk_live_tu_api_key_aqui"}
response = requests.get(
"https://api.masleads.com/api/v1/usage",
headers=headers
)
print(response.json())
const response = await fetch("https://api.masleads.com/api/v1/usage", {
headers: { "X-API-Key": "sk_live_tu_api_key_aqui" }
});
const data = await response.json();
console.log(data);
Respuesta esperada:
{
"credits_available": 10086,
"credits_limit_monthly": 1000,
"credits_used_this_month": 0,
"period_end": "2026-02-01T10:10:41.946954",
"period_start": "2026-01-01T00:00:00",
"plan": "standard"
}
Paso 2: Crea un Job
Envía leads para procesar. Puedes solicitar email o phone. No puedes solicitar ambos a la vez.
curl -X POST "https://api.masleads.com/api/v1/enrich/leads" \
-H "X-API-Key: sk_live_tu_api_key_aqui" \
-H "Content-Type: application/json" \
-d '{
"field": "email",
"leads": [
{
"linkedin_url": "https://www.linkedin.com/in/johndue/",
"external_id": "Lead-001"
},
{
"linkedin_url": "https://www.linkedin.com/in/foobar/",
"external_id": "Lead-002"
}
],
"webhook_url": "https://yourapp.com/webhooks/masleads"
}'
import requests
headers = {
"X-API-Key": "sk_live_tu_api_key_aqui",
"Content-Type": "application/json"
}
payload = {
"field": "email",
"leads": [
{"linkedin_url": "https://www.linkedin.com/in/johndue/", "external_id": "Lead-001"},
{"linkedin_url": "https://www.linkedin.com/in/foobar/", "external_id": "Lead-002"}
],
"webhook_url": "https://yourapp.com/webhooks/masleads"
}
response = requests.post(
"https://api.masleads.com/api/v1/enrich/leads",
headers=headers,
json=payload
)
print(response.json())
const response = await fetch("https://api.masleads.com/api/v1/enrich/leads", {
method: "POST",
headers: {
"X-API-Key": "sk_live_tu_api_key_aqui",
"Content-Type": "application/json"
},
body: JSON.stringify({
field: "email",
leads: [
{ linkedin_url: "https://www.linkedin.com/in/johndue/", external_id: "Lead-001" },
{ linkedin_url: "https://www.linkedin.com/in/foobar/", external_id: "Lead-002" }
],
webhook_url: "https://yourapp.com/webhooks/masleads"
})
});
const data = await response.json();
console.log(data);
Respuesta:
{
"job_id": "job_e3351fb3e67a431da96d17dec9",
"status": "pending",
"field": "email",
"total_leads": 2,
"credits_charged": 2,
"created_at": "2026-01-09T10:13:57.356979",
"webhook_url": "https://yourapp.com/webhooks/masleads",
"webhook_secret_set": false
}
Nota: El cobro total se realiza en el momento de crear el job. Los créditos por leads no encontrados se reembolsan automáticamente.
Paso 3: Consulta el Estado (Polling)
El procesamiento toma entre segundos y minutos. Consulta el estado:
curl -X GET "https://api.masleads.com/api/v1/jobs/job_e3351fb3e67a431da96d17dec9" \
-H "X-API-Key: sk_live_tu_api_key_aqui"
Estados posibles:
| Estado | Significado |
|---|---|
pending |
En cola, aún no procesado |
processing |
Procesamiento en curso |
completed |
Listo para descargar resultados |
failed |
Error en el procesamiento |
Respuesta cuando está en progreso:
{
"job_id": "job_e3351fb3e67a431da96d17dec9",
"status": "processing",
"field": "email",
"total_leads": 2,
"leads_processed": 0,
"leads_found": 0,
"leads_not_found": 0,
"leads_error": 0,
"created_at": "2026-01-09T10:15:50",
"updated_at": "2026-01-09T10:15:51",
"completed_at": null
}
Respuesta cuando está completo:
{
"job_id": "job_e3351fb3e67a431da96d17dec9",
"status": "completed",
"field": "email",
"total_leads": 2,
"leads_processed": 2,
"leads_found": 1,
"leads_not_found": 0,
"leads_error": 1,
"created_at": "2026-01-09T10:15:50",
"updated_at": "2026-01-09T10:16:30",
"completed_at": "2026-01-09T10:16:30"
}
Paso 4: Obtén los Resultados
Cuando status sea completed, descarga los datos. La respuesta es paginada:
curl -X GET "https://api.masleads.com/api/v1/jobs/job_e3351fb3e67a431da96d17dec9/results?page=1&per_page=50" \
-H "X-API-Key: sk_live_tu_api_key_aqui"
Paginación
Los resultados se devuelven paginados para manejar jobs con muchos leads:
| Parámetro | Default | Máximo | Descripción |
|---|---|---|---|
page |
1 | - | Número de página |
per_page |
50 | 100 | Leads por página |
Si tu job tiene más leads que per_page, usa el campo pagination.total_pages para iterar:
# Página 1
curl "https://api.masleads.com/api/v1/jobs/{job_id}/results?page=1&per_page=50"
# Página 2
curl "https://api.masleads.com/api/v1/jobs/{job_id}/results?page=2&per_page=50"
Respuesta
{
"job_id": "job_4d92187e7b144fafa8e21ad9f4",
"status": "completed",
"field": "email",
"total_leads": 1,
"results": {
"found": 0,
"not_found": 0,
"error": 1
},
"credits": {
"charged": 1,
"refunded": 1,
"net": 0
},
"leads": [
{
"external_id": "CRM-001",
"linkedin_url": "https://www.linkedin.com/in/jquinterosmv2/",
"status": "error",
"error_code": "timeout",
"result": null,
"refunded": true,
"request_uuid": "41e6636a-1ca4-407a-aec2-b10612795d5b"
}
],
"pagination": {
"page": 1,
"per_page": 50,
"total_leads": 1,
"total_pages": 1
},
"created_at": "2026-01-08T14:39:34",
"completed_at": "2026-01-08T15:10:12"
}
Estados de leads
| Status | Descripción | Crédito |
|---|---|---|
found |
Email/teléfono encontrado | Consumido |
not_found |
No se encontró información | Reembolsado |
error |
Error de procesamiento (ver error_code) |
Reembolsado |
Ejemplos de Código
Para ejemplos completos en Python, JavaScript y más, visita la sección de Ejemplos.
Próximos Pasos
- Webhooks: Evita el polling recibiendo notificaciones automáticas → Guía de Webhooks
- Límites: Entiende los límites de la API → Rate Limiting
- Errores: Maneja errores correctamente → Error Handling
Anterior: ← Introducción | Siguiente: Autenticación →