Result
Fetch a job's results as paginated JSON or a CSV export.
Endpoint
Method: GET
Path: /career-monitor/result/{job_id}/
Full URL: https://backend.ecoreservice.com/api/v1/career-monitor/result/{job_id}/
Auth: Authorization: Token YOUR_API_TOKEN (or Bearer) — see Authentication
Returns JSON by default. Pass the header Accept: text/csv for a CSV download instead (see CSV Export).
Query Parameters
| Param | Type | Description |
|---|---|---|
page | integer | Page number. Default 1. |
page_size | integer | Records per page. Default 100. |
Example Request
# JSON
curl "https://backend.ecoreservice.com/api/v1/career-monitor/result/123/?page=1&page_size=100" \
-H "Authorization: Token YOUR_API_TOKEN"
# CSV
curl "https://backend.ecoreservice.com/api/v1/career-monitor/result/123/" \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Accept: text/csv" -o results.csv
Successful Response — 200 OK (JSON)
{
"job_id": 123,
"job_status": "Completed",
"total_records": 2,
"page": 1,
"page_size": 100,
"data": [ /* rows — shape depends on the job's tier */ ]
}
job_status: Pending · Processing · Completed · Failed.
The row shape depends on the job's tier: lite returns the base fields; full adds four new-company fields.
Lite row
{
"ec_id": "1001",
"first_name": "Jane",
"last_name": "Doe",
"current_title": "VP Sales",
"contact_location": "San Francisco, CA",
"original_company_name": "Acme Corp",
"matched_company_name": "Acme Corporation",
"company_website": "acme.com",
"status": "Left the company"
}
Full row
Everything in Lite, plus four new-company fields:
{
"ec_id": "1001",
"first_name": "Jane",
"last_name": "Doe",
"current_title": "VP Sales",
"contact_location": "San Francisco, CA",
"original_company_name": "Acme Corp",
"matched_company_name": "Acme Corporation",
"company_website": "acme.com",
"status": "Left the company",
"new_company": "Globex Inc",
"new_company_title": "SVP Sales",
"new_company_email": "jane.doe@globex.com",
"new_company_email_status": "Valid"
}
Output Fields
| Field | Lite | Full | Description |
|---|---|---|---|
ec_id | ✓ | ✓ | Your row identifier (echoed from submit) |
first_name / last_name | ✓ | ✓ | The contact |
current_title | ✓ | ✓ | Contact's current job title |
contact_location | ✓ | ✓ | Contact location |
original_company_name | ✓ | ✓ | The company you submitted |
matched_company_name | ✓ | ✓ | The company matched from the profile |
company_website | ✓ | ✓ | Matched company website |
status | ✓ | ✓ | Employment status — see Record Status Values |
new_company | — | ✓ | The company the contact moved to (when they left) |
new_company_title | — | ✓ | Title at the new company |
new_company_email | — | ✓ | Generated email at the new company |
new_company_email_status | — | ✓ | Verification result for the new-company email — e.g. Valid |
The
new_company*fields appear only onfull-tier jobs, and are populated for contacts who have changed companies (typicallystatus = "Left the company"); they are empty when the contact is still at the provided company or could not be matched.
Record Status Values
Each result row carries a status:
| Value | Meaning |
|---|---|
Still in the company | Contact is still employed at the provided company |
Left the company | Contact has left / changed jobs |
Uncertain | Verification inconclusive |
Unable to match | Could not match the contact to a company |
Broken LI | Missing or invalid LinkedIn URL |
Pending | Not processed yet |
Error | Processing error for this record |
Results can be polled while the job is still
Processing; rows that aren't finished yet showPendingin theirstatus.
CSV Export
Send the header Accept: text/csv to the result endpoint to download a CSV instead of JSON:
curl "https://backend.ecoreservice.com/api/v1/career-monitor/result/123/" \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Accept: text/csv" -o results.csv
Full-tier jobs include the four new-company columns — New Company, New Company Title, New Company Email, Email Status — in addition to the base columns; Lite-tier jobs include the base columns only.
Error Responses
| HTTP | When | Body |
|---|---|---|
| 400 | Job not found / not owned by this account | { "error": "..." } |
| 401 | Missing or invalid token | { "detail": "Authentication credentials were not provided." } |
| 403 | Test-mode token used | { "error": "Test tokens cannot be used for credit-consuming operations. Use a live API key or JWT." } |
See Error Codes for the full list.