curl --request GET \
--url https://api.aura-app.ai/v1/leadsimport requests
url = "https://api.aura-app.ai/v1/leads"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.aura-app.ai/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.aura-app.ai/v1/leads",
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.aura-app.ai/v1/leads"
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.aura-app.ai/v1/leads")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aura-app.ai/v1/leads")
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": [
{
"attribution": {
"am_wuid": "wuid_4o251b0b130v3z6d5q0n",
"fbclid": "IwAR_sample_fbclid",
"utm_source": "facebook"
},
"company": "Acme Corp",
"consent": [
{
"agreed": true,
"at": "2026-10-08T10:00:00.000Z",
"disclosure": null,
"granted_at": null,
"id": "6f1b2c3d-0000-4000-8000-000000000001",
"kind": "custom",
"label": "I agree to receive appointment reminder texts from Acme Inc. Msg & data rates may apply. Reply STOP to opt out.",
"links": [
{
"text": "SMS Terms",
"url": "https://example.com/sms-terms"
},
{
"text": "Privacy Policy",
"url": "https://example.com/privacy"
}
],
"phone": "+15551234567",
"source": "booking_form",
"state": "granted"
},
{
"agreed": false,
"at": "2026-10-08T10:00:00.000Z",
"disclosure": null,
"granted_at": null,
"id": "6f1b2c3d-0000-4000-8000-000000000002",
"kind": "custom",
"label": "I agree to receive promotional texts from Acme Inc.",
"links": [],
"phone": "+15551234567",
"source": "booking_form",
"state": "declined"
}
],
"consent_by_type": {
"data_processing": {
"at": null,
"id": null,
"source": null,
"state": "not_asked"
},
"email_marketing": {
"at": null,
"id": null,
"source": null,
"state": "not_asked"
},
"sms_booking": {
"at": "2026-10-08T10:00:00.000Z",
"id": "6f1b2c3d-0000-4000-8000-000000000001",
"source": "box",
"state": "yes"
},
"sms_marketing": {
"at": "2026-10-08T10:00:00.000Z",
"id": "6f1b2c3d-0000-4000-8000-000000000002",
"source": "box",
"state": "no"
}
},
"created_at": "2026-01-17T08:00:00Z",
"disqualification_data": {
"archived_at": "<string>",
"booking_link_id": "<string>",
"field_key": "<string>",
"field_label": "<string>",
"reason": "<string>",
"timestamp": "2026-05-08T14:23:11.000Z",
"value": "<unknown>"
},
"email": "john@example.com",
"full_name": "John Doe",
"id": "550e8400-e29b-41d4-a716-446655440000",
"last_payment_at": "<string>",
"metadata": {
"city": "<string>",
"country": "<string>",
"countryCode": "US",
"dataConsentAcceptedAt": "2026-05-08T14:23:11.000Z",
"dclid": "<string>",
"epik": "<string>",
"fbclid": "<string>",
"gadSource": "<string>",
"gbraid": "<string>",
"gclid": "<string>",
"gclsrc": "<string>",
"hyclid": "<string>",
"ipAddress": "<string>",
"landingPage": "acme.com/sales-manager",
"landingUrl": "https://acme.com/sales-manager?utm_source=google&variant=b",
"language": "en-US",
"latitude": 123,
"liFatId": "<string>",
"longitude": 123,
"msclkid": "<string>",
"partner": "<string>",
"rdtCid": "<string>",
"ref": "<string>",
"referrer": "https://acme.com/book-a-call",
"region": "<string>",
"scCid": "<string>",
"screenHeight": 123,
"screenWidth": 123,
"setterCode": "<string>",
"ttclid": "<string>",
"twclid": "<string>",
"userAgent": "<string>",
"utmCampaign": "spring-2026",
"utmContent": "<string>",
"utmId": "<string>",
"utmMedium": "cpc",
"utmSource": "google",
"utmTerm": "<string>",
"wbraid": "<string>",
"yclid": "<string>"
},
"notes": [
{
"content": "<string>",
"created_at": "2026-05-08T14:23:11.000Z",
"user_id": "<string>"
}
],
"payment_count": 123,
"payment_status": "<string>",
"phone": "+14155552671",
"pipeline_stage": "confirmed",
"source": {
"attribution_platform": "google",
"city": "San Francisco",
"country": "US",
"country_code": "US",
"epik": "<string>",
"fbc": "<string>",
"fbclid": "<string>",
"fbp": "<string>",
"gbraid": "<string>",
"gclid": "<string>",
"hyclid": "<string>",
"landing_page": "acme.com/sales-manager",
"li_fat_id": "<string>",
"msclkid": "<string>",
"rdt_cid": "<string>",
"referrer": "https://acme.com/book-a-call",
"region": "CA",
"sc_cid": "<string>",
"ttclid": "<string>",
"twclid": "<string>",
"utm_campaign": "summer_promo",
"utm_content": "<string>",
"utm_id": "1234567890",
"utm_medium": "cpc",
"utm_source": "google",
"utm_term": "<string>",
"wbraid": "<string>",
"landing_url": "https://acme.com/sales-manager?utm_source=google&variant=b"
},
"status": "new",
"timezone": "America/New_York",
"total_paid_cents": 123,
"updated_at": "2026-01-17T09:30:00Z"
}
],
"pagination": {
"has_more": true,
"next_cursor": "eyJpZCI6IjQ1NiJ9",
"scan_limited": true
},
"filters": {
"active_from": "<string>",
"active_to": "<string>",
"created_from": "2026-09-21T00:00:00.000Z",
"created_to": "2026-10-21T23:59:59.999Z",
"excluded_statuses": [
"unqualified"
],
"excludes_queued_for_removal": true,
"stage": "<string>",
"status": "<string>"
}
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"success": false,
"requestId": "req_abc123"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"success": false,
"requestId": "req_abc123"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}List leads
Retrieve a paginated list of leads for your organization.
Use Cases:
- Display leads in external CRM dashboards
- Track lead attribution for commission platforms
- Export lead data for analytics
Filtering:
- Filter by status, created date, recent activity (
active_from, the board’s date filter), or pipelinestage - Use
stagefor leads who have not booked yet (interested, qualified, disqualified)./v1/opportunitieslists booking calls, so it cannot show them. - Results are automatically scoped to your organization
Pagination:
- Cursor-based pagination (use
cursorfrom previous response) - Default limit: 50, max: 100
curl --request GET \
--url https://api.aura-app.ai/v1/leadsimport requests
url = "https://api.aura-app.ai/v1/leads"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.aura-app.ai/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.aura-app.ai/v1/leads",
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.aura-app.ai/v1/leads"
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.aura-app.ai/v1/leads")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aura-app.ai/v1/leads")
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": [
{
"attribution": {
"am_wuid": "wuid_4o251b0b130v3z6d5q0n",
"fbclid": "IwAR_sample_fbclid",
"utm_source": "facebook"
},
"company": "Acme Corp",
"consent": [
{
"agreed": true,
"at": "2026-10-08T10:00:00.000Z",
"disclosure": null,
"granted_at": null,
"id": "6f1b2c3d-0000-4000-8000-000000000001",
"kind": "custom",
"label": "I agree to receive appointment reminder texts from Acme Inc. Msg & data rates may apply. Reply STOP to opt out.",
"links": [
{
"text": "SMS Terms",
"url": "https://example.com/sms-terms"
},
{
"text": "Privacy Policy",
"url": "https://example.com/privacy"
}
],
"phone": "+15551234567",
"source": "booking_form",
"state": "granted"
},
{
"agreed": false,
"at": "2026-10-08T10:00:00.000Z",
"disclosure": null,
"granted_at": null,
"id": "6f1b2c3d-0000-4000-8000-000000000002",
"kind": "custom",
"label": "I agree to receive promotional texts from Acme Inc.",
"links": [],
"phone": "+15551234567",
"source": "booking_form",
"state": "declined"
}
],
"consent_by_type": {
"data_processing": {
"at": null,
"id": null,
"source": null,
"state": "not_asked"
},
"email_marketing": {
"at": null,
"id": null,
"source": null,
"state": "not_asked"
},
"sms_booking": {
"at": "2026-10-08T10:00:00.000Z",
"id": "6f1b2c3d-0000-4000-8000-000000000001",
"source": "box",
"state": "yes"
},
"sms_marketing": {
"at": "2026-10-08T10:00:00.000Z",
"id": "6f1b2c3d-0000-4000-8000-000000000002",
"source": "box",
"state": "no"
}
},
"created_at": "2026-01-17T08:00:00Z",
"disqualification_data": {
"archived_at": "<string>",
"booking_link_id": "<string>",
"field_key": "<string>",
"field_label": "<string>",
"reason": "<string>",
"timestamp": "2026-05-08T14:23:11.000Z",
"value": "<unknown>"
},
"email": "john@example.com",
"full_name": "John Doe",
"id": "550e8400-e29b-41d4-a716-446655440000",
"last_payment_at": "<string>",
"metadata": {
"city": "<string>",
"country": "<string>",
"countryCode": "US",
"dataConsentAcceptedAt": "2026-05-08T14:23:11.000Z",
"dclid": "<string>",
"epik": "<string>",
"fbclid": "<string>",
"gadSource": "<string>",
"gbraid": "<string>",
"gclid": "<string>",
"gclsrc": "<string>",
"hyclid": "<string>",
"ipAddress": "<string>",
"landingPage": "acme.com/sales-manager",
"landingUrl": "https://acme.com/sales-manager?utm_source=google&variant=b",
"language": "en-US",
"latitude": 123,
"liFatId": "<string>",
"longitude": 123,
"msclkid": "<string>",
"partner": "<string>",
"rdtCid": "<string>",
"ref": "<string>",
"referrer": "https://acme.com/book-a-call",
"region": "<string>",
"scCid": "<string>",
"screenHeight": 123,
"screenWidth": 123,
"setterCode": "<string>",
"ttclid": "<string>",
"twclid": "<string>",
"userAgent": "<string>",
"utmCampaign": "spring-2026",
"utmContent": "<string>",
"utmId": "<string>",
"utmMedium": "cpc",
"utmSource": "google",
"utmTerm": "<string>",
"wbraid": "<string>",
"yclid": "<string>"
},
"notes": [
{
"content": "<string>",
"created_at": "2026-05-08T14:23:11.000Z",
"user_id": "<string>"
}
],
"payment_count": 123,
"payment_status": "<string>",
"phone": "+14155552671",
"pipeline_stage": "confirmed",
"source": {
"attribution_platform": "google",
"city": "San Francisco",
"country": "US",
"country_code": "US",
"epik": "<string>",
"fbc": "<string>",
"fbclid": "<string>",
"fbp": "<string>",
"gbraid": "<string>",
"gclid": "<string>",
"hyclid": "<string>",
"landing_page": "acme.com/sales-manager",
"li_fat_id": "<string>",
"msclkid": "<string>",
"rdt_cid": "<string>",
"referrer": "https://acme.com/book-a-call",
"region": "CA",
"sc_cid": "<string>",
"ttclid": "<string>",
"twclid": "<string>",
"utm_campaign": "summer_promo",
"utm_content": "<string>",
"utm_id": "1234567890",
"utm_medium": "cpc",
"utm_source": "google",
"utm_term": "<string>",
"wbraid": "<string>",
"landing_url": "https://acme.com/sales-manager?utm_source=google&variant=b"
},
"status": "new",
"timezone": "America/New_York",
"total_paid_cents": 123,
"updated_at": "2026-01-17T09:30:00Z"
}
],
"pagination": {
"has_more": true,
"next_cursor": "eyJpZCI6IjQ1NiJ9",
"scan_limited": true
},
"filters": {
"active_from": "<string>",
"active_to": "<string>",
"created_from": "2026-09-21T00:00:00.000Z",
"created_to": "2026-10-21T23:59:59.999Z",
"excluded_statuses": [
"unqualified"
],
"excludes_queued_for_removal": true,
"stage": "<string>",
"status": "<string>"
}
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"success": false,
"requestId": "req_abc123"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"success": false,
"requestId": "req_abc123"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}- Display leads in external CRM dashboards
- Track lead attribution for commission platforms
- Export lead data for analytics
- Filter by status, created date, recent activity (
active_from, the board’s date filter), or pipelinestage - Use
stagefor leads who have not booked yet (interested, qualified, disqualified)./v1/opportunitieslists booking calls, so it cannot show them. - Results are automatically scoped to your organization
- Cursor-based pagination (use
cursorfrom previous response) - Default limit: 50, max: 100
Query Parameters
Number of results per page (1-100, values outside clamp)
50
Cursor for pagination (opaque string)
"eyJpZCI6IjEyMyJ9"
Filter by lead status
"new"
Keep leads in one derived pipeline stage, the column the lead sits in on the Aura pipeline board. Use this for interested, qualified and disqualified: those leads usually have not booked a call, so /v1/opportunities, which lists booking calls, has almost none of them. Leads an admin deleted are left out, as on the board, and so are leads archived through this API, which the board still shows. The stage is not stored, so the server searches up to 1,000 leads newest first to fill the page. A page can be short or empty while has_more is true; keep paging with next_cursor.
interested, disqualified, qualified, booked, confirmed, declined, cancelled, attended, unfit, no_show, follow_up, lost, won "qualified"
Keep leads created on or after this date: an ISO 8601 date (read as UTC) or a timestamp with a zone.
"2026-01-01"
Keep leads created on or before this date. A date with no time includes that whole day.
"2026-01-31"
Keep leads created, or with any form fill or call, on or after this date. The pipeline board's date filter: a returning lead who filled a form this week is included though it was created earlier.
"2026-01-01"
Keep leads created, or with any form fill or call, on or before this date. A date with no time includes that whole day.
"2026-01-31"
Response
Successfully retrieved leads