Ping/Post

Endpoints that let traffic sources ping for an available buyer and post calls or leads for delivery.

POST /inbound_webhooks/ping/:vanity_uri

Webhook vanity URI required
https://[your-subdomain].trackdrive.com/api/v1/inbound_webhooks/ping/:vanity_uri

Ping for available agents or buyers

Checks whether a buyer or an AI agent is available to receive a lead for this offer before you send a call, identified by the webhook's vanity_uri. Enforces account balance, paused-number, and the webhook's own rate limit, and checks any contact fields marked required on ping. For check_for_available_buyer webhooks the response may be cached briefly.

Params

Param name Description
vanity_uri
Optional

The unique identifier for this endpoint.

  • Must be a String

auth_token
Optional

Authorize requests using your token. Get it from your profile: trackdrive.com/profile/edit

  • Must be a String

POST /inbound_webhooks/post/:vanity_uri

Ping ID or webhook vanity URI required
https://[your-subdomain].trackdrive.com/api/v1/inbound_webhooks/post/:vanity_uri

Post a ping for a tracking number

POST with a ping_id to retrieve a tracking number for forwarding an inbound call to a matching buyer.

Params

Param name Description
vanity_uri
Optional

The unique identifier for this endpoint.

  • Must be a String

ping_id
Optional

Ping ID

  • Must be a String

GET /inbound_webhooks

Authorization Required
https://[your-subdomain].trackdrive.com/api/v1/inbound_webhooks

List Incoming Webhook records.

Lists the account's Incoming Webhook endpoints, the vanity URIs used by ping and post calls to check lead availability, each tied to an offer and optionally scoped to specific call routers, buyers, or buyer groups. Requires superuser access.

Params

Param name Description
ids
Optional

Return records matching these ids.

  • Must be an array of decimal values. EG: [0, 1, 2, 3]

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 a String

created_at_from
Optional

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

  • Must be a String

fulltext
Optional

Search for any record that matches this text

  • Must be a 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
  • company_id
  • user_id
  • sortable_order
  • template_description
  • template_enabled
  • template_tier
  • require_caller_id_on_ping
  • vanity_uri
  • offer_id
  • name
  • description
  • webhook_type
  • call_router_ids
  • buyer_ids
  • buyer_group_ids
  • response_body
  • require_traffic_source_id
  • require_user_auth_token
  • company_subdomain
  • tracking_type
  • ring_pool_id
  • include_dynamic_buyers
  • buyer_ping_column_names
  • buyer_post_column_names
  • enable_public_show
  • enable_public_index
  • public_name
  • public_description
  • public_instructions_enabled
  • test_mode
  • buyers_limit_value
  • webhook_read_timeout
  • concurrency_cap_buffer_percent
  • rate_limit_per_minute
  • rate_limit_per_hour
  • rate_limit_per_day
  • rate_limit_per_minute_per_traffic_source
  • rate_limit_per_hour_per_traffic_source
  • rate_limit_per_day_per_traffic_source
  • data_append_enabled
  • data_append_group_id
  • traffic_source_rate_limiter_id
  • Must be a 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

GET /inbound_webhooks/new

Authorization Required
https://[your-subdomain].trackdrive.com/api/v1/inbound_webhooks/new

Build Incoming Webhook with defaults.

Returns a blank Incoming Webhook populated with default attribute values, without saving it, so you can see the defaults before building a create request.

Params

Param name Description
vanity_uri
Optional Blank value allowed

The unique identifier for this endpoint.

  • Must be a String

offer_id
Optional Blank value allowed

Offer

name
Optional Blank value allowed

Name

  • Must be a String

description
Optional Blank value allowed

Description

  • Must be a String

webhook_type
Optional Blank value allowed

Webhook Type

  • Must be one of: check_for_available_instant_agent, check_for_available_buyer, fire_webhooks.

call_router_ids
Optional Blank value allowed

Call Router Ids

  • Must be an array of decimal values. EG: [0, 1, 2, 3]

buyer_ids
Optional Blank value allowed

Buyer Ids

  • Must be an array of decimal values. EG: [0, 1, 2, 3]

buyer_group_ids
Optional Blank value allowed

Buyer Group Ids

  • Must be an array of decimal values. EG: [0, 1, 2, 3]

response_body
Optional Blank value allowed

Response Body

  • Must be a String

require_traffic_source_id
Optional Blank value allowed

Require a traffic_source_id on every ping and post to this endpoint.

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

require_caller_id_on_ping
Optional Blank value allowed

Require a caller_id on every ping to this endpoint.

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

require_user_auth_token
Optional Blank value allowed

Require a valid developer access token on every ping and post to this endpoint.

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

tracking_type
Optional Blank value allowed

