RingCX
Push leads into a RingCX or NewBridge campaign in real time over HTTP. The correct integration is selected automatically from the company’s configured dialer family, so the same endpoint serves both RingCX and NewBridge.
Caller IDs are auto-assigned from the company’s ANI inventory. Any callerId provided in the lead payload is overwritten.
Authentication
Section titled “Authentication”All requests must include a universal API key as a bearer token in the Authorization header:
Authorization: Bearer YOUR_API_KEY_HEREIf the key is missing, invalid, inactive, or not a universal-typed key, the server will respond with a 401 or 403.
Base URL
Section titled “Base URL”https://api.outboundiq.cloudEndpoints
Section titled “Endpoints”Upload Lead
Section titled “Upload Lead”Push a single lead into a RingCX or NewBridge campaign. The endpoint normalizes the phone number, auto-assigns a caller ID from your ANI inventory, and forwards the lead to the dialer’s lead loader.
- Method:
POST - URL:
/live-feed/ringcx - Headers:
Authorization: Bearer YOUR_API_KEY_HEREContent-Type: application/json
Body Schema:
type Request = { // The dialer's own campaign ID (the "internal identifier" — what you see in your RingCX/NewBridge UI) campaignId: string; // The lead to upload lead: Lead; // Optional upload options forwarded to the dialer's lead loader options?: UploadOptions;};
type Lead = { // 10-digit US phone (also accepts +1-prefixed and formatted variants — non-digit characters are stripped) leadPhone: string; firstName?: string; lastName?: string; email?: string; zip?: string; city?: string; address1?: string; address2?: string; state?: string; auxData1?: string; auxData2?: string; auxData3?: string; auxData4?: string; auxData5?: string;};
type UploadOptions = { dialPriority?: "IMMEDIATE" | "FIRST_PASS" | "SECOND_PASS" | "THIRD_PASS"; duplicateHandling?: "REMOVE_FROM_LIST" | "RETAIN_ALL" | "REMOVE_ALL_EXISTING"; listState?: "ACTIVE" | "INACTIVE"; // Defaults to "NPA_NXX" (timezone derived from the phone's area code). timeZoneOption?: "NOT_APPLICABLE" | "NPA_NXX" | "ZIPCODE" | "EXPLICIT"; description?: string;};Body Example:
{ "campaignId": "123456", "lead": { "leadPhone": "5551234567", "firstName": "Jane", "lastName": "Doe", "email": "jane@example.com", "zip": "33101", "city": "Miami", "state": "FL", "auxData1": "source=campaign-x" }, "options": { "dialPriority": "IMMEDIATE", "duplicateHandling": "REMOVE_FROM_LIST" }}Success Response:
{ "success": true, "dialerResponse": { "message": "Your uploaded lead list has successfully completed processing", "leadsSupplied": 1, "leadsAccepted": 1, "leadsInserted": 1, "processingResult": "OK", "processingStatus": "DEFAULT_NOT_A_FAILURE" }}The dialerResponse field is the raw response from the underlying RingCX/NewBridge lead loader and includes acceptance counts and any rejection details.
Errors:
| Status | Condition |
|---|---|
401 | Missing, invalid, or inactive API key. |
403 | API key type is not universal. |
400 | Request body failed validation, or leadPhone could not be normalized to a 10-digit US number. |
400 | The company has no dialer configured. |
400 | The company’s dialer family is not ringcx or newbridge. |
400 | The dialer config is missing the required auth token (permanentToken for RingCX, apiAuthToken for NewBridge). |
404 | No campaign with the given campaignId exists for this company. |
502 | The dialer’s lead loader rejected the upload (HTTP failure or leadsAccepted === 0). The body includes dialerResponse with the dialer’s rejection details. |