Get Deal
curl --request GET \
--url https://api.example.com/v1/deals/{id}import requests
url = "https://api.example.com/v1/deals/{id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v1/deals/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/deals/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/deals/{id}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/v1/deals/{id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/deals/{id}")
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{
"data": {
"deal": {
"id": "<string>",
"name": "<string>",
"stage": "<string>",
"status": "<string>",
"pipeline": "<string>",
"estimated_value": 123,
"currency": "<string>",
"main_contact_id": "<string>",
"owner_user_id": "<string>",
"priority": "<string>",
"matter_type": "<string>",
"tags": [
{}
],
"related_company_id": "<string>",
"high_level_description": "<string>",
"next_follow_up_date": "<string>",
"fee_model": "<string>",
"probability": 123,
"closed_date": "<string>",
"created_date": "<string>",
"updated_date": "<string>"
}
}
}Deals
Get Deal
Retrieve a single deal by ID with all fields
GET
/
v1
/
deals
/
{id}
Get Deal
curl --request GET \
--url https://api.example.com/v1/deals/{id}import requests
url = "https://api.example.com/v1/deals/{id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v1/deals/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/deals/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/deals/{id}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/v1/deals/{id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/deals/{id}")
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{
"data": {
"deal": {
"id": "<string>",
"name": "<string>",
"stage": "<string>",
"status": "<string>",
"pipeline": "<string>",
"estimated_value": 123,
"currency": "<string>",
"main_contact_id": "<string>",
"owner_user_id": "<string>",
"priority": "<string>",
"matter_type": "<string>",
"tags": [
{}
],
"related_company_id": "<string>",
"high_level_description": "<string>",
"next_follow_up_date": "<string>",
"fee_model": "<string>",
"probability": 123,
"closed_date": "<string>",
"created_date": "<string>",
"updated_date": "<string>"
}
}
}Request
Path Parameters
string
required
The deal’s unique ID (UUID)
Headers
Authorization: Bearer wbk_your_api_key_here
Requires an API key with the
deals:read permission.Response
object
Show properties
Show properties
object
Show Deal object
Show Deal object
string
Unique deal ID (UUID)
string
Deal name / title
string
Current pipeline stage (e.g.,
qualification, proposal, closed_won)string
open, won, or loststring
Pipeline slug the deal belongs to
number
Estimated deal value in the deal’s currency
string
ISO 4217 currency code (e.g.,
EUR, USD)string
UUID of the primary contact for this deal
string
UUID of the user who owns this deal
string
low, medium, high, or urgentstring
Type of legal matter (e.g.,
litigation, m&a, employment)array
Array of tag strings
string
UUID of the linked company, if any
string
Free-form description of the deal
string
ISO 8601 date of next scheduled follow-up
string
Fee structure (e.g.,
hourly, fixed, contingency, retainer)integer
Win probability as an integer 0–100
string
ISO 8601 date the deal was closed (null if still open)
string
ISO 8601 timestamp when the deal was created
string
ISO 8601 timestamp of last update
curl https://data.leadlex.com/functions/v1/api-gateway/v1/deals/3f8e1d2c-4b5a-6d7e-8f9a-0b1c2d3e4f5a \
-H "Authorization: Bearer wbk_your_api_key_here"
import requests
API_KEY = "wbk_your_api_key_here"
BASE_URL = "https://data.leadlex.com/functions/v1/api-gateway"
DEAL_ID = "3f8e1d2c-4b5a-6d7e-8f9a-0b1c2d3e4f5a"
response = requests.get(
f"{BASE_URL}/v1/deals/{DEAL_ID}",
headers={"Authorization": f"Bearer {API_KEY}"},
)
deal = response.json()["data"]["deal"]
const DEAL_ID = '3f8e1d2c-4b5a-6d7e-8f9a-0b1c2d3e4f5a';
const response = await fetch(
`https://data.leadlex.com/functions/v1/api-gateway/v1/deals/${DEAL_ID}`,
{ headers: { 'Authorization': 'Bearer wbk_your_api_key_here' } }
);
const { data } = await response.json();
Example Response
{
"data": {
"deal": {
"id": "3f8e1d2c-4b5a-6d7e-8f9a-0b1c2d3e4f5a",
"name": "Acme Corp — M&A Advisory",
"stage": "proposal",
"status": "open",
"pipeline": "default",
"estimated_value": 250000,
"currency": "EUR",
"main_contact_id": "123e4567-e89b-12d3-a456-426614174000",
"owner_user_id": "9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d",
"priority": "high",
"matter_type": "m&a",
"tags": ["cross-border", "strategic"],
"related_company_id": "c1b2a3d4-e5f6-7890-abcd-ef1234567890",
"high_level_description": "Advisory on proposed acquisition of subsidiary",
"next_follow_up_date": "2026-04-22",
"fee_model": "fixed",
"probability": 60,
"closed_date": null,
"created_date": "2026-03-12T09:00:00Z",
"updated_date": "2026-04-15T16:40:00Z"
}
}
}
Errors
| Status | Code | Description |
|---|---|---|
| 401 | invalid_key | Invalid or expired API key |
| 403 | insufficient_permissions | Missing deals:read permission |
| 404 | deal_not_found | No deal with this ID in your workspace |
| 429 | rate_limited | Rate limit exceeded |