How a forwarding number is provided when a buyer is available, such as a number from a Number Pool or the caller’s own number.

  • Must be a String

ring_pool_id
Optional Blank value allowed

The Number Pool a tracking number is assigned from when tracking_type uses a Number Pool.

test_mode
Optional Blank value allowed

When enabled, calls and leads sent to this endpoint are processed without being delivered to buyers, so it can be tested safely.

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

include_dynamic_buyers
Optional Blank value allowed

Also search buyers that were dynamically assigned to the offer, not only the buyers and buyer groups selected here.

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

buyers_limit_value
Optional Blank value allowed

The maximum number of available buyers to return on a ping.

  • Must be a decimal number.

webhook_read_timeout
Optional Blank value allowed

How many seconds to wait for a response before timing out the request.

  • Must be a decimal number.

concurrency_cap_buffer_percent
Optional Blank value allowed

Percentage buffer applied to buyer concurrency caps when checking for available buyers.

  • Must be a decimal number.

data_append_enabled
Optional Blank value allowed

Append additional data to leads created through this endpoint using a Data Append Group.

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

data_append_group_id
Optional Blank value allowed

The Data Append Group used to append additional data to leads created through this endpoint.

rate_limit_per_minute
Optional Blank value allowed

Maximum number of requests this endpoint will accept per minute, across all traffic sources.

  • Must be a decimal number.

rate_limit_per_hour
Optional Blank value allowed

Maximum number of requests this endpoint will accept per hour, across all traffic sources.

  • Must be a decimal number.

rate_limit_per_day
Optional Blank value allowed

Maximum number of requests this endpoint will accept per day, across all traffic sources.

  • Must be a decimal number.

rate_limit_per_minute_per_traffic_source
Optional Blank value allowed

Maximum number of requests this endpoint will accept per minute, per traffic source.

  • Must be a decimal number.

rate_limit_per_hour_per_traffic_source
Optional Blank value allowed

Maximum number of requests this endpoint will accept per hour, per traffic source.

  • Must be a decimal number.

rate_limit_per_day_per_traffic_source
Optional Blank value allowed

Maximum number of requests this endpoint will accept per day, per traffic source.

  • Must be a decimal number.

traffic_source_rate_limiter_id
Optional Blank value allowed

A Traffic Source Rate Limiter used to apply shared rate limits across multiple traffic sources.

  • Must be an 8-bit integer ID or a 128-bit UUID reference to an object on Trackdrive. Example ID: 289302820, Example UUID: 924c37d5-e70f-42ad-84c2-e85eb0c1bc21

buyer_ping_column_names
Optional Blank value allowed

The response fields to include for each buyer when responding to a ping.

  • Must be an array of strings. EG: ["abc123", "xzy023"]

buyer_post_column_names
Optional Blank value allowed

The response fields to include when responding to a post.

  • Must be an array of strings. EG: ["abc123", "xzy023"]

enable_public_show
Optional Blank value allowed

Make this endpoint’s posting instructions viewable on a public, unauthenticated page.

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

enable_public_index
Optional Blank value allowed

List this endpoint on the public index page of your account’s published posting instructions.

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

public_name
Optional Blank value allowed

The name shown for this endpoint on its public posting instructions page.

  • Must be a String

public_description
Optional Blank value allowed

The description shown for this endpoint on its public posting instructions page.

  • Must be a String

POST /inbound_webhooks

Authorization Required
https://[your-subdomain].trackdrive.com/api/v1/inbound_webhooks

Create Incoming Webhook.

Creates a new Incoming Webhook attached to an offer, generating its ping_id and vanity_uri. Pass copy_id to clone an existing webhook's configuration under a new vanity_uri. Enabling a premium webhook type the account is not entitled to is blocked. Requires superuser access.

Params

Param name Description
vanity_uri
Optional Blank value allowed

The unique identifier for this endpoint.

  • Must be a String

offer_id
Optional Blank value allowed

Offer

name
Optional Blank value allowed

Name

  • Must be a String

description
Optional Blank value allowed

Description

  • Must be a String

webhook_type
Optional Blank value allowed

Webhook Type

  • Must be one of: check_for_available_instant_agent, check_for_available_buyer, fire_webhooks.

call_router_ids
Optional Blank value allowed

Call Router Ids

  • Must be an array of decimal values. EG: [0, 1, 2, 3]

buyer_ids
Optional Blank value allowed

Buyer Ids

  • Must be an array of decimal values. EG: [0, 1, 2, 3]

buyer_group_ids
Optional Blank value allowed

Buyer Group Ids

  • Must be an array of decimal values. EG: [0, 1, 2, 3]

response_body
Optional Blank value allowed

Response Body

  • Must be a String

