Developer API & MCP
Let any app or AI agent find and apply to remote, Indonesia-friendly jobs. Free to start; applying needs a paid plan and spends 1 credit per apply.
Quickstart
Create a key, then search jobs with a single request:
curl "https://lokerdollar.com/api/v1/jobs?q=react&remote_type=worldwide&limit=5" \ -H "Authorization: Bearer lk_live_…"
Authentication
Pass your key as a bearer token on every request. Keys are shown once at creation — store them securely. Never put a key in a query string.
Authorization: Bearer lk_live_…
Plans & rate limits
| Plan | Price | Rate limit | Max page | Apply | Credits/mo |
|---|---|---|---|---|---|
| Free | $0 | 60/min | 5 | — | 0 |
| Starter | $19/mo | 120/min | 20 | ✓ | 100 |
| Pro | $49/mo | 300/min | 50 | ✓ | 500 |
Free is ad-supported (results may include promoted listings labeled sponsored: true). Paid tiers are ad-free. Every response carries X-RateLimit-Limit / -Remaining / -Reset headers; a 429 includes Retry-After.
Paid plans are billed in USD via Gumroad (monthly). Start free, then upgrade from your dashboard: API dashboard →
Integrations
Three ways to plug into the same feed, credits, and tiers — pick what fits your stack.
MCP server
Connect any MCP client — Claude Desktop, Claude Code, Cursor — straight to the job feed. Four tools: search_jobs, get_job, apply_to_job, get_me. Same tiers and apply credits as REST.
View MCP setup →Job feed for portals
Pull redistribution-safe listings into your own job board or aggregator. Search, filter, and paginate via GET /api/v1/jobs. Free tier included; paid tiers unlock deeper pagination.
View REST docs →Salary data for HR tools
Feed real Indonesia/remote-USD salary benchmarks into your HR or comp tool. GET /api/v1/market/salary, /market/roles, /market/skills — median/IQR, role detail, in-demand skills. Read-only, no credits spent.
View market endpoints →Claude Code quickstart
claude mcp add --transport http lokerdollar https://lokerdollar.com/api/mcp \ --header "Authorization: Bearer lk_live_…"
REST endpoints
GET /api/v1/jobs
Search jobs. Query params: q, location, remote_type (worldwide | regional | timezone-based), job_type (full-time | part-time | contract | freelance), opportunity_type (regular | internship | fellowship | apprenticeship | volunteer), limit (1–50, default 20), offset, locale (id | en).
{
"tier": "free",
"jobs": [
{
"id": "job_8f2a1c",
"title": "Senior React Developer",
"company": "Remote Labs",
"location": "Remote (Worldwide)",
"payMin": 4000, "payMax": 6000,
"payCurrency": "USD", "payPeriod": "monthly",
"remoteType": "worldwide", "jobType": "full-time",
"postedAt": "2026-06-12T09:00:00Z",
"url": "https://lokerdollar.com/en/jobs/senior-react-developer-remote-labs--job_8f2a1c",
"applyUrl": "https://lokerdollar.com/en/out/job_8f2a1c/senior-react-developer-remote-labs",
"sponsored": false
}
],
"page": 0, "hasMore": true
}GET /api/v1/jobs/{id}
Fetch a single active job (same basic fields as search).
POST /api/v1/jobs/{id}/apply
Apply to a job (paid tiers only; spends 1 credit). Body: candidate_name, candidate_email, message (80–3000 chars), resume_url (optional), locale (optional). Returns either a submitted application or an external apply URL to finish on the source site.
curl -X POST "https://lokerdollar.com/api/v1/jobs/job_8f2a1c/apply" \
-H "Authorization: Bearer lk_live_…" \
-H "Content-Type: application/json" \
-d '{"candidate_name":"Budi","candidate_email":"budi@example.com","message":"…(80–3000 chars)…"}'GET /api/v1/me
Your tier, scopes, apply-credit balance, and limits — call this to discover what your key can do before applying.
Market data endpoints
Read-only salary and skill-demand data derived from the active job corpus — no apply credits spent, available on every tier including free.
GET /api/v1/market/salary
Salary benchmark grid: median and IQR pay by role family × seniority across the active corpus.
GET /api/v1/market/roles / /roles/{role}
List role families with a market report, or fetch the detail report for one family (role slug from the list, e.g. engineering). Query: locale (id | en).
GET /api/v1/market/skills
Top in-demand skills across the active corpus. Query: limit (1–100, default 25).
curl "https://lokerdollar.com/api/v1/market/skills?limit=10" \ -H "Authorization: Bearer lk_live_…"
Errors
Every error returns the same envelope with a stable code:
{ "error": { "code": "rate_limited", "message": "…" } }| unauthorized | 401 |
| forbidden | 403 |
| payment_required | 402 |
| not_found | 404 |
| invalid_request | 400 |
| rate_limited | 429 |
| service_disabled | 503 |
| internal | 500 |
Connect via MCP
The MCP server speaks JSON-RPC 2.0 over Streamable HTTP. Add it to any MCP client (Claude Desktop, Cursor, …):
{
"mcpServers": {
"lokerdollar": {
"type": "http",
"url": "https://lokerdollar.com/api/mcp",
"headers": { "Authorization": "Bearer lk_live_…" }
}
}
}Tools: search_jobs, get_job, apply_to_job, get_me. The server advertises usage instructions on initialize. Discovery: /.well-known/mcp.json · /llms.txt · /api/openapi.json
By using the API you agree to the API Terms of Service — including attribution, acceptable-use, and rate-limit rules.