Complete reference for the Indepth Solution Backend API.
/api/* endpoints require an API key.
Include the key in the X-Api-Key header with every request:
curl -H "X-Api-Key: YOUR_WORKER_API_KEY" \
https://backend.indepthsolution.net/api/jobs
The API key is set via the WORKER_API_KEY environment variable.
Requests without a valid key receive 401 Unauthorized.
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | / |
No | Home page (this server's landing page) |
| GET | /status |
No | Server status dashboard with live metrics |
| GET | /docs |
No | This API documentation page |
| GET | /health |
No | JSON health check — uptime, memory, timestamp |
| POST | /api/jobs/run/:jobId |
X-Api-Key |
Queue a CronJob for execution via Agenda.js |
| POST | /api/jobs/pause/:jobId |
X-Api-Key |
Cancel/pause a running Agenda job |
| GET | /api/jobs/status/:jobId |
X-Api-Key |
Get job progress (current, total, message) |
| POST | /api/jobs/start-campaign/:campaignId |
X-Api-Key |
Start an email campaign via cold_email_sender job |
| POST | /api/jobs/pause-campaign/:campaignId |
X-Api-Key |
Pause an email campaign and cancel queued sends |
Response:
{
"status": "ok",
"uptime": 3456.78,
"timestamp": "2026-02-28T12:00:00.000Z",
"memory": {
"used": 45,
"total": 1024
},
"node": "v20.20.0"
}
Request body:
{
"jobType": "google_maps_scraper",
"config": { "keywords": ["plumber"], "locations": ["New York"] }
}
Response:
{
"success": true,
"message": "Job queued",
"agendaJobId": "65f..."
}
Response:
{
"success": true,
"data": {
"status": "running",
"progress": { "current": 42, "total": 100, "message": "Scraping keyword 3/5" }
}
}
Response:
{
"success": true,
"message": "Campaign started"
}
Response:
{
"success": true,
"message": "Campaign paused"
}
| Job Type | Schedule | Description |
|---|---|---|
google_maps_scraper |
On-demand | Scrapes Google Maps for business leads using Puppeteer. Extracts name, address, phone, website, rating, reviews. Max 500 results per run. |
cold_email_sender |
On-demand | Sends campaign emails via SMTP with anti-spam protections (random delays, daily limits, List-Unsubscribe header). |
drip_sequence |
Every hour | Finds leads due for their next email step and queues individual cold_email_sender jobs. |
bounce_handler |
Every hour | Processes bounced emails, marks leads, tracks domain bounce rates. Auto-pauses campaigns exceeding 5% bounce rate. |
| Code | Meaning |
|---|---|
200 | Success |
401 | Unauthorized — missing or invalid X-Api-Key |
404 | Not Found — endpoint doesn't exist |
500 | Internal Server Error — check server logs |