Skip to main content

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​

ParamTypeDescription
pageintegerPage number. Default 1.
page_sizeintegerRecords 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​

FieldLiteFullDescription
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 on full-tier jobs, and are populated for contacts who have changed companies (typically status = "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:

ValueMeaning
Still in the companyContact is still employed at the provided company
Left the companyContact has left / changed jobs
UncertainVerification inconclusive
Unable to matchCould not match the contact to a company
Broken LIMissing or invalid LinkedIn URL
PendingNot processed yet
ErrorProcessing error for this record

Results can be polled while the job is still Processing; rows that aren't finished yet show Pending in their status.

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​

HTTPWhenBody
400Job not found / not owned by this account{ "error": "..." }
401Missing or invalid token{ "detail": "Authentication credentials were not provided." }
403Test-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.