> ## Documentation Index
> Fetch the complete documentation index at: https://docs.salesfinity.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Poll an Email Enrichment

> Returns the current state of an email enrichment request. While the lookup is in progress `status` is `pending` or `processing`. When finished `status` is `completed` (with the found `email`) or `not-found` (no email available). Polling is a fallback for the callback and is safe to call repeatedly — a request is never charged twice.

Returns the current state of an email enrichment request created with [Request an Email Enrichment](/api-reference/endpoint/enrich-email).

Polling is the fallback for the `callback_url` webhook — it is safe to call repeatedly, and a request is **never charged twice** regardless of how often you poll.

### Path Parameters

| Parameter | Type   | Description                                                         |
| --------- | ------ | ------------------------------------------------------------------- |
| `id`      | string | The enrichment request `_id` returned when the request was created. |

### Status lifecycle

| Status       | Meaning                                                                    |
| ------------ | -------------------------------------------------------------------------- |
| `pending`    | Accepted, not yet started.                                                 |
| `processing` | Lookup in progress.                                                        |
| `completed`  | An email was found — see the `email` field. (1 credit charged.)            |
| `not-found`  | Lookup finished, no email available. `email` is `null`. No credit charged. |
| `failed`     | The lookup could not be completed.                                         |

### Response (200) — completed

```json theme={null}
{
  "_id": "507f1f77bcf86cd799439011",
  "status": "completed",
  "enrichment_type": "work_email",
  "email": { "email": "jane@acme.com", "type": "work" },
  "linkedin_url": "https://www.linkedin.com/in/janedoe",
  "external_id": "lead-42"
}
```

### Response (200) — still running

```json theme={null}
{
  "_id": "507f1f77bcf86cd799439011",
  "status": "processing",
  "linkedin_url": "https://www.linkedin.com/in/janedoe"
}
```

### Errors

| Status | Description                                    |
| ------ | ---------------------------------------------- |
| 404    | No enrichment request found for the given `id` |


## OpenAPI

````yaml GET /v1/api/enrichment/email/{id}
openapi: 3.0.1
info:
  title: Salesfinity API
  description: API documentation for Salesfinity platform
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://client-api.salesfinity.co
security:
  - ApiKeyAuth: []
paths:
  /v1/api/enrichment/email/{id}:
    get:
      tags:
        - Enrichment
      summary: Poll an email enrichment request
      description: >-
        Returns the current state of an email enrichment request. While the
        lookup is in progress `status` is `pending` or `processing`. When
        finished `status` is `completed` (with the found `email`) or `not-found`
        (no email available). Polling is a fallback for the callback and is safe
        to call repeatedly — a request is never charged twice.
      operationId: get-email-enrichment
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: >-
            The enrichment request _id returned by POST
            /v1/api/enrichment/email.
      responses:
        '200':
          description: Current state of the enrichment request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailEnrichmentRequestDTO'
        '404':
          description: No enrichment request found for the given id
components:
  schemas:
    EmailEnrichmentRequestDTO:
      type: object
      properties:
        _id:
          type: string
          description: >-
            Enrichment request ID. Use this to poll GET
            /v1/api/enrichment/email/{id}.
          example: 507f1f77bcf86cd799439011
        status:
          type: string
          enum:
            - pending
            - processing
            - completed
            - not-found
            - failed
          description: >-
            Current state of the request. `completed` means an email was found;
            `not-found` means none was available.
        linkedin_url:
          type: string
          example: https://www.linkedin.com/in/username
        enrichment_type:
          type: string
          enum:
            - work_email
            - personal_email
          description: Present once the lookup resolves. Reflects the requested email type.
        email:
          type: object
          nullable: true
          description: >-
            Populated when status is `completed`. Null when status is
            `not-found`.
          properties:
            email:
              type: string
              example: john@acme.com
            type:
              type: string
              example: work
        external_id:
          type: string
          description: The external_id supplied on the original request, if any.
          example: lead-42
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````