bulk-jobslisted
Install: claude install-skill LeadMagic/leadmagic-skills
# LeadMagic — Bulk jobs & uploaders
Async enrichment for lists. Bills **per successful row** at the same rate as the matching single-request product; failed rows are free. **Any list ≥ 50 rows belongs here — never a loop of single calls.**
## Workflow
1. Preflight: `GET /v1/credits` + `POST /v1/batch/preview-cost` (both free).
2. Validate mapping (free): `POST /bulk/validate`.
3. Submit: `POST /bulk/submit`.
4. Poll `GET /bulk/jobs/{jobId}` **≥45s apart**, or set a `callback` webhook, or stream `GET /bulk/jobs/{jobId}/stream`.
5. Fetch: `GET /bulk/jobs/{jobId}/download` (file) or `/results` / `/rows` (paged). Failed rows: `/errors` (free) — fix and resubmit only the misses.
## Submit shapes
| Variant | Body | When |
|---------|------|------|
| `POST /bulk/submit` | `rows` \| `csv` \| `fileUrl` | Auto-detect (recommended) |
| `POST /bulk/json` | `rows` | JSON array |
| `POST /bulk/csv` | `csv` | Inline CSV string |
| `POST /bulk/url` | `fileUrl` | Remote CSV/JSON/JSONL |
| `POST /bulk/file` | multipart | After `POST /bulk/upload-session` |
```bash
curl -sS -X POST "https://api.leadmagic.io/bulk/submit" \
-H "X-API-Key: $LEADMAGIC_API_KEY" -H "Content-Type: application/json" \
-d '{"product":"email_finder","rows":[{"first_name":"Jane","last_name":"Doe","domain":"acme.com"}]}'
```
## Product keys
`email_finder` · `email_validation` · `personal_email_finder` · `mobile_finder` · `b2b_profile_to_email` · `email_to_b2b_profile` · `profile_search` · `role_finder` · `compa