curl --request GET \
--url https://app.leadconduit.com/feedbackimport requests
url = "https://app.leadconduit.com/feedback"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://app.leadconduit.com/feedback', 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://app.leadconduit.com/feedback",
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://app.leadconduit.com/feedback"
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://app.leadconduit.com/feedback")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.leadconduit.com/feedback")
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{
"outcome": "success",
"reason": "<string>",
"price": 123,
"lead": {
"id": "5fd4371e940df5a34a3888b2",
"first_name": "Joe",
"last_name": "Blow",
"email": "joeblow@gmail.com",
"phone_1": "5125551212"
}
}{
"outcome": "success",
"reason": "<string>",
"price": 123,
"lead": {
"id": "5fd4371e940df5a34a3888b2",
"first_name": "Joe",
"last_name": "Blow",
"email": "joeblow@gmail.com",
"phone_1": "5125551212"
}
}{
"message": "Feedback not available in this flow"
}{
"message": "Event not found"
}"Not capable of generating content according to the Accept header"{
"outcome": "success",
"reason": "<string>",
"price": 123,
"lead": {
"id": "5fd4371e940df5a34a3888b2",
"first_name": "Joe",
"last_name": "Blow",
"email": "joeblow@gmail.com",
"phone_1": "5125551212"
}
}{
"error": "A Lead was ID provided, but feedback requires an event ID"
}Submit feedback for a lead using query parameters
An alternative to POST /feedback for senders that cannot issue a request body. The
feedback fields are read from the query string alongside event_id. Behavior is
otherwise identical to the POST form, including the caveat that a 201 reports the
submission was processed, not that it was accepted.
curl --request GET \
--url https://app.leadconduit.com/feedbackimport requests
url = "https://app.leadconduit.com/feedback"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://app.leadconduit.com/feedback', 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://app.leadconduit.com/feedback",
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://app.leadconduit.com/feedback"
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://app.leadconduit.com/feedback")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.leadconduit.com/feedback")
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{
"outcome": "success",
"reason": "<string>",
"price": 123,
"lead": {
"id": "5fd4371e940df5a34a3888b2",
"first_name": "Joe",
"last_name": "Blow",
"email": "joeblow@gmail.com",
"phone_1": "5125551212"
}
}{
"outcome": "success",
"reason": "<string>",
"price": 123,
"lead": {
"id": "5fd4371e940df5a34a3888b2",
"first_name": "Joe",
"last_name": "Blow",
"email": "joeblow@gmail.com",
"phone_1": "5125551212"
}
}{
"message": "Feedback not available in this flow"
}{
"message": "Event not found"
}"Not capable of generating content according to the Accept header"{
"outcome": "success",
"reason": "<string>",
"price": 123,
"lead": {
"id": "5fd4371e940df5a34a3888b2",
"first_name": "Joe",
"last_name": "Blow",
"email": "joeblow@gmail.com",
"phone_1": "5125551212"
}
}{
"error": "A Lead was ID provided, but feedback requires an event ID"
}Query Parameters
The ID of the delivery event the feedback refers to, shared with the recipient when the lead was delivered. 24 character alpha-numeric BSON identifier
^[0-9a-fA-F]{24}$"5fd4371e940df5a34a3888b2"
The kind of feedback being given.
conversion, return The lifecycle stage the lead reached, or the reason it is being returned. Optional, but usually what the step's acceptance criteria are written against.
"Sale Closed"
When the status changed in your system, as an ISO 8601 timestamp. Defaults to the time LeadConduit received the feedback.
"2026-05-30T08:00:00Z"
Response
The feedback submission was processed. Check the outcome field to see whether it
was accepted.
The result of a feedback submission. Returned as JSON by default, or as XML
(wrapped in a <result> root element) when requested via the Accept header.
Whether the feedback was accepted. Check this field rather than the status
code — a rejected submission is still reported with 201.
success, failure, error "success"
The reason the feedback was not recorded, when the outcome is not success.
The price paid to the recipient for the lead. Present only when the delivery step priced the lead.
Identifying details of the lead the feedback applies to.
Show child attributes
Show child attributes