require_traffic_source_id
Optional Blank value allowed

Require a traffic_source_id on every ping and post to this endpoint.

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

require_caller_id_on_ping
Optional Blank value allowed

Require a caller_id on every ping to this endpoint.

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

require_user_auth_token
Optional Blank value allowed

Require a valid developer access token on every ping and post to this endpoint.

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

tracking_type
Optional Blank value allowed

How a forwarding number is provided when a buyer is available, such as a number from a Number Pool or the caller’s own number.

  • Must be a String

ring_pool_id
Optional Blank value allowed

The Number Pool a tracking number is assigned from when tracking_type uses a Number Pool.

test_mode
Optional Blank value allowed

When enabled, calls and leads sent to this endpoint are processed without being delivered to buyers, so it can be tested safely.

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

include_dynamic_buyers
Optional Blank value allowed

Also search buyers that were dynamically assigned to the offer, not only the buyers and buyer groups selected here.

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

buyers_limit_value
Optional Blank value allowed

The maximum number of available buyers to return on a ping.

  • Must be a decimal number.

webhook_read_timeout
Optional Blank value allowed

How many seconds to wait for a response before timing out the request.

  • Must be a decimal number.

concurrency_cap_buffer_percent
Optional Blank value allowed

Percentage buffer applied to buyer concurrency caps when checking for available buyers.

  • Must be a decimal number.

data_append_enabled
Optional Blank value allowed

Append additional data to leads created through this endpoint using a Data Append Group.

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

data_append_group_id
Optional Blank value allowed

The Data Append Group used to append additional data to leads created through this endpoint.

rate_limit_per_minute
Optional Blank value allowed

Maximum number of requests this endpoint will accept per minute, across all traffic sources.

  • Must be a decimal number.

rate_limit_per_hour
Optional Blank value allowed

Maximum number of requests this endpoint will accept per hour, across all traffic sources.

  • Must be a decimal number.

rate_limit_per_day
Optional Blank value allowed

Maximum number of requests this endpoint will accept per day, across all traffic sources.

  • Must be a decimal number.

rate_limit_per_minute_per_traffic_source
Optional Blank value allowed

Maximum number of requests this endpoint will accept per minute, per traffic source.

  • Must be a decimal number.

rate_limit_per_hour_per_traffic_source
Optional Blank value allowed

Maximum number of requests this endpoint will accept per hour, per traffic source.

  • Must be a decimal number.

rate_limit_per_day_per_traffic_source
Optional Blank value allowed

Maximum number of requests this endpoint will accept per day, per traffic source.

  • Must be a decimal number.

traffic_source_rate_limiter_id
Optional Blank value allowed

A Traffic Source Rate Limiter used to apply shared rate limits across multiple traffic sources.

  • Must be an 8-bit integer ID or a 128-bit UUID reference to an object on Trackdrive. Example ID: 289302820, Example UUID: 924c37d5-e70f-42ad-84c2-e85eb0c1bc21

buyer_ping_column_names
Optional Blank value allowed

The response fields to include for each buyer when responding to a ping.

  • Must be an array of strings. EG: ["abc123", "xzy023"]

buyer_post_column_names
Optional Blank value allowed

The response fields to include when responding to a post.

  • Must be an array of strings. EG: ["abc123", "xzy023"]

enable_public_show
Optional Blank value allowed

Make this endpoint’s posting instructions viewable on a public, unauthenticated page.

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

enable_public_index
Optional Blank value allowed

List this endpoint on the public index page of your account’s published posting instructions.

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

public_name
Optional Blank value allowed

The name shown for this endpoint on its public posting instructions page.

  • Must be a String

public_description
Optional Blank value allowed

The description shown for this endpoint on its public posting instructions page.

  • Must be a String

GET /inbound_webhooks/:id

Authorization Required
https://[your-subdomain].trackdrive.com/api/v1/inbound_webhooks/:id

Get Incoming Webhook by id.

Fetches a single Incoming Webhook by id, scoped to the current company. Requires superuser access.

PUT /inbound_webhooks/:id

Authorization Required
https://[your-subdomain].trackdrive.com/api/v1/inbound_webhooks/:id

Update Incoming Webhook by id.

Updates an Incoming Webhook's offer, webhook type, associated call routers, buyers, or buyer groups, or response body. Attempts to switch on a premium webhook type the account is not entitled to are blocked. Requires superuser access.

Params

Param name Description
vanity_uri
Optional Blank value allowed

The unique identifier for this endpoint.

  • Must be a String

offer_id
Optional Blank value allowed

Offer

name
Optional Blank value allowed

Name

  • Must be a String

description
Optional Blank value allowed

Description

  • Must be a String

