curl --request GET \
--url https://api.setteo.io/v1/leads \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.setteo.io/v1/leads"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.setteo.io/v1/leads', 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.setteo.io/v1/leads",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.setteo.io/v1/leads"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.setteo.io/v1/leads")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.setteo.io/v1/leads")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123,
"ext_id": "crm_123",
"first_name": "Jean",
"last_name": "Dupont",
"username": "jdupont",
"image": "https://example.com/avatar.jpg",
"email": "jean.dupont@example.com",
"phone": "+33612345678",
"source": "api",
"warmth": "warm",
"pipeline_stage": "qualified",
"is_optout": false,
"variables": {
"plan": "pro"
},
"whatsapp_phone_number_id": 12,
"age": 34,
"occupation_status": "self_employed",
"maturity_level": "advanced",
"engagement_level": "high",
"is_lost": false,
"lost_reason": "price_objection",
"profile_extracted_at": "2026-07-08T12:00:00Z",
"created_at": "2026-07-08T12:00:00Z",
"updated_at": "2026-07-08T12:00:00Z",
"tags": [
{
"id": 1,
"label": "Prospect chaud",
"description": "Prospect prêt à réserver un appel.",
"pipeline_stage": "qualified",
"created_at": "2026-07-08T12:00:00Z",
"updated_at": "2026-07-08T12:00:00Z"
}
],
"conversations": [
{
"id": 456,
"platform": "whatsapp",
"last_inbound_at": "2026-07-08T12:00:00Z",
"last_outbound_at": "2026-07-08T12:05:00Z",
"summary_generated_at": "2026-07-08T12:10:00Z",
"messages_count": 12
}
]
}
],
"links": {
"first": "<string>",
"last": "<string>",
"prev": "<string>",
"next": "<string>"
},
"meta": {
"path": "https://api.setteo.io/v1/leads",
"per_page": 25,
"next_cursor": "<string>",
"prev_cursor": "<string>"
}
}{
"message": "Unauthenticated."
}{
"message": "Unauthenticated."
}{
"message": "Unauthenticated."
}{
"message": "The given data was invalid.",
"errors": {
"phone": [
"The phone has already been taken."
]
}
}{
"message": "Unauthenticated."
}{
"message": "Unauthenticated."
}Lister les prospects
Retourne les prospects du tenant avec filtres optionnels, sans l’analyse de profil détaillée.
curl --request GET \
--url https://api.setteo.io/v1/leads \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.setteo.io/v1/leads"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.setteo.io/v1/leads', 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.setteo.io/v1/leads",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.setteo.io/v1/leads"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.setteo.io/v1/leads")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.setteo.io/v1/leads")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123,
"ext_id": "crm_123",
"first_name": "Jean",
"last_name": "Dupont",
"username": "jdupont",
"image": "https://example.com/avatar.jpg",
"email": "jean.dupont@example.com",
"phone": "+33612345678",
"source": "api",
"warmth": "warm",
"pipeline_stage": "qualified",
"is_optout": false,
"variables": {
"plan": "pro"
},
"whatsapp_phone_number_id": 12,
"age": 34,
"occupation_status": "self_employed",
"maturity_level": "advanced",
"engagement_level": "high",
"is_lost": false,
"lost_reason": "price_objection",
"profile_extracted_at": "2026-07-08T12:00:00Z",
"created_at": "2026-07-08T12:00:00Z",
"updated_at": "2026-07-08T12:00:00Z",
"tags": [
{
"id": 1,
"label": "Prospect chaud",
"description": "Prospect prêt à réserver un appel.",
"pipeline_stage": "qualified",
"created_at": "2026-07-08T12:00:00Z",
"updated_at": "2026-07-08T12:00:00Z"
}
],
"conversations": [
{
"id": 456,
"platform": "whatsapp",
"last_inbound_at": "2026-07-08T12:00:00Z",
"last_outbound_at": "2026-07-08T12:05:00Z",
"summary_generated_at": "2026-07-08T12:10:00Z",
"messages_count": 12
}
]
}
],
"links": {
"first": "<string>",
"last": "<string>",
"prev": "<string>",
"next": "<string>"
},
"meta": {
"path": "https://api.setteo.io/v1/leads",
"per_page": 25,
"next_cursor": "<string>",
"prev_cursor": "<string>"
}
}{
"message": "Unauthenticated."
}{
"message": "Unauthenticated."
}{
"message": "Unauthenticated."
}{
"message": "The given data was invalid.",
"errors": {
"phone": [
"The phone has already been taken."
]
}
}{
"message": "Unauthenticated."
}{
"message": "Unauthenticated."
}Authorizations
Token API généré depuis votre espace de travail Setteo.
Query Parameters
Recherche partielle, insensible à la casse, dans le nom complet.
255Recherche partielle, insensible à la casse, dans l’adresse e-mail.
255Recherche partielle, insensible à la casse, dans le numéro de téléphone.
255Recherche partielle, insensible à la casse, dans le nom d’utilisateur.
255Filtre les prospects associés à au moins un des tags indiqués. Répétez le paramètre avec la syntaxe tag_ids[]=1&tag_ids[]=2. Chaque identifiant doit être unique et appartenir au tenant.
Exclut les prospects associés à au moins un des tags indiqués. Chaque identifiant doit être unique et appartenir au tenant.
Inclut les prospects dont le dernier message entrant est postérieur ou égal à cette date.
Inclut les prospects dont le dernier message entrant est antérieur ou égal à cette date.
Inclut les prospects dont le dernier message sortant est postérieur ou égal à cette date.
Inclut les prospects dont le dernier message sortant est antérieur ou égal à cette date.
Filtre par source exacte.
webhook, instagram, whatsapp, import, api, iclosed, calendly Filtre par niveau d’intérêt exact.
cold, warm, hot Filtre par étape exacte du pipeline.
new, contacted, engaged, qualified, call_booked, won, lost Filtre par statut de désinscription : 1 pour les prospects désinscrits, 0 pour les prospects inscrits.
0, 1 Filtre par situation professionnelle exacte.
employee, self_employed, business_owner, student, retired, unemployed, other Filtre par niveau de maturité exact.
beginner, intermediate, advanced Filtre par niveau d’engagement exact.
low, medium, high Filtre par statut de perte : 1 pour les prospects perdus, 0 pour les autres.
0, 1 Filtre par motif de perte exact.
not_interested, no_financing, price_objection, wrong_timing, unresponsive, already_handled, invalid_lead, other Inclut les prospects dont l’âge est supérieur ou égal à cette valeur, borne comprise. Les prospects sans âge renseigné sont exclus.
x >= 0Inclut les prospects dont l’âge est inférieur ou égal à cette valeur, borne comprise. Cette valeur doit être supérieure ou égale à age_min.
x >= 0Inclut les prospects dont le profil a été analysé à cette date ou après. Les prospects jamais analysés sont exclus.
Inclut les prospects dont le profil a été analysé à cette date ou avant. Les prospects jamais analysés sont exclus.
Inclut les prospects créés à partir de cette date (YYYY-MM-DD), borne comprise.
Inclut les prospects créés jusqu’à cette date (YYYY-MM-DD), borne comprise. Cette date doit être postérieure ou égale à created_from.
Valeur de meta.next_cursor ou meta.prev_cursor reçue dans la réponse précédente. Renvoyez-la sans la modifier pour charger les résultats suivants ou précédents.
Nombre de résultats retournés.
10 <= x <= 100