curl --request GET \
--url https://app.leadconduit.com/firehose \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://app.leadconduit.com/firehose"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://app.leadconduit.com/firehose', 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/firehose",
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: Basic <encoded-value>"
],
]);
$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/firehose"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
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/firehose")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.leadconduit.com/firehose")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"validated": true,
"verification_file": true
}Test firehose's ability to write to AWS S3 or Azure Blob Storage
The /firehose resource is used to validate cloud storage credentials and test
write access to a specified bucket/container.
AWS S3 Validation:
- When
verification_file=true(default), creates a test file with unique nameleadconduit_verification_[flow_id_]YYYYMMDDHHMMSSMS.txtand uploads it to the bucket (with optional prefix). Requiress3:PutObjecton the bucket/prefix. - When
verification_file=false, validates bucket access without creating a file by callingHeadBucket. Requiress3:ListBucketon the bucket. - IAM contract: the default flow does not require
s3:ListBucket.
Azure Blob Storage Validation:
- Validates credentials by checking container existence and access permissions
- Optionally creates verification file based on
verification_fileparameter - Returns container validation information on success
Required Parameters:
- For AWS:
access_key_id,secret_access_key,bucket - For Azure:
connection_string,bucket(container name) - The
serviceparameter determines which validation method is used
Optional Parameters:
flow_id: Include flow ID in verification filename for better trackingverification_file: Control whether verification file is created (default: true)
Error responses follow the structured LCError schema and map upstream errors
onto specific HTTP statuses (404 missing bucket, 403 IAM, 401 bad signature, 400
wrong region, 502 upstream/network) rather than a generic 500.
curl --request GET \
--url https://app.leadconduit.com/firehose \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://app.leadconduit.com/firehose"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://app.leadconduit.com/firehose', 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/firehose",
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: Basic <encoded-value>"
],
]);
$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/firehose"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
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/firehose")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.leadconduit.com/firehose")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"validated": true,
"verification_file": true
}Authorizations
LeadConduit uses HTTP Basic Authentication
with the username API and your API key as the password.
For example: API:1f1b96c9150d8050e858c043d543bb4eadae0e6f'
Query Parameters
Cloud service provider. Defaults to 'aws' if not specified.
aws, azure AWS Access Key ID for S3 authentication. Required when service is 'aws' or not specified.
AWS Secret Access Key for S3 authentication. Required when service is 'aws' or not specified.
Azure Storage account connection string for Blob Storage authentication. Required when service is 'azure'.
Storage container name. For AWS: S3 bucket name. For Azure: Blob Storage container name.
3 - 63^[a-z0-9]([a-z0-9\-]*[a-z0-9])?$Optional path prefix for stored files.
- For AWS: Files will be stored as
<prefix>/leadconduit_verification_[flow_id_]YYYYMMDDHHMMSSMS.txt - For Azure: Currently not used in validation but stored for future use
Optional flow identifier to include in verification filename.
When provided, filename becomes: leadconduit_verification_{flow_id}_{timestamp}.txt
When omitted, filename becomes: leadconduit_verification_{timestamp}.txt
Whether to create the verification file during validation.
true(default): Creates verification file and validates credentialsfalse: Only validates credentials/permissions without creating file For AWS: uses headBucket operation instead of putObject when false For Azure: skips file upload step when false
true, false