webhook_type
Optional Blank value allowed

Webhook Type

  • Must be one of: check_for_available_instant_agent, check_for_available_buyer, fire_webhooks.

call_router_ids
Optional Blank value allowed

Call Router Ids

  • Must be an array of decimal values. EG: [0, 1, 2, 3]

buyer_ids
Optional Blank value allowed

Buyer Ids

  • Must be an array of decimal values. EG: [0, 1, 2, 3]

buyer_group_ids
Optional Blank value allowed

Buyer Group Ids

  • Must be an array of decimal values. EG: [0, 1, 2, 3]

response_body
Optional Blank value allowed

Response Body

  • Must be a String

require_traffic_source_id
Optional Blank value allowed

Require a traffic_source_id on every ping and post to this endpoint.

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

require_caller_id_on_ping
Optional Blank value allowed

Require a caller_id on every ping to this endpoint.

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

require_user_auth_token
Optional Blank value allowed

Require a valid developer access token on every ping and post to this endpoint.

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

tracking_type
Optional Blank value allowed

How a forwarding number is provided when a buyer is available, such as a number from a Number Pool or the caller’s own number.

  • Must be a String

ring_pool_id
Optional Blank value allowed

The Number Pool a tracking number is assigned from when tracking_type uses a Number Pool.

test_mode
Optional Blank value allowed

When enabled, calls and leads sent to this endpoint are processed without being delivered to buyers, so it can be tested safely.

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

include_dynamic_buyers
Optional Blank value allowed

Also search buyers that were dynamically assigned to the offer, not only the buyers and buyer groups selected here.

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

buyers_limit_value
Optional Blank value allowed

The maximum number of available buyers to return on a ping.

  • Must be a decimal number.

webhook_read_timeout
Optional Blank value allowed

How many seconds to wait for a response before timing out the request.

  • Must be a decimal number.

concurrency_cap_buffer_percent
Optional Blank value allowed

Percentage buffer applied to buyer concurrency caps when checking for available buyers.

  • Must be a decimal number.

data_append_enabled
Optional Blank value allowed

Append additional data to leads created through this endpoint using a Data Append Group.

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

data_append_group_id
Optional Blank value allowed

The Data Append Group used to append additional data to leads created through this endpoint.

rate_limit_per_minute
Optional Blank value allowed

Maximum number of requests this endpoint will accept per minute, across all traffic sources.

  • Must be a decimal number.

rate_limit_per_hour
Optional Blank value allowed

Maximum number of requests this endpoint will accept per hour, across all traffic sources.

  • Must be a decimal number.

rate_limit_per_day
Optional Blank value allowed

Maximum number of requests this endpoint will accept per day, across all traffic sources.

  • Must be a decimal number.

rate_limit_per_minute_per_traffic_source
Optional Blank value allowed

Maximum number of requests this endpoint will accept per minute, per traffic source.

  • Must be a decimal number.

rate_limit_per_hour_per_traffic_source
Optional Blank value allowed

Maximum number of requests this endpoint will accept per hour, per traffic source.

  • Must be a decimal number.

rate_limit_per_day_per_traffic_source
Optional Blank value allowed

Maximum number of requests this endpoint will accept per day, per traffic source.

  • Must be a decimal number.

traffic_source_rate_limiter_id
Optional Blank value allowed

A Traffic Source Rate Limiter used to apply shared rate limits across multiple traffic sources.

  • Must be an 8-bit integer ID or a 128-bit UUID reference to an object on Trackdrive. Example ID: 289302820, Example UUID: 924c37d5-e70f-42ad-84c2-e85eb0c1bc21

buyer_ping_column_names
Optional Blank value allowed

The response fields to include for each buyer when responding to a ping.

  • Must be an array of strings. EG: ["abc123", "xzy023"]

buyer_post_column_names
Optional Blank value allowed

The response fields to include when responding to a post.

  • Must be an array of strings. EG: ["abc123", "xzy023"]

enable_public_show
Optional Blank value allowed

Make this endpoint’s posting instructions viewable on a public, unauthenticated page.

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

enable_public_index
Optional Blank value allowed

List this endpoint on the public index page of your account’s published posting instructions.

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

public_name
Optional Blank value allowed

The name shown for this endpoint on its public posting instructions page.

  • Must be a String

public_description
Optional Blank value allowed

The description shown for this endpoint on its public posting instructions page.

  • Must be a String

DELETE /inbound_webhooks/:id

Authorization Required
https://[your-subdomain].trackdrive.com/api/v1/inbound_webhooks/:id

Destroy Incoming Webhook by id.

Deletes an Incoming Webhook by id. Any traffic source still pinging or posting to its vanity_uri will start receiving not-found errors. Requires superuser access.