Skip to content

Custom Dialer Integration

All API requests must include a universal API key as a bearer token in the Authorization header:

Authorization: Bearer YOUR_API_KEY_HERE

If the key is missing, invalid, inactive, or not a universal-typed key, the server will respond with a 401 or 403.

https://api.outboundiq.cloud/custom

For selecting the next ANI for an outbound call, use the existing Assignment API — it already accepts the universal API key.

  • Method: POST
  • URL: /campaigns
  • Headers:
    • Authorization: Bearer YOUR_API_KEY_HERE
    • Content-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" }
  • 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" }
  • Method: GET
  • URL: /campaigns?id=YOUR_CAMPAIGN_ID

Query Params:

NameTypeDescription
idstringYour internal identifier

Example:

GET /campaigns?id=c123
  • Method: DELETE
  • URL: /campaigns

Body Schema:

type Campaign = {
// Your internal identifier
id: string;
};

Body Example:

{ "id": "c123" }
  • Method: POST
  • URL: /dispos
  • Headers:
    • Authorization: Bearer YOUR_API_KEY_HERE
    • Content-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
}
  • 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 }
  • Method: GET
  • URL: /dispos?id=YOUR_DISPO_ID

Query Params:

NameTypeDescription
idstringYour internal identifier

Example:

GET /dispos?id=d1
  • Method: DELETE
  • URL: /dispos

Body Schema:

type Dispo = {
// Your internal identifier
id: string;
};

Body Example:

{ "id": "d1" }
  • Method: POST
  • URL: /anis
  • Headers:
    • Authorization: Bearer YOUR_API_KEY_HERE
    • Content-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"
}
  • 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 }
  • Method: GET
  • URL: /anis?number=PHONE_NUMBER

Query Params:

NameTypeDescription
numberstringPhone Number (without country code)

Example:

GET /anis?number=5611234567

Success Response:

{
"success": true,
"ani": {
"number": "5611234567",
"country_code": "+1",
"inbound_group_id": "c123",
"is_branded": true,
"brand_name": "BrandX"
}
}
  • Method: DELETE
  • URL: /anis

Body Schema:

type ANI = {
// Phone Number (without country code)
number: string;
};

Body Example:

{ "number": "5611234567" }