GET /api/v1/leads
List your leads.

Supported Formats

json

Params

Param name
Description
serializer
Optional Blank Value Allowed

This endpoint supports multiple response formats. Pass serializer=name to retrieve data in an alternate format.

  • Must be a value contained in the pick list:
    Acceptable ValueDescription
    leadLead
    lead_gridLead Grid
    lead_externalLead External
page
Optional

Return the next page of results.

  • Must be a number.

per_page
Optional

How many results to return per page. The default is 25.

  • Must be a number.

created_at_to
Optional

Date formatted like 2016-01-01 12:25:15 -0500

  • Must be String

created_at_from
Optional

Date formatted like 2016-01-01 12:25:15 -0500

  • Must be String

fulltext
Optional

Search for any record that matches this text

  • Must be String

time_zone
Optional

Date ranges will be parsed using this time zone.

columns
Optional
Specify the columns you would like returned by the API for a given resource. Limiting the columns can significantly increase API response time since only the requested data will be processed. columns=uuid,number,created_at

Must be any combination of:

  • id
  • legacy_id
  • type
  • uuid
  • created_at
  • updated_at
  • deleted_at
  • user_updated_at
  • routes_show_path
  • routes_edit_path
  • external_record_id
  • context_menu_name
  • name
  • caller_id
  • email
  • full_name
  • contact_field_type
  • expires_in
  • country
  • state_province
  • zip_postal_code
  • time_zone
  • sub_id
  • offer_id
  • schedule_id
  • status
  • human_status
  • css_status
  • has_next_action
  • opt_out
  • revenue
  • payout
  • offer_converted
  • buyer_converted
  • traffic_source_id
  • buyer_id
  • lead_import_id
  • remote_ip
  • attempted_call_id
  • connected_call_id
  • scheduled_callback_id
  • call_buyer_conversion_id
  • call_offer_conversion_id
  • sms_number_id
  • dial_number_id
  • dial_tier
  • last_action_at
  • first_action_at
  • first_queued_at
  • schedule_ended_at
  • next_action_at
  • last_call_at
  • is_live
  • schedule_trigger_type
  • blocked
  • data
  • Must be String

root
Optional

Pass root=false to return results without a root node and metadata.
For example:
GET /api/v1/calls?root=false will return [call1, call2, call3]
While:
GET /api/v1/calls will return {calls: [call1, call2, call3], metadata: {}}

  • Must be a boolean value: 1, true, yes, on, 0, false, no, off

created_at_label
Optional Blank Value Allowed

Dynamic Date String such as “Today” or “This Year”

  • Must be one of: Last 5 Min, Last 15 Min, Last 30 Min, Last Hour, Last 4 Hours, Last 6 Hours, Last 12 Hours, Last Day, Last 2 Days, Today, Yesterday, This Week, Last Week, This Month, Last Month, This Quarter, Last Quarter, Last 6 Months, This Year, Last Year, Lifetime, Custom Range.

next_action_at_to
Optional

Date formatted like 2016-01-01 12:25:15 -0500

  • Must be String

next_action_at_from
Optional

Date formatted like 2016-01-01 12:25:15 -0500

  • Must be String

offer_id
Optional

Refer to the offer api for details

schedule_id
Optional

Schedule internal id.

contact_id
Optional

Match calls that were placed by this caller.

traffic_source_id
Optional

Refer to the traffic source api for details

buyer_id
Optional

Refer to the buyer api for details

status
Optional

Match results that have this status.

  • Must be String

status_wait
Optional

Filter for leads that are waiting before performing an action.

  • Must be String

number
Optional

Filter for leads matching this callerid.

  • Must be String

email
Optional

The email address for the lead. The lead's email is required for sending emails from schedules to leads.

  • Must be String

has_next_action
Optional

Filter for leads that have more actions to perform.

  • Must be a boolean value: 1, true, yes, on, 0, false, no, off

buyer_converted
Optional

Select leads that have converted.

  • Must be a boolean value: 1, true, yes, on, 0, false, no, off

offer_converted
Optional

Select leads where a traffic source converted.

  • Must be a boolean value: 1, true, yes, on, 0, false, no, off

either_converted
Optional

Select leads where either a buyer or traffic source converted.

  • Must be a boolean value: 1, true, yes, on, 0, false, no, off

opt_out
Optional

Select leads that have opted-out.

  • Must be a boolean value: 1, true, yes, on, 0, false, no, off


GET /api/v1/leads/:id
Get details about a lead.

Supported Formats

json

GET /api/v1/leads/:id/buyer_is_available
Check if a lead has a potential buyer available that matches the lead's filters.

