> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.dealsignal.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.dealsignal.com/_mcp/server.

# Get LE job status

GET https://app.dealsignal.com/api/v1/lead_enrichments/{id}

Returns the current status and stats for a single Lead Enrichment job,
wrapped in `lead_enrichment`.

**Polling tip:** the job is finished when `is_completed` is `true`
(`completed_at` is then set). `Completion Running` still means in progress.


Reference: https://docs.dealsignal.com/api-reference/lead-enrichment/get-lead-enrichment-job

## Request

### Path parameters

- `id` (integer, required) — ID of the Lead Enrichment job.

### Query parameters

- `api_key` (string, required) — Your Dealsignal API key. Obtain it from the Dealsignal dashboard.

## Response

### 200

Job details.

- `lead_enrichment` (LeadEnrichmentJob, optional) — A Lead Enrichment job. Responses can include further keys that are not part of this contract; ignore them.

## Errors

### 401 Unauthorized Error

Invalid key, inactive account, or expired subscription.

- `message` (string, required)
- `authorization_failure` (boolean, optional)
- `inactive` (boolean, optional)

### 422 Unprocessable Entity Error

No Lead Enrichment job with this `id` exists on your account.

- `message` (string, required)
- `authorization_failure` (boolean, optional)
- `inactive` (boolean, optional)

## Types

### LeadEnrichmentJob

A Lead Enrichment job. Responses can include further keys that are not part of this contract; ignore them.

- `id` (integer, optional)
- `name` (string, optional)
- `status` (enum, optional) — `Completion Running` means the results are being finalized — treat it as in progress. The job is finished when `is_completed` is `true`.
  - Allowed values: `Created`, `Launched`, `Running`, `Completion Running`, `Completed`
- `is_completed` (boolean, optional) — `true` once results are available (`completed_at` is set).
- `completed_at` (datetime, optional, nullable)
- `created_at` (datetime, optional)
- `updated_at` (datetime, optional)
- `type` (enum, optional) — The job's `match_field` (`name`, `email` or `linkedin_url`).
  - Allowed values: `name`, `email`, `linkedin_url`
- `source_type` (string, optional)
- `profile_type` (enum, optional) — Profile level the job enriches, derived from the request flags.
  - Allowed values: `Contact Profile`, `Lead Profile`, `Full Prospect Profile`, `Full Prospect Profile With Direct Dial`
- `is_full_prospect_profile` (boolean, optional, nullable)
- `total_leads_to_enrich` (integer, optional) — Number of leads submitted in the job.
- `total_enriched_leads` (integer, optional) — Number of leads matched to a Dealsignal contact.

## Examples

### Running job

**Response**

```json
{
  "lead_enrichment": {
    "id": 640,
    "name": "Q1 2024 Prospect List",
    "status": "Running",
    "is_completed": false,
    "completed_at": null,
    "created_at": "2024-06-01T10:00:00Z",
    "updated_at": "2024-06-01T10:20:00Z",
    "type": "linkedin_url",
    "source_type": "from_json",
    "profile_type": "Contact Profile",
    "is_full_prospect_profile": false,
    "total_leads_to_enrich": 500,
    "total_enriched_leads": 210
  }
}
```

**SDK Code**

```python Running job
import requests

url = "https://app.dealsignal.com/api/v1/lead_enrichments/640"

querystring = {"api_key":"YOUR_API_KEY"}

response = requests.get(url, params=querystring)

print(response.json())
```

```javascript Running job
const url = 'https://app.dealsignal.com/api/v1/lead_enrichments/640?api_key=YOUR_API_KEY';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Running job
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://app.dealsignal.com/api/v1/lead_enrichments/640?api_key=YOUR_API_KEY"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Running job
require 'uri'
require 'net/http'

url = URI("https://app.dealsignal.com/api/v1/lead_enrichments/640?api_key=YOUR_API_KEY")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java Running job
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://app.dealsignal.com/api/v1/lead_enrichments/640?api_key=YOUR_API_KEY")
  .asString();
```

```php Running job
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://app.dealsignal.com/api/v1/lead_enrichments/640?api_key=YOUR_API_KEY');

echo $response->getBody();
```

```csharp Running job
using RestSharp;

var client = new RestClient("https://app.dealsignal.com/api/v1/lead_enrichments/640?api_key=YOUR_API_KEY");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift Running job
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://app.dealsignal.com/api/v1/lead_enrichments/640?api_key=YOUR_API_KEY")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Completed job

**Response**

```json
{
  "lead_enrichment": {
    "id": 640,
    "name": "Q1 2024 Prospect List",
    "status": "Completed",
    "is_completed": true,
    "completed_at": "2024-06-01T11:30:00Z",
    "created_at": "2024-06-01T10:00:00Z",
    "updated_at": "2024-06-01T11:30:00Z",
    "type": "linkedin_url",
    "source_type": "from_json",
    "profile_type": "Contact Profile",
    "is_full_prospect_profile": false,
    "total_leads_to_enrich": 500,
    "total_enriched_leads": 487
  }
}
```

**SDK Code**

```python Completed job
import requests

url = "https://app.dealsignal.com/api/v1/lead_enrichments/640"

querystring = {"api_key":"YOUR_API_KEY"}

response = requests.get(url, params=querystring)

print(response.json())
```

```javascript Completed job
const url = 'https://app.dealsignal.com/api/v1/lead_enrichments/640?api_key=YOUR_API_KEY';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Completed job
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://app.dealsignal.com/api/v1/lead_enrichments/640?api_key=YOUR_API_KEY"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Completed job
require 'uri'
require 'net/http'

url = URI("https://app.dealsignal.com/api/v1/lead_enrichments/640?api_key=YOUR_API_KEY")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java Completed job
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://app.dealsignal.com/api/v1/lead_enrichments/640?api_key=YOUR_API_KEY")
  .asString();
```

```php Completed job
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://app.dealsignal.com/api/v1/lead_enrichments/640?api_key=YOUR_API_KEY');

echo $response->getBody();
```

```csharp Completed job
using RestSharp;

var client = new RestClient("https://app.dealsignal.com/api/v1/lead_enrichments/640?api_key=YOUR_API_KEY");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift Completed job
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://app.dealsignal.com/api/v1/lead_enrichments/640?api_key=YOUR_API_KEY")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```