Prerequisites
- A source configured for the lead category you want to ingest into. If you don’t have one yet, see Setting Up a Source and Its Attributes.
- Something to make HTTP requests with, like
curl, Postman, your application code, or whatever your integrator uses.
1. Open the source’s API specification
Open Sources under Ingest in the sidebar and click the source you’re integrating. On the source’s Overview, open the More actions (⋯) menu in the header and choose View API Spec.

2. Grab authentication credentials
The first section of the API spec is Authentication. Juiced supports two auth methods, so pick whichever fits your integration.3. Review the field reference
Scroll down to Field Reference. The table lists every field this source accepts, what type it is, whether it’s required for pings, required for posts, and a realistic example value. The fields marked Required for post must be present in every lead submission or the API returns a422 with a list of validation errors. Fields marked Required for ping must also be present when using ping-post.
Fields typed as List of Values show the allowed values next to the example. Any submitted value outside that list will fail validation.
The Field Reference is the source of truth for what this source accepts. It automatically reflects both lead category fields and any source-level fields you’ve added (except fields hidden from the API spec), so integrators don’t need to ask “what fields do I send?” because they can see it here.
4. Submit a lead
Send aPOST to the v1 leads endpoint, https://usejuiced.com/api/v1/leads. The spec page includes a copy-paste-ready Example cURL Request block with your credentials already baked in. If its URL ends in /api/leads, change it to /api/v1/leads. Here’s the general shape.
transaction_id is optional but worth sending. It’s your own ID for the lead, so if a request times out you can safely send it again without creating a second lead. See Safe retries for the details.
A submission that passes validation returns 201 Created with a body like this one.
data.status is one of three values, decided by the source’s status responses mapping (accepted is the mapping’s Success response).
If you’ve changed the source’s status response mapping, the statuses behind each value change with it. Your own lead’s actual status is always visible on its page in Juiced.
Already sending leads to
/api/leads? That’s the legacy API. It still works, but it’s deprecated, so plan a move to v1. Its success status is success rather than accepted, and its fields sit at the top level of the response rather than under data. See Moving from legacy to v1.5. Verify the submission landed
Back in Juiced, open Incoming logs under Entries in the sidebar. Every submission gets an incoming log, newest first, showing the source, the post’s outcome, the lead it created, and who bought it. Click the log, then the Post link under Records, to open the post inspector.

- Request shows the Payload exactly as received, plus Validation errors when the post was rejected.
- Response shows what Juiced sent back.
- Details shows the post’s status (Accepted or Rejected) and response code (
201or422). - Records links to the lead the post created, if any.
Testing without real data
If your source is in test mode (switched on from the source’s edit form), you can submit leads using test zip codes, and they’re never distributed to buyers. See Test mode in the API reference for what pings return.What happens next
Once a lead is accepted, a few things follow.- Matching runs immediately. Juiced classifies the lead into a lead type and runs it through your distribution stages.
- The response tells you the outcome before the API call returns.
- Delivery follows if the lead was assigned, so the customer sees it in their portal and any configured webhooks fire.
- The Leads page lists every accepted lead under Entries → Leads with its full history.

