Send LeadByte leads to Juiced
This guide adds a LeadByte delivery that posts each lead to the Juiced API as JSON, with Juiced set as the buyer, or pings Juiced first and posts with the ping ID.
Route: Lead platform as buyer. In LeadByte, add a delivery with the Direct Post or PingPost action, a JSON remote system, the Juiced URL, an Authorization header in Advanced Settings, and a success response keyed on data.status.
You need a LeadByte campaign and a buyer record for Juiced, plus a Juiced source, its bearer token, and the field names from View API Spec.
The gotcha: Juiced answers 201 for sold and unsold leads alike, and LeadByte warns that an HTTP status alone does not mean success. Match the success response on "accepted", not on the HTTP status.
Before you start
- In LeadByte: the campaign the leads arrive in, and a buyer record for Juiced to select under Buyers & Financials (How to create a Buyer).
- In Juiced: a source, its bearer token, and the endpoint and field names from View API Spec.
- Pick the source type. Use Vendor when a vendor runs the LeadByte account and sends you leads, and Internal when the leads are your own. A ping returns its id in
data.id, and the post carries it asping_id. A vendor source reads its price fromdata.price(ping reference). - Optional partner header. If Juiced gave you a partner ID for partner-attributed traffic, add
X-Partner-Id. Leave it out otherwise.
Step by step
-
Create a source in Juiced and copy a token
Go to Ingest > Sources > New source, set the Source type, turn on Test mode and click Create source. On the Authentication tab click New bearer token > Create token and copy it. Open Overview > More actions (⋯) > View API Spec for the endpoint and field names. See setting up a source.
-
Add a new delivery
Open the Manage Deliveries tab and click Add New Delivery. Enter a Reference, set Trigger to When lead arrives (automatic), pick the Campaign, and choose Direct Post as the Action (or PingPost, step 6). Set Remote system (shown once Direct Post is selected) to JSON and URL to
https://usejuiced.com/api/v1/leads(Deliveries Explained). -
Select Juiced as the buyer
Under Buyers & Financials, select the Juiced buyer. To record the price Juiced returns, choose Dynamic Revenue in the delivery settings, select JSON as the response type and enter
data.priceas the field that holds the revenue (check the path syntax in your account; Dynamic Revenue). Add caps if you need them. -
Map the fields
Under Custom Data Mappings, click Add New Mapping for each field: the Input Field is your campaign field and the Output Field is the Juiced key, such as
first_name. Use Options for formats such as phone format. -
Add the header and success responses
In Advanced Settings, add
AuthorizationwithBearerand your token, plusAccept: application/json. Under Remote System Response, add"accepted"(with the quotes) with Match By: Keyword and tick Success. Keyword matches any response that contains the text, so keep the quotes. Add"rejected"and"duplicate"as reject responses (Remote System Response). -
Set up PingPost (optional)
With the PingPost action, create the ping request to
https://usejuiced.com/api/v1/pingwith only the fields marked Required for ping (alwayszip) and set the ping response type to JSON. Every valid ping returns200, so set the ping success requirement ondata.statusequal tomatched. LeadByte's article shows the condition labels only in a screenshot, so check in your account. In the post, sendping_idwith the value{$ping.data.id}, following LeadByte's dotted form for nested ping values (PingPost). -
Send a test delivery
Send a test lead with zip
00001(accepted) and one with00003(rejected); LeadByte requires a test before the delivery can leave Saved. To see Juiced's reply in LeadByte, click the LeadID on the Lead Screen and check the response box. Check the lead in Juiced too, under Entries > Incoming logs with the Test only filter. Then turn off Test mode in Juiced and enable the delivery.
Field mapping
| Output Field (Juiced key) | Input Field or value |
|---|---|
first_name, last_name | Campaign name fields |
email, phone | Campaign email and phone fields |
zip | Postcode or zip field. Always required, on the ping and the post |
ping_id | {$ping.data.id} (PingPost only) |
| Custom answers, sub IDs, UTM values | Campaign fields, posted to keys you add on the Juiced source's Fields tab |
trusted_form_cert_url | The campaign field holding the certificate URL |
Example request
POST https://usejuiced.com/api/v1/leads
Authorization: Bearer <your token>
Content-Type: application/json
Accept: application/json
{
"ping_id": "ping_01HZX4K2M8",
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com",
"phone": "5555550100",
"zip": "00001"
}
For a Direct Post delivery, leave out ping_id. See the leads and ping API references.
Response parsing
| Juiced returns | Meaning | LeadByte setting |
|---|---|---|
Ping 200: data.status matched | Juiced wants the lead at data.price | Ping success; post with {$ping.data.id} |
Ping: no_match, duplicate, rejected | Juiced does not want the lead | No post |
201 + data.status accepted | Sold or accepted, with its data.price | Keyword "accepted", Success ticked; Dynamic Revenue from data.price |
201 + data.status rejected | Received, not sold, price 0 | Reject response, keyword "rejected" |
201 + data.status duplicate | Duplicate, price 0 | Reject response, keyword "duplicate" |
401 unauthenticated | Missing or invalid credentials | Failure. Fix the header in Advanced Settings |
422 | error.code (for example validation_failed or ping_mismatch) and the field errors | Failure. Fix the mapping and resend |
The data.status values are Juiced's default mapping. Confirm them on your source's API spec and against a real response on the Lead Screen.
TrustedForm and Jornaya
If your LeadByte campaign stores a TrustedForm certificate URL or a Jornaya LeadiD, add a field such as trusted_form_cert_url or jornaya_leadid to the Juiced lead category or source, mark it Deliverable if your buyers ask for it, and add a Custom Data Mapping for it. See passing TrustedForm and Jornaya to Juiced.
Troubleshooting
- Every lead counts as sold. The success response matches on HTTP Status. Match by Keyword on
"accepted"instead. - Unauthorized (401). The header in Advanced Settings has a missing or doubled space after
Bearer, or a pasted line break. A new Juiced token expires the old one 24 hours later. - No revenue recorded. Dynamic Revenue is not set to JSON with the field
data.price. - 422 on the post after a ping. Read
error.codeon the Lead Screen:ping_mismatchmeans the post does not match its ping. Check thatping_idcarries{$ping.data.id}and the post repeats the same ping fields. - The delivery will not enable. LeadByte needs a successful test delivery first.
More fixes in webhook troubleshooting.
Frequently asked
Can LeadByte send leads to Juiced?
Yes. Add a LeadByte delivery with the Direct Post action and a JSON remote system that posts to the Juiced API, with a bearer token in the Authorization header set in Advanced Settings.
Does Juiced support LeadByte PingPost?
Yes. LeadByte pings the Juiced v1 ping endpoint and, when data.status is matched, posts the full lead with ping_id set from data.id.
How does LeadByte know a lead sold to Juiced?
Juiced returns HTTP 201 with data.status. Add a keyword success response on accepted and read revenue from data.price with Dynamic Revenue. Rejected and duplicate statuses mean not sold.
Where do I add headers in LeadByte?
In the delivery’s Advanced Settings, which LeadByte uses for header values such as an API key or Authorization header.
How do I pass a TrustedForm certificate from LeadByte to Juiced?
Add a field such as trusted_form_cert_url to the Juiced lead category or source and add a Custom Data Mapping for it in the LeadByte delivery.
Route LeadByte traffic to the right buyer
Juiced routes each lead to your buyers by bids, caps and criteria, and moves unsold leads to your marketplace.
Scale your lead business, without limits
Juiced puts you in full control of your leads, routing, and revenue, so you can automate, optimize, and grow without chaos.
