# Get Enrichment Results `GET https://api.getprospect.com/v2/enrichments/{id}/results` Reads the results of a `completed` enrichment created through the API, one row per request item in request order, each tagged with its `status`; `matched` rows carry the same `person` / `company` object the sync bulk enrich returns. Pages of up to 500 (`limit`, default 100): send `metadata.pagination.next_cursor` back as `cursor` until it is null; `status` keeps one kind of row. The same items are in the `links.jsonl` download. Results are kept until `results_expires_at` (30 days after `finished_at`). Free; a `poll` (0 rate-limit units, per-second window only). > **How are credits spent?** > > Reading results is free. Credits were spent while the job ran. ## Result statuses There is one item per request row, in request order, each with your `identifier` and the row as you sent it in `input`: - **`matched`** - found. `person` (or `company`) is the same object the sync bulk enrich returns, and `matched_by` says how. `matched_by: "email_finder"` means the live finder worked out the email; that person carries the row's name and company plus the email, with `id: null`. - **`not_matched`** - nothing found. - **`invalid`** - the row had no usable lookup; `error.message` says what to send. - **`failed`** - a lookup errored on our side; send the row again. - **`not_processed`** - the job ran out of credits before reaching the row; send it again after a top-up. Results are available once the job is `completed` (`409` before) and kept for 30 days (`results_expires_at`, `410` after). Jobs started in the app from a CSV file have no JSON results: download their `links.csv`. The whole result is also in the job's `links.jsonl` (one item per line, a signed link valid for an hour; read the job again for a fresh one). ## Authentication Pass your API key in the `x-api-key` header. ## Path parameters - `id` (string, required): The enrichment id: the `id` that a create answers and `GET /v2/enrichments` lists. ## Query parameters - `cursor` (string, optional): Opaque cursor: `metadata.pagination.next_cursor` of the previous page. Absent for the first page; the last page answers `next_cursor: null`. - `limit` (integer, optional, min: 1, max: 500, default: 100): Rows per page. - `status` (enum, optional): Only the rows with this result `status`. Allowed values: `matched`, `not_matched`, `invalid`, `failed`, `not_processed`. ## Example request ```bash curl --request GET \ --url https://api.getprospect.com/v2/enrichments/{id}/results \ --header 'Content-Type: application/json' \ --header 'x-api-key: YOUR_API_KEY' ``` ## Response 200 One page of results. ```json { "success": true, "data": [ { "identifier": "crm-1", "status": "matched", "matched_by": "linkedin_url", "input": { "linkedin_url": "https://linkedin.com/in/jane-doe" }, "person": { "id": "64f1a2b3c4d5e6f7a8b9c0d1", "full_name": "Emily Carter", "first_name": "Emily", "last_name": "Carter", "email": { "status": "valid", "address": "emily.carter.sample@intercom.com", "domain": "intercom.com", "provider": "google.com", "verified_at": "2026-06-18T09:12:44.000Z", "checked_at": "2026-06-18T09:12:44.000Z", "revealed": true }, "mobile_phone": { "status": "not_requested", "number": null, "revealed": false, "checked_at": null }, "location": { "city": "San Francisco", "state": "California", "state_code": "CA", "country": "United States", "country_code": "US", "time_zone": "America/Los_Angeles", "time_zone_offset": -7 }, "linkedin_url": "https://linkedin.com/in/emily-carter-sample", "primary_position": { "job_title": "Senior Product Marketing Manager", "normalized_job_title": "Product Marketing Manager", "seniority": "Senior", "departments": [ "Marketing" ], "start_date": "2024-11", "company": { "id": "64f1a2b3c4d5e6f7a8b9c0d2", "name": "Intercom", "description": "Intercom is a customer service platform that helps businesses talk to customers.", "logo": "https://logos.getprospect.com/64f1a2b3c4d5e6f7a8b9c0d2.jpg", "website": "intercom.com", "email": { "status": "valid", "address": "emily.carter.sample@intercom.com", "domain": "intercom.com", "provider": "google.com", "verified_at": "2026-06-18T09:12:44.000Z", "checked_at": "2026-06-18T09:12:44.000Z", "revealed": true }, "linkedin_url": "https://linkedin.com/company/intercom-inc-", "social_networks": { "linkedin_url": "https://www.linkedin.com/company/intercom", "facebook_url": "https://www.facebook.com/intercom", "twitter_url": "https://x.com/intercom", "instagram_url": "https://www.instagram.com/intercom", "youtube_url": "https://www.youtube.com/@intercom", "tiktok_url": null, "crunchbase_url": "https://www.crunchbase.com/organization/intercom", "github_url": null, "pinterest_url": null }, "industry": "Software Development", "keywords": [ "customer messaging", "help desk software" ], "naics_codes": [ 511210 ], "type": "Privately Held", "business_type": "B2B", "revenue_stream": "Subscriptions / Recurring", "founded": 2011, "employee_count": 900, "employee_range": "501-1000", "location": { "city": "San Francisco", "state": "California", "state_code": "CA", "country": "United States", "country_code": "US", "raw_address": "55 2nd St, San Francisco, CA 94105" }, "other_locations": [ { "city": "Dublin", "state": null, "state_code": null, "country": "Ireland", "country_code": "IE", "raw_address": "2 Dockland Central, Dublin, Ireland" } ] }, "position_index": 0, "id": "64f1a2b3c4d5e6f7a8b9c0e1" }, "other_positions": [], "saved": { "id": null, "saved_at": "2026-05-02T11:20:00.000Z", "lists": [ { "id": "64f1a2b3c4d5e6f7a8b9c0f1", "name": "SaaS Marketing Leaders", "created_at": "2026-04-01T08:00:00.000Z" } ] } } }, { "identifier": "crm-2", "status": "matched", "matched_by": "email_finder", "input": { "first_name": "John", "last_name": "Smith", "company_domain": "acme.com" }, "person": { "id": null, "full_name": "John Smith", "first_name": "John", "last_name": "Smith", "linkedin_url": null, "email": { "status": "valid", "address": "john.smith@acme.com", "domain": "acme.com", "provider": null, "verified_at": null, "checked_at": null, "revealed": true }, "primary_position": { "company": { "name": null, "domain": "acme.com" } } } }, { "identifier": "crm-3", "status": "not_matched", "input": { "email": "ann@globex.com" }, "person": null }, { "identifier": "3", "status": "invalid", "input": { "first_name": "Solo" }, "error": { "code": "missing_field", "message": "Provide linkedin_url, or email, or first_name + last_name together with company_domain or company_name." } } ], "metadata": { "timestamp": "2026-10-05T09:00:00.000Z", "pagination": { "next_cursor": "Mw", "limit": 100 } } } ``` ## Response 400 A malformed id or query, or a `cursor` no page handed out (`VALIDATION_ERROR`; `payload.code` says which kind of mistake). ```json { "success": false, "data": null, "metadata": { "timestamp": "2026-10-05T09:00:00.000Z" }, "errors": [ { "name": "VALIDATION_ERROR", "message": "cursor: cursor is not a next_cursor value from a previous page.", "payload": { "field": "cursor", "code": "invalid_format" } } ] } ``` ## Response 401 Missing, unknown or inactive credentials (`UNAUTHORIZED`). ## Response 404 No enrichment with this id in the workspace (`NOT_FOUND`). ## Response 409 `CONFLICT`: the job is not `completed` yet (`invalid_state`, `payload.status` names its state), or it was created in the App, whose output is the `links.csv` file (`results_unavailable`). ```json { "success": false, "data": null, "metadata": { "timestamp": "2026-10-05T09:00:00.000Z" }, "errors": [ { "name": "CONFLICT", "message": "The enrichment is enriching; results are served once it is completed.", "payload": { "code": "invalid_state", "status": "enriching" } } ] } ``` ## Response 410 The results were removed at `results_expires_at` (`GONE`, `results_expired`). ```json { "success": false, "data": null, "metadata": { "timestamp": "2026-10-05T09:00:00.000Z" }, "errors": [ { "name": "GONE", "message": "The results of this enrichment expired at 2026-11-16T10:09:30.000Z.", "payload": { "code": "results_expired" } } ] } ``` ## Response 429 Over the `poll` rate limit (`RATE_LIMIT`); wait `Retry-After` seconds. Sent only where rate limits are enforced for the caller channel. ## Response 500 Unexpected server error.