openapi: 3.2.0
info:
title: Autoleadstar Shoppers API
version: 1.0.0
contact:
name: API Support
email: support@fullpath.com
termsOfService: https://www.fullpath.com/legal-and-trust/
description: 'Operations tagged shoppers across 2 of this provider''s published API definitions: autoleadstar-fullpath-api-openapi.yml, autoleadstar-mcp-tools-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://fullpath.com/api/v2/external/consent-management
description: Production (fullpath.com)
- url: https://api.fullpath.com/v1
description: Production (api.fullpath.com)
- url: https://staging-api.fullpath.com/v1
description: Staging (api.fullpath.com)
tags:
- name: shoppers
description: Operations related to shoppers
paths:
/dealerships/{dealershipId}/shoppers:
servers:
- url: https://fullpath.com/api/v2/external/consent-management
description: Production (fullpath.com)
- url: https://api.fullpath.com/v1
description: Production (api.fullpath.com)
- url: https://staging-api.fullpath.com/v1
description: Staging (api.fullpath.com)
get:
security:
- Bearer: []
tags:
- shoppers
summary: List shoppers
description: 'Returns a paginated list of shoppers. Supports exact matching via the `q` query parameter for email or phone.
Additional fields can be included in the response using the `embed` parameter. Available embed options:
- `primary_contact` - Primary contact information (first_name, last_name, email, phone numbers, address)
- `latest_lead_date` - Date of the latest lead (YYYY-MM-DD)
- `latest_sale_date` - Date of the latest sale (YYYY-MM-DD)
- `latest_sale` - Latest sale information
- `latest_lead` - Latest lead information including vehicle details
- `adf_leads` - Array of ADF leads
- `latest_marketing_touchpoint_date` - Date of the latest marketing touchpoint (YYYY-MM-DD)
- `marketing_engagement_score` - Marketing engagement score
- `loyalty_score` - Loyalty score
Multiple embed options can be specified as a comma-separated list, e.g., `embed=primary_contact,latest_lead_date,latest_lead`.
'
operationId: listShoppers
parameters:
- $ref: '#/components/parameters/DealershipId'
- in: query
name: q
description: Exact match query for email address or phone number (E.164 format)
schema:
type: string
required: false
- in: query
name: embed
description: 'Comma-separated list of fields to embed in the response. Available options:
primary_contact, latest_lead_date, latest_sale_date, latest_sale, latest_lead, adf_leads, latest_marketing_touchpoint_date, marketing_engagement_score, loyalty_score
'
schema:
type: string
required: false
example: primary_contact,latest_lead_date
- in: query
name: page
description: Page number (1-based)
schema:
type: integer
minimum: 1
default: 1
required: false
- in: query
name: per_page
description: Number of items per page
schema:
type: integer
minimum: 1
maximum: 100
default: 10
required: false
- in: query
name: sort
description: Sort order (comma-separated field names with optional - prefix for descending, e.g., `-created_at`)
schema:
type: string
required: false
responses:
'200':
description: A paginated list of shoppers
content:
application/json:
schema:
$ref: '#/components/schemas/ShoppersResponse'
'204':
description: No shoppers found
'400':
description: Invalid query parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/dealerships/{dealershipId}/shoppers/{id}:
servers:
- url: https://fullpath.com/api/v2/external/consent-management
description: Production (fullpath.com)
- url: https://api.fullpath.com/v1
description: Production (api.fullpath.com)
- url: https://staging-api.fullpath.com/v1
description: Staging (api.fullpath.com)
get:
security:
- Bearer: []
tags:
- shoppers
summary: Get a single shopper
description: 'Retrieves a shopper by `id`.
Additional fields can be included in the response using the `embed` parameter. This endpoint supports all embed options available for the list endpoint, plus additional options only available for single shopper requests.
**Embed options available for both list and single shopper:**
- `primary_contact` - Primary contact information (extended version with more fields in single shopper response)
- `latest_lead_date` - Date of the latest lead (YYYY-MM-DD)
- `latest_sale_date` - Date of the latest sale (YYYY-MM-DD)
- `latest_sale` - Latest sale information
- `latest_lead` - Latest lead information including vehicle details
- `adf_leads` - Array of ADF leads
- `latest_marketing_touchpoint_date` - Date of the latest marketing touchpoint (YYYY-MM-DD)
- `marketing_engagement_score` - Marketing engagement score
- `loyalty_score` - Loyalty score
**Additional embed options available only for single shopper:**
- `contacts` - Array of all contacts associated with the shopper
- `location` - Location information (city, state, zipcode, etc.)
- `score` - Shopper score
- `public_link` - Public link for the shopper
- `customer_lifetime_value` - Customer lifetime value information (sales, services, total)
- `latest_sale_estimated_equity` - Estimated equity from latest sale
- `household_flag` - Whether this is a household shopper
- `customer_tags` - Array of customer tags
- `is_enriched` - Whether the shopper data has been enriched
- `salesperson` - Assigned salesperson
- `group_shopper_id` - Group shopper identifier
- `financial_durability_index` - Financial durability index
- `aim_propensity_score` - AIM propensity score
Multiple embed options can be specified as a comma-separated list, e.g., `embed=primary_contact,contacts,location,customer_lifetime_value`.
'
operationId: getShopperById
parameters:
- $ref: '#/components/parameters/DealershipId'
- in: path
name: id
required: true
description: Shopper identifier (integer)
schema:
type: integer
- in: query
name: embed
description: 'Comma-separated list of fields to embed in the response.
Available for both list and single: primary_contact, latest_lead_date, latest_sale_date, latest_sale, latest_lead, adf_leads, latest_marketing_touchpoint_date, marketing_engagement_score, loyalty_score
Available only for single shopper: contacts, location, score, public_link, customer_lifetime_value, latest_sale_estimated_equity, household_flag, customer_tags, is_enriched, salesperson, group_shopper_id, financial_durability_index, aim_propensity_score
'
schema:
type: string
required: false
example: primary_contact,contacts,location,customer_lifetime_value
responses:
'200':
description: Shopper found
content:
application/json:
schema:
$ref: '#/components/schemas/Shopper'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Shopper not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/dealerships/{dealershipId}/shoppers/{id}/audiences:
servers:
- url: https://fullpath.com/api/v2/external/consent-management
description: Production (fullpath.com)
- url: https://api.fullpath.com/v1
description: Production (api.fullpath.com)
- url: https://staging-api.fullpath.com/v1
description: Staging (api.fullpath.com)
get:
security:
- Bearer: []
tags:
- shoppers
summary: List audiences for a shopper
description: Returns a paginated list of audiences associated with the shopper
operationId: listShopperAudiences
parameters:
- $ref: '#/components/parameters/DealershipId'
- in: path
name: id
required: true
description: Shopper identifier (integer)
schema:
type: integer
- in: query
name: page
description: Page number (1-based)
schema:
type: integer
minimum: 1
default: 1
required: false
- in: query
name: per_page
description: Number of items per page
schema:
type: integer
minimum: 1
maximum: 100
default: 10
required: false
- in: query
name: sort
description: Sort order (comma-separated field names with optional - prefix for descending)
schema:
type: string
required: false
responses:
'200':
description: A paginated list of audiences
content:
application/json:
schema:
$ref: '#/components/schemas/AudiencesResponse'
'204':
description: No audiences found
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Shopper not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/dealerships/{dealershipId}/shoppers/{id}/events:
servers:
- url: https://fullpath.com/api/v2/external/consent-management
description: Production (fullpath.com)
- url: https://api.fullpath.com/v1
description: Production (api.fullpath.com)
- url: https://staging-api.fullpath.com/v1
description: Staging (api.fullpath.com)
get:
security:
- Bearer: []
tags:
- shoppers
summary: List events for a shopper
description: 'Returns a paginated list of events associated with the shopper. Events are returned ungrouped in a flat array.
Supported event types:
- `page_view` - Website page view events
- `lead` - Lead events from CRM
- `sale` - Sale events from CRM
- `conversion` - Conversion events (e.g., form submissions)
- `input_tracking` - Input tracking events
- `ad_click` - Ad click events
- `enrichment` - Data enrichment events
- `lead_handling_sms_sent` - Lead handling SMS sent events
- `email_click` - Email click events
- `email_open` - Email open events
- `email_sent` - Email sent events
- `sms_click` - SMS click events
- `sms_replied` - SMS replied events
- `sms_sent` - SMS sent events
- `appointment` - Appointment events
- `service_lead` - Service lead events from CRM
- `service_ro` - Service repair order events from CRM
- `service_appointment` - Service appointment events
'
operationId: listShopperEvents
parameters:
- $ref: '#/components/parameters/DealershipId'
- in: path
name: id
required: true
description: Shopper identifier (integer)
schema:
type: integer
- in: query
name: page
description: Page number (1-based)
schema:
type: integer
minimum: 1
default: 1
required: false
- in: query
name: per_page
description: Number of items per page
schema:
type: integer
minimum: 1
maximum: 100
default: 10
required: false
- in: query
name: sort
description: Sort order (comma-separated field names with optional - prefix for descending)
schema:
type: string
required: false
responses:
'200':
description: A paginated list of events
content:
application/json:
schema:
type: object
required:
- data
- pagination
properties:
data:
type: array
items:
$ref: '#/components/schemas/ShopperEvent'
pagination:
$ref: '#/components/schemas/Pagination'
'204':
description: No events found
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Shopper not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/dealerships/{dealershipId}/shoppers/{id}/emails:
servers:
- url: https://fullpath.com/api/v2/external/consent-management
description: Production (fullpath.com)
- url: https://api.fullpath.com/v1
description: Production (api.fullpath.com)
- url: https://staging-api.fullpath.com/v1
description: Staging (api.fullpath.com)
get:
security:
- Bearer: []
tags:
- shoppers
summary: List emails for a shopper
description: Returns a paginated list of email addresses associated with the shopper
operationId: listShopperEmails
parameters:
- $ref: '#/components/parameters/DealershipId'
- in: path
name: id
required: true
description: Shopper identifier (integer)
schema:
type: integer
- in: query
name: page
description: Page number (1-based)
schema:
type: integer
minimum: 1
default: 1
required: false
- in: query
name: per_page
description: Number of items per page
schema:
type: integer
minimum: 1
maximum: 100
default: 10
required: false
- in: query
name: sort
description: Sort order (comma-separated field names with optional - prefix for descending)
schema:
type: string
required: false
responses:
'200':
description: A paginated list of email addresses
content:
application/json:
schema:
type: object
required:
- data
- pagination
properties:
data:
type: array
items:
$ref: '#/components/schemas/ShopperEmail'
pagination:
$ref: '#/components/schemas/Pagination'
'204':
description: No emails found
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Shopper not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/dealerships/{dealershipId}/shoppers/{id}/phones:
servers:
- url: https://fullpath.com/api/v2/external/consent-management
description: Production (fullpath.com)
- url: https://api.fullpath.com/v1
description: Production (api.fullpath.com)
- url: https://staging-api.fullpath.com/v1
description: Staging (api.fullpath.com)
get:
security:
- Bearer: []
tags:
- shoppers
summary: List phones for a shopper
description: Returns a paginated list of phone numbers associated with the shopper
operationId: listShopperPhones
parameters:
- $ref: '#/components/parameters/DealershipId'
- in: path
name: id
required: true
description: Shopper identifier (integer)
schema:
type: integer
- in: query
name: page
description: Page number (1-based)
schema:
type: integer
minimum: 1
default: 1
required: false
- in: query
name: per_page
description: Number of items per page
schema:
type: integer
minimum: 1
maximum: 100
default: 10
required: false
- in: query
name: sort
description: Sort order (comma-separated field names with optional - prefix for descending)
schema:
type: string
required: false
responses:
'200':
description: A paginated list of phone numbers
content:
application/json:
schema:
type: object
required:
- data
- pagination
properties:
data:
type: array
items:
$ref: '#/components/schemas/ShopperPhone'
pagination:
$ref: '#/components/schemas/Pagination'
'204':
description: No phones found
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Shopper not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/dealerships/{dealershipId}/audiences/{id}/shoppers:
servers:
- url: https://fullpath.com/api/v2/external/consent-management
description: Production (fullpath.com)
- url: https://api.fullpath.com/v1
description: Production (api.fullpath.com)
- url: https://staging-api.fullpath.com/v1
description: Staging (api.fullpath.com)
get:
security:
- Bearer: []
tags:
- shoppers
summary: List shoppers in an audience
description: Returns a paginated list of shoppers belonging to the given audience
operationId: listAudienceShoppers
parameters:
- $ref: '#/components/parameters/DealershipId'
- in: path
name: id
required: true
description: Audience identifier (integer)
schema:
type: integer
- in: query
name: page
description: Page number (1-based)
schema:
type: integer
minimum: 1
default: 1
required: false
- in: query
name: per_page
description: Number of items per page
schema:
type: integer
minimum: 1
maximum: 100
default: 10
required: false
- in: query
name: sort
description: Sort order (comma-separated field names with optional - prefix for descending)
schema:
type: string
required: false
responses:
'200':
description: Paginated shoppers in the audience
content:
application/json:
schema:
$ref: '#/components/schemas/AudienceShoppersResponse'
'204':
description: No shoppers found
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Audience not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
SalesServices:
type: object
properties:
count:
type: integer
description: Number of sales/services
example: 0
total:
type: number
description: Total value
example: 0
gross:
type: number
description: Gross value
example: 0
description: Sales or services summary
LeadHandlingSMSSentEvent:
type: object
required:
- identifier
- type
- timestamp
properties:
identifier:
type: string
format: uuid
description: Unique identifier for the event
example: 123e4567-e89b-12d3-a456-426614174000
type:
type: string
enum:
- lead_handling_sms_sent
example: lead_handling_sms_sent
timestamp:
type: string
format: date-time
description: ISO 8601 timestamp when the event occurred
example: '2024-01-15T10:30:00Z'
product:
type:
- string
- 'null'
description: Product identifier
example: lead_handling
delivery:
type:
- string
- 'null'
description: Delivery identifier
example: fakeDeliveryHash1234567890
crm_customer:
type:
- string
- 'null'
description: CRM customer identifier
example: '12345678'
shopper_id:
type:
- string
- 'null'
description: Shopper identifier
example: '12345678'
recipient_name:
type:
- string
- 'null'
description: Recipient name
example: John Doe
recipient_email:
type:
- string
- 'null'
format: email
description: Recipient email
example: null
recipient_phone_number:
type:
- string
- 'null'
description: Recipient phone number
example: '5551234567'
sms_thread:
type:
- integer
- 'null'
description: SMS thread identifier
example: 1234567
has_equity_content:
type:
- boolean
- 'null'
description: Has equity content
example: null
has_dynamic_payments_content:
type:
- boolean
- 'null'
description: Has dynamic payments content
example: null
incoming_replies_count:
type:
- integer
- 'null'
description: Incoming replies count
example: 0
lead_handling_delivery_category:
type:
- string
- 'null'
description: Lead handling delivery category
example: needs_human
delivery_text:
type:
- string
- 'null'
description: Delivery text
example: null
description: Lead handling SMS sent event
EmailClickEvent:
type: object
required:
- identifier
- type
- timestamp
properties:
identifier:
type: string
format: uuid
description: Unique identifier for the event
example: 123e4567-e89b-12d3-a456-426614174000
type:
type: string
enum:
- email_click
example: email_click
timestamp:
type: string
format: date-time
description: ISO 8601 timestamp when the event occurred
example: '2024-01-15T10:30:00Z'
product:
type:
- string
- 'null'
description: Product identifier
example: nurture
delivery:
type:
- string
- 'null'
description: Delivery identifier
example: fakeDeliveryHash1234567890
crm_customer:
type:
- string
- 'null'
description: CRM customer identifier
example: '12345678'
shopper_id:
type:
- string
- 'null'
description: Shopper identifier
example: '12345678'
recipient_name:
type:
- string
- 'null'
description: Recipient name
example: John Doe
recipient_email:
type:
- string
- 'null'
format: email
description: Recipient email
example: john.doe@example.com
recipient_phone_number:
type:
- string
- 'null'
description: Recipient phone number
example: null
sms_thread:
type:
- integer
- 'null'
description: SMS thread identifier
example: null
has_equity_content:
type:
- boolean
- 'null'
description: Has equity content
example: null
has_dynamic_payments_content:
type:
- boolean
- 'null'
description: Has dynamic payments content
example: false
incoming_replies_count:
type:
- integer
- 'null'
description: Incoming replies count
example: null
lead_handling_delivery_category:
type:
- string
- 'null'
description: Lead handling delivery category
example: null
delivery_text:
type:
- string
- 'null'
description: Delivery text
example: null
description: Email click event
EmailOpenEvent:
type: object
required:
- identifier
- type
- timestamp
properties:
identifier:
type: string
format: uuid
description: Unique identifier for the event
example: 123e4567-e89b-12d3-a456-426614174000
type:
type: string
enum:
- email_open
example: email_open
timestamp:
type: string
format: date-time
description: ISO 8601 timestamp when the event occurred
example: '2024-01-15T10:30:00Z'
product:
type:
- string
- 'null'
description: Product identifier
example: nurture
delivery:
type:
- string
- 'null'
description: Delivery identifier
example: fakeDeliveryHash1234567890
crm_customer:
type:
- string
- 'null'
description: CRM customer identifier
example: '12345678'
shopper_id:
type:
- string
- 'null'
description: Shopper identifier
example: '12345678'
recipient_name:
type:
- string
- 'null'
description: Recipient name
example: John Doe
recipient_email:
type:
- string
- 'null'
format: email
description: Recipient email
example: john.doe@example.com
recipient_phone_number:
type:
- string
- 'null'
description: Recipient phone number
example: null
sms_thread:
type:
- integer
- 'null'
description: SMS thread identifier
example: null
has_equity_content:
type:
- boolean
- 'null'
description: Has equity content
example: null
has_dynamic_payments_content:
type:
- boolean
- 'null'
description: Has dynamic payments content
example: false
incoming_replies_count:
type:
- integer
- 'null'
description: Incoming replies count
example: null
lead_handling_delivery_category:
type:
- string
- 'null'
description: Lead handling delivery category
example: null
delivery_text:
type:
- string
- 'null'
description: Delivery text
example: null
description: Email open event
Vehicle:
type:
- object
- 'null'
properties:
vin:
type:
- string
- 'null'
description: Vehicle Identification Number
example: 1HGBH41JXMN109186
condition:
type:
- string
- 'null'
description: Vehicle condition (e.g., new, used)
example: new
year:
type:
- string
- 'null'
description: Vehicle year
example: '2024'
make:
type:
- string
- 'null'
description: Vehicle make
example: Toyota
model:
type:
- string
- 'null'
description: Vehicle model
example: Camry
trim:
type:
- string
- 'null'
description: Vehicle trim
example: LE
description: Vehicle information
PageViewEvent:
type: object
required:
- identifier
- type
- timestamp
properties:
identifier:
type: string
description: Unique identifier for the event
example: '21289228'
type:
type: string
enum:
- page_view
example: page_view
timestamp:
type: string
format: date-time
description: ISO 8601 timestamp when the event occurred
example: '2024-01-15T10:30:00Z'
product:
type:
- string
- 'null'
description: Product identifier
example: ''
website_user_id:
type:
- string
- 'null'
description: Website user identifier
example: '1234567890'
website_page_id:
type:
- integer
- 'null'
description: Website page identifier
example: 16346
time_on_page:
type:
- integer
- 'null'
description: Time spent on page in seconds
example: null
url:
type:
- string
- 'null'
format: uri
description: URL of the page viewed
example: https://example-dealership.com/new-vehicles/?_dFR%5Bbody%5D%5B0%5D=Trucks
clickable_url:
type:
- string
- 'null'
format: uri
description: Clickable URL
example: https://example-dealership.com/new-vehicles/?_dFR%5Bbody%5D%5B0
# --- truncated at 32 KB (108 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/autoleadstar/refs/heads/main/openapi/autoleadstar-shoppers-api-openapi.yml