Custom Dialer Integration
Authentication
Section titled “Authentication”All API 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.cloud/customFor selecting the next ANI for an outbound call, use the existing Assignment API — it already accepts the universal API key.
Endpoints
Section titled “Endpoints”Create Campaign
Section titled “Create Campaign”- Method:
POST - URL:
/campaigns - Headers:
Authorization: Bearer YOUR_API_KEY_HEREContent-Type: application/json
Body Schema:
type Campaign = { // Your internal identifier id: string; // Campaign name name: string; // Call direction type: "Inbound" | "Outbound" | "Blended"; // Associated Inbound Pool/Campaign's ID (internal identifier) inbound_pool_id?: string;};Body Example:
{ "id": "c123", "name": "Sales 2025", "type": "Outbound" }Update Campaign
Section titled “Update Campaign”- Method:
PUT - URL:
/campaigns
Body Schema:
type Campaign = { // Your internal identifier id: string; // Campaign name name?: string; // Call direction type?: "Inbound" | "Outbound" | "Blended"; // Associated Inbound Pool/Campaign's ID inbound_pool_id?: string;};Body Example:
{ "id": "c123", "name": "Something Else" }Get Campaign
Section titled “Get Campaign”- Method:
GET - URL:
/campaigns?id=YOUR_CAMPAIGN_ID
Query Params:
| Name | Type | Description |
|---|---|---|
id | string | Your internal identifier |
Example:
GET /campaigns?id=c123Delete Campaign
Section titled “Delete Campaign”- Method:
DELETE - URL:
/campaigns
Body Schema:
type Campaign = { // Your internal identifier id: string;};Body Example:
{ "id": "c123" }Create Dispo
Section titled “Create Dispo”- Method:
POST - URL:
/dispos - Headers:
Authorization: Bearer YOUR_API_KEY_HEREContent-Type: application/json
Body Schema:
type Dispo = { // Your internal identifier id: string; // Disposition name name: string; // Disposition Trigger type: "System" | "Agent"; // Disposition is a contact with the prospect (or not) contact: boolean; // Disposition is a success (or partial success on a qualification stage, ie: App Set) success: boolean;};Body Example:
{ "id": "d1", "name": "Sale Closed", "type": "Agent", "contact": true, "success": true}Update Dispo
Section titled “Update Dispo”- Method:
PUT - URL:
/dispos
Body Schema:
type Dispo = { // Your internal identifier id: string; // Disposition name name?: string; // Disposition Trigger type?: "System" | "Agent"; // Disposition is a contact with the prospect (or not) contact?: boolean; // Disposition is a success (or partial success on a qualification stage, ie: App Set) success?: boolean;};Body Example:
{ "id": "d1", "contact": false }Get Dispo
Section titled “Get Dispo”- Method:
GET - URL:
/dispos?id=YOUR_DISPO_ID
Query Params:
| Name | Type | Description |
|---|---|---|
id | string | Your internal identifier |
Example:
GET /dispos?id=d1Delete Dispo
Section titled “Delete Dispo”- Method:
DELETE - URL:
/dispos
Body Schema:
type Dispo = { // Your internal identifier id: string;};Body Example:
{ "id": "d1" }Create ANI
Section titled “Create ANI”- Method:
POST - URL:
/anis - Headers:
Authorization: Bearer YOUR_API_KEY_HEREContent-Type: application/json
Body Schema:
type ANI = { // USA/Canada or UK are the covered regions country_code: "+1" | "+44"; // Phone Number (without country code) number: string; // The Campaign internal identifier that the number belongs to inbound_group_id: string; // Number is managed by a Number Reputation Company is_branded?: boolean; // Reputation Brand Name brand_name?: string; // Carrier Code (accepted but not currently stored) carrier_id?: string;};Body Example:
{ "country_code": "+1", "number": "5611234567", "inbound_group_id": "c123", "is_branded": true, "brand_name": "BrandX"}Update ANI
Section titled “Update ANI”- Method:
PUT - URL:
/anis
Body Schema:
type ANI = { // Phone Number (without country code) number: string; // USA/Canada or UK are the covered regions country_code?: "+1" | "+44"; // The Campaign internal identifier that the number belongs to inbound_group_id?: string; // Number is managed by a Number Reputation Company is_branded?: boolean; // Reputation Brand Name brand_name?: string; // Carrier Code (accepted but not currently stored) carrier_id?: string;};Body Example:
{ "number": "5611234567", "is_branded": false }Get ANI
Section titled “Get ANI”- Method:
GET - URL:
/anis?number=PHONE_NUMBER
Query Params:
| Name | Type | Description |
|---|---|---|
number | string | Phone Number (without country code) |
Example:
GET /anis?number=5611234567Success Response:
{ "success": true, "ani": { "number": "5611234567", "country_code": "+1", "inbound_group_id": "c123", "is_branded": true, "brand_name": "BrandX" }}Delete ANI
Section titled “Delete ANI”- Method:
DELETE - URL:
/anis
Body Schema:
type ANI = { // Phone Number (without country code) number: string;};Body Example:
{ "number": "5611234567" }