Endpoint URLs
Each Ping/Post endpoint is identified by a unique Vanity URI that you configure in the dashboard.
| Method | Type | URL Pattern |
|---|---|---|
GET / POST |
PING | https://trackdrive.com/api/v1/inbound_webhooks/ping/{vanity_uri} |
GET / POST |
POST | https://trackdrive.com/api/v1/inbound_webhooks/post/{vanity_uri} |
GET / POST |
FULL | https://trackdrive.com/api/v1/inbound_webhooks/full/{vanity_uri} |
Step 1: Send a PING
Submit lead data to the PING endpoint to retrieve a list of available buyers. Parameters can be sent as JSON in the request body or as query string parameters.
PING Request Example
curl -X POST \
"https://trackdrive.com/api/v1/inbound_webhooks/ping/my_endpoint" \
-H "Content-Type: application/json" \
-d '{
"caller_id": "18005551234",
"traffic_source_id": "source_abc"
}'
PING Response Example
The response includes a list of available buyers with their bids, plus a try_all_buyers_ping_id for trying all matched buyers in priority order:
{
"status": "success",
"try_all_buyers_ping_id": "xyz789",
"buyers": [
{
"buyer_id": 1,
"name": "Buyer A",
"bid": 25.00,
"ping_id": "abc123"
},
{
"buyer_id": 2,
"name": "Buyer B",
"bid": 20.00,
"ping_id": "def456"
}
]
}
Step 2: Send a POST
After receiving the PING response, send a POST request with one of two options:
- Pick a specific buyer — send that buyer's
ping_idandbuyer_idto select one buyer - Try all buyers — send the
try_all_buyers_ping_idas theping_idto let TrackDrive try all matched buyers in priority order
POST Request Example (specific buyer)
curl -X POST \
"https://trackdrive.com/api/v1/inbound_webhooks/post/my_endpoint" \
-H "Content-Type: application/json" \
-d '{
"ping_id": "abc123",
"caller_id": "18005551234",
"buyer_id": 1
}'
POST Request Example (try all buyers)
curl -X POST \
"https://trackdrive.com/api/v1/inbound_webhooks/post/my_endpoint" \
-H "Content-Type: application/json" \
-d '{
"ping_id": "xyz789",
"caller_id": "18005551234"
}'
POST Response Example
{
"status": "success",
"trackdrive_number": "18009876543",
"buyer_name": "Buyer A"
}
Post-Only Mode
If you don't need the two-step PING/POST flow, you can skip the PING and submit leads directly via POST. TrackDrive will find available buyers and return a tracking number in one step.
curl -X POST \
"https://trackdrive.com/api/v1/inbound_webhooks/post/my_endpoint" \
-H "Content-Type: application/json" \
-d '{
"caller_id": "18005551234"
}'
Contact Fields
Each Ping/Post endpoint is associated with an Offer that defines its contact fields. These fields control what data publishers must submit with each request. Common fields include:
| Field | Required | Description |
|---|---|---|
caller_id |
Varies | The lead's telephone number |
traffic_source_id |
Varies | Identifies the publisher or traffic source |
ping_id |
On POST | The ping ID returned from the PING step |
trackdrive_number |
Varies | Required when using caller number forwarding mode |
Additional custom contact fields (state, zip code, vertical, etc.) are configured per-offer in the dashboard. View the full field list for any endpoint on its Posting Instructions page.
Tracking Modes
TrackDrive supports two tracking modes for Ping/Post endpoints:
- Unique Phone Numbers (Ring Pool) — a unique tracking number is returned on each POST to route the call
- Caller Number (Static) — the publisher specifies a
trackdrive_numberon PING and must include bothcaller_idandping_idon POST
Authentication
Optionally require publishers to authenticate with an auth_token parameter.
When enabled, only users with a valid TrackDrive account can access the endpoint,
allowing you to track which users are sending traffic.
Posting Instructions
Each Ping/Post endpoint has a dedicated Posting Instructions page in the dashboard that shows the complete field list, example requests, and example responses tailored to that endpoint's configuration. Share this page with publishers for easy integration.