Supported Formats

json

GET /api/v1/leads/:lead_token/:caller_number/by_caller_number
Get a lead by lead token and caller number.

Supported Formats

json

Params

Param name
Description
lead_token
Optional

The lead token is set to either the offer_lead_token you get at trackdrive.com/offers or a schedule_lead_token you get from trackdrive.com/schedules. The only difference is the use of offer_lead_token will just send data to the offer which is picked up when a call is made with the caller_id of the lead. EG: If a Call Center is transferring data before they send you a call. The schedule_lead_token will start the actions associated with the schedule.

  • Must be String

caller_number
Optional

Find the lead by this caller number.

  • Must be String


PUT /api/v1/leads/:id
Update a lead by uuid.

Supported Formats

json

Examples

curl -H "Authorization: Basic BASE64_ENCODED_PUBLIC_KEY_AND_PRIVATE_KEY" -X PUT "https://trackdrive.com/api/v1/leads/e36e2da0-6984-4c59-999a-9207c973e143?opt_out=true"

# Update leads with application/json:
curl -H "Authorization: Basic BASE64_ENCODED_PUBLIC_KEY_AND_PRIVATE_KEY" -H "Content-Type: application/json" -X PUT -d '{"opt_out":true}' "https://trackdrive.com/api/v1/leads/e36e2da0-6984-4c59-999a-9207c973e143"

Params

Param name
Description
contact_field_type
Optional Blank Value Allowed

Pass an ID belonging to an Agent Script & Field Type to select that Custom Contact Field Type for this call.

  • Must be String

caller_id
Optional Blank Value Allowed

The callerID for the lead. This is the number Trackdrive will dial when making outbound calls to the lead. This is also the number where Trackdrive will send SMS.

  • Must be String

blocked
Optional Blank Value Allowed

Set this to true in order to prevent this lead from calling any of your telephone numbers. This will also prevent all outbound actions from Trackdrive.

  • Must be a boolean value: 1, true, yes, on, 0, false, no, off

opt_out
Optional Blank Value Allowed

Select leads that have opted-out.

  • Must be a boolean value: 1, true, yes, on, 0, false, no, off

email
Optional Blank Value Allowed

The email address for the lead. The lead's email is required for sending emails from schedules to leads.

  • Must be String

traffic_source_id
Optional Blank Value Allowed

Update the traffic source associated with this lead.

next_action_at
Optional Blank Value Allowed

Change when the next action is scheduled to run. EG If you mistakenly scheduled leads to wait until next week, you can use this to bulk update them to run 1 second from now.

  • Must be a valid time: 2024-04-25 13:40:23 +0000

schedule_callback_at
Optional

Schedule a callback with the submitted lead. Must be a valid time EG: 2021-07-23 14:26:43 +0000

  • Must be a valid time: 2024-04-25 13:40:23 +0000

schedule_callback_in_seconds
Optional

Schedule a callback with the submitted lead in X seconds. Must be a valid integer EG: 3600

  • Must be String

schedule_start
Optional Blank Value Allowed

translation missing: en.api.leads.schedule_start

  • Must be a boolean value: 1, true, yes, on, 0, false, no, off

schedule_stop
Optional Blank Value Allowed

Removes the lead from the Schedule. No further actions will be taken.

  • Must be a boolean value: 1, true, yes, on, 0, false, no, off

move_to_another_schedule_id
Optional Blank Value Allowed

Move To Another Schedule - Assign matching leads to the selected schedule. Lead's already on the selected schedule will restart their schedule.

apply_to
Optional Blank Value Allowed

Should the data you're sending also be applied to calls associated with this lead?

  • Must be one of: calls, self.

data
Optional Blank Value Allowed

Trackdrive will convert this hash of JSON data into tokens. Inbound and Outbound calls made and received from this Lead will automatically inherit these tokens. {interest: 'kittens', source: 'google', first_name: 'John', last_name: 'Smith'} Emails and SMS also have access to these tokens, so it's possible to send email and SMS messages that substitute tokens with values, such as {{first_name}}. Example SMS: “Hello {{first_name}} {{last_name}}, thanks for you inquiry. We will be calling you in 30 seconds from {{trackdrive_number}}”

  • Must be Hash


GET /api/v1/leads/new
Build a new lead with company defaults.

Supported Formats

json

DELETE /api/v1/leads/:id/id
Destory a lead by it's internal id.

Supported Formats

json

GET /api/v1/leads/reports
Get statistics on leads by category.

Supported Formats

json, csv

Examples

curl -H "Authorization: Basic BASE64_ENCODED_PUBLIC_KEY_AND_PRIVATE_KEY" "https://[your-subdomain].trackdrive.com/api/v1/leads/reports?category=buyer_id"

Params

Param name
Description
category
Optional Blank Value Allowed

translation missing: en.api.leads.category

  • Must be a value contained in the pick list:
    Acceptable ValueDescription
    statusStatus
    offer_idOffer
    schedule_idSchedule
    schedule_action_idSchedule Action
    buyer_converted_schedule_action_idThe schedule action where the lead converted.
    lead_import_idLead Import
    traffic_source_idTraffic Source
    outbound_calls_countOutbound Calls Count
    inbound_calls_countInbound Calls Count
    recent_call_disposition_idRecent Call Disposition
    buyer_converted_daysBuyer Converted Days
    buyer_idBuyer
    countryCountry
    call_center_idCall Center
    stateState
    sub_idSub ID
    dial_tierDial Tier
    contact_field_typeContact Field Type
    created_at_dayThe day the lead was submitted
    created_at_monthThe month the lead was submitted
    created_at_weekThe week the lead was submitted
    created_at_five_minutesThe minute the lead was submitted
    created_at_hourThe hour lead was submitted
    schedule_trigger_typeSchedule Trigger Type
    zip_postal_codeZip/Postal Code
    countryCountry
    state_provinceState/Province
    token_values_mapToken Values Map
pivot
Optional Blank Value Allowed

translation missing: en.api.leads.category

  • Must be a value contained in the pick list:
    Acceptable ValueDescription
    statusStatus
    offer_idOffer
    schedule_idSchedule
    schedule_action_idSchedule Action
    buyer_converted_schedule_action_idThe schedule action where the lead converted.
    lead_import_idLead Import
    traffic_source_idTraffic Source
    outbound_calls_countOutbound Calls Count
    inbound_calls_countInbound Calls Count
    recent_call_disposition_idRecent Call Disposition
    buyer_converted_daysBuyer Converted Days
    buyer_idBuyer
    countryCountry
    call_center_idCall Center
    stateState
    sub_idSub ID
    dial_tierDial Tier
    contact_field_typeContact Field Type
    created_at_dayThe day the lead was submitted
    created_at_monthThe month the lead was submitted
    created_at_weekThe week the lead was submitted
    created_at_five_minutesThe minute the lead was submitted
    created_at_hourThe hour lead was submitted
    schedule_trigger_typeSchedule Trigger Type
    zip_postal_codeZip/Postal Code
    countryCountry
    state_provinceState/Province
    token_values_mapToken Values Map
page
Optional

Return the next page of results.

  • Must be a number.

per_page
Optional

How many results to return per page. The default is 25.

  • Must be a number.

created_at_to
Optional

Date formatted like 2016-01-01 12:25:15 -0500

  • Must be String

created_at_from
Optional

Date formatted like 2016-01-01 12:25:15 -0500

  • Must be String

fulltext
Optional

Search for any record that matches this text

  • Must be String

time_zone
Optional

Date ranges will be parsed using this time zone.

columns
Optional
Specify the columns you would like returned by the API for a given resource. Limiting the columns can significantly increase API response time since only the requested data will be processed. columns=uuid,number,created_at

Must be any combination of:

  • id
  • legacy_id
  • type
  • uuid
  • created_at
  • updated_at
  • deleted_at
  • user_updated_at
  • routes_show_path
  • routes_edit_path
  • external_record_id
  • context_menu_name
  • name
  • caller_id
  • email
  • full_name
  • contact_field_type
  • expires_in
  • country
  • state_province
  • zip_postal_code
  • time_zone
  • sub_id
  • offer_id
  • schedule_id
  • status
  • human_status
  • css_status
  • has_next_action
  • opt_out
  • revenue
  • payout
  • offer_converted
  • buyer_converted
  • traffic_source_id
  • buyer_id
  • lead_import_id
  • remote_ip
  • attempted_call_id
  • connected_call_id
  • scheduled_callback_id
  • call_buyer_conversion_id
  • call_offer_conversion_id
  • sms_number_id
  • dial_number_id
  • dial_tier
  • last_action_at
  • first_action_at
  • first_queued_at
  • schedule_ended_at
  • next_action_at
  • last_call_at
  • is_live
  • schedule_trigger_type
  • blocked
  • data
  • Must be String

root
Optional

Pass root=false to return results without a root node and metadata.
For example:
GET /api/v1/calls?root=false will return [call1, call2, call3]
While:
GET /api/v1/calls will return {calls: [call1, call2, call3], metadata: {}}

  • Must be a boolean value: 1, true, yes, on, 0, false, no, off