Skip to main content
Leadping provides two POST endpoints for external lead intake. Both require a valid, enabled source key and consent evidence. Structured POST /leads accepts a Leadping Consent certificate ID or a TrustedForm URL. Flat POST /leads/intake currently accepts only a TrustedForm URL.

Choose an endpoint

There is no GET or query-string intake endpoint.

Before sending a lead

Confirm that:
  • the source is enabled;
  • its lp_src_... key is configured in the posting system;
  • the organization can receive billed leads;
  • the payload contains a valid email address or U.S. phone number; and
  • the payload includes an issued certificate in a field supported by the chosen endpoint.

Authenticate

Send the source key in the Authorization header:
For example:
The key identifies the source and associates the created lead with its organization. It cannot access account, organization, analytics, or other non-intake operations.

Send a first request

Save a flat payload as lead.json using the example below. Replace the contact details with a contact you control and the certificate placeholder with the URL captured from that person’s test submission. The example certificate and phone number are illustrative; they are not test credentials or a working certificate. Set LEADPING_SOURCE_KEY in your shell from protected configuration, then run:
This command uses Bash syntax. In PowerShell, use curl.exe and $env:LEADPING_SOURCE_KEY for the environment variable. The request creates a production lead and may start configured automations. Review those automations before sending. Keep the response’s id and the Location header with the upstream submission record; you will need them to investigate processing or an uncertain retry.

Structured request

POST /leads accepts metadata, contact, and customer objects:
For TrustedForm, send the certificate as metadata.trustedFormUrl. Replace the illustrative UUID below with an issued certificate for this exact contact and submission. Send this payload to POST /leads, not /leads/intake; use the same source-key header shown above.
Save it as lead.json and change the curl URL to https://api.leadping.ai/leads. A Profile onboarding certificate is not evidence for this lead. A capture reference or a 202 issuance response is not ready evidence: wait for issuance before intake. If both certificate fields are present, Leadping validates the Leadping Consent ID first; an invalid ID does not fall back to TrustedForm.

Flat request

POST /leads/intake maps common top-level fields into the Leadping model:
For this endpoint, send the certificate as trustedFormUrl. A top-level leadpingConsentCertificateId is not mapped; use the structured endpoint for Leadping Consent. Leadping also records the request IP address and user agent when available.

Map fields deliberately

Keep postal codes and identifiers as strings so leading zeros survive. sourceMetadata values are strings: send a short code or label instead of a nested object. Omit optional fields you do not collect rather than filling them with invented values. tagNames matches organization tags and can create missing names. Agree on a fixed vocabulary with the sender; a typo can create a separate tag instead of applying the intended one. Use tagIds when the integration already knows the existing organization tag IDs. The flat endpoint records the posting request’s IP address and user agent when available. If your server submits the request, those values describe the server request; do not mistake them for the consumer’s browser or location.

Immediate validation

Leadping validates the source and lead shape before creating the record: Do not retry 400, 401, or 403 responses until the request, credential, source, or account condition has changed.

Background processing

A 201 Created response means the lead record was created. It can remain in a processing state before the conversation and follow-up become available. Do not resubmit a lead merely because its conversation has not appeared yet. Leadping checks the submitted certificate and processes the lead asynchronously. A lead that passes processing moves to Ready. Use the returned processing status and reason to decide what to do next; do not try to reproduce Leadping’s validation logic in your integration. If certificate validation fails, the lead moves to Invalid with a processing-status reason. A 201 response does not mean background validation has completed. If processing does not progress, provide support with the lead ID, submission time, current status, and reason. There is no need to send the full payload or certificate in the initial support request.
Technical validation does not establish lawful contact, carrier approval, message delivery, or call completion.

Handle errors and retries

A timeout or lost response leaves the outcome uncertain: the server may have created the lead before the connection failed. Mark the submission as outcome unknown in your system and reconcile it before resending. A 5xx response also warrants checking for a created record before repeating a write. Keep the same contact, certificate, and submission identifiers when investigating or retrying. Source intake chooses a deduplication key in this order: explicit metadata.intakeIdempotencyKey (idempotencyKey for flat intake), sellerLeadId, Leadping Consent ID, then TrustedForm URL. externalId alone is a reconciliation field. Reusing a deduplication key for a different contact is rejected; do not change keys to force a second record. Prevent simultaneous retries by giving one worker ownership of each queued submission. Source keys cannot read leads. Reconcile through the Leadping interface or a separate organization-authorized service. After a confirmed creation, that service can use GET /leads/{id} to inspect processingStatus and processingStatusReason. Do not give the source’s posting system broader credentials solely to check a result.

Field practices

  • Format phone numbers as E.164, such as +15555550123.
  • Format dates as YYYY-MM-DD.
  • Use stable external IDs for reconciliation.
  • Keep sourceMetadata to 20 or fewer non-secret operational fields.
  • Never include source keys, API keys, tokens, or passwords in lead fields.
  • Keep field names and formats stable across integrations.

Go-live checklist

  • Submit a lead from the real production posting system.
  • Confirm it appears under the expected source.
  • Verify contact, address, tags, metadata, and the selected certificate mapping.
  • Wait for the processing status to become Ready.
  • Verify the conversation and intended workflow behavior.
  • Establish owners for failed posts, invalid leads, duplicates, and source-key rotation.
Use the API Reference for the complete generated schemas.