Ringpools

Similar to Promo Numbers, because these are generated by Invoca, the interface is idempotent.

Property Type Value
id integer (read-only) The internal Invoca id of the RingPool.
id_from_network string (required) Network specific id of the RingPool. Unique within network. Not required when auto-generation is enabled at network level.
name string Arbitrary string. Names the RingPool.
pool_type string (Required) One of: Search, SearchKeyword, Custom, CustomWithSearchTracking, ReferralDomain, ReferralDomainWithSearchTracking.
destination_type string (Required) one of: Advertiser, API.
destination_url url like, https://www.invoca.com.
object_url string (read-only) URL for reaching the RingPool in the UI.
lifetime_seconds integer The guaranteed minimum time that the number will be allocated for this RingPool.
max_pool_size integer The maximum amount of phone numbers to be allotted at one time.
param1 string Dynamic number pools have attributes named param1 through param10 for custom use by the user.
preferred boolean true or false. Selects this RingPool if the advertiser has multiple RingPools for the campaign and the web integration code does not specifiy which pool to use.
test_click_url string RingPool tracking link.
sample_api_url string RingPool API endpoint.
is_first_preference boolean Designates the preferred RingPool to be used for general traffic.

Endpoint:

https://invoca.net/api/2016-10-01/<network_id>/advertisers/<advertiser_id_from_network>/advertiser_campaigns/<advertiser_campaign_id_from_network>/ring_pools/<ring_pool_id_from_network>.json

Examples

Read all RingPools as an array

Endpoint:

https://invoca.net/api/2016-10-01/<network_id>/advertisers/<advertiser_id_from_network>/advertiser_campaigns/<advertiser_campaign_id_from_network>/ring_pools.json

Response Code: 200

Response Body:

[
  {
    "id": "value",
    "id_from_network": "5432",
    "pool_type": "value",
    "is_first_preference": true,
    "destination_url": "",
    "object_url": "https://invoca.net/a_campaigns/ring_pools/11",
    "preferred": true,
    "sample_api_url": "value",
    "destination_type": "value",
    "lifetime_seconds": 1800,
    "name": "value",
    "param1": "",
    "param2": "",
    "param3": "",
    "param4": "",
    "param5": "",
    "param6": "",
    "param7": "",
    "param8": "",
    "param9": "",
    "param10": "",
    "max_pool_size": 15,
    "tracking_url": "value",
    "test_click_url": "value",
    "api_key": "value"
  }
]

Examples

Read a RingPool

Endpoint:

https://invoca.net/api/2016-10-01/<network_id>/advertisers/<advertiser_id_from_network>/advertiser_campaigns/<advertiser_campaign_id_from_network>/ring_pools/<ring_pool_id_from_network>.json

Response Code: 200

Response Body:

{
  "id": "value",
  "id_from_network": "5432",
  "pool_type": "value",
  "is_first_preference": true,
  "destination_url": "",
  "object_url": "https://invoca.net/a_campaigns/ring_pools/11",
  "preferred": true,
  "sample_api_url": "value",
  "destination_type": "value",
  "lifetime_seconds": 1800,
  "name": "value",
  "param1": "",
  "param2": "",
  "param3": "",
  "param4": "",
  "param5": "",
  "param6": "",
  "param7": "",
  "param8": "",
  "param9": "",
  "param10": "",
  "max_pool_size": 15,
  "tracking_url": "value",
  "test_click_url": "value",
  "api_key": "value"
}

Examples

Create a RingPool

Endpoint:

https://invoca.net/api/2016-10-01/<network_id>/advertisers/<advertiser_id_from_network>/advertiser_campaigns/<advertiser_campaign_id_from_network>/ring_pools.json

Format: application/json

Request Body:

{
  "id_from_network": "12",
  "param1": "q",
  "param2": "test",
  "param3": "param3",
  "param4": "param4",
  "param5": "param5",
  "param6": "param6",
  "param7": "param7",
  "param8": "param8",
  "param9": "param9",
  "param10": "param10",
  "pool_type": "SearchKeyword",
  "preferred": true,
  "name": "Invoca Example RingPool",
  "destination_url": "https://www.invoca.com",
  "max_pool_size": 15,
  "tracking_url": "https://www.invoca.com",
  "destination_type": "Advertiser",
  "lifetime_seconds": 1800
}

Response Code: 201

Response Body:

Same as a GET response, includes all the RingPool properties.

Examples

Update a RingPool

Endpoint:

https://invoca.net/api/2016-10-01/<network_id>/advertisers/<advertiser_id_from_network>/advertiser_campaigns/<advertiser_campaign_id_from_network>/ring_pools/<ring_pool_id_from_network>.json

Format: application/json

Request Body:

{
  "id_from_network": "12",
  "param1": "updated",
  "param2": "test",
  "param3": "param3",
  "param4": "param4",
  "param5": "param5",
  "param6": "param6",
  "param7": "param7",
  "param8": "param8",
  "param9": "param9",
  "param10": "param10",
  "pool_type": "SearchKeyword",
  "preferred": true,
  "name": "Invoca Example RingPool Updated",
  "destination_url": "https://www.invoca.com",
  "max_pool_size": 15,
  "tracking_url": "https://www.invoca.com",
  "destination_type": "Advertiser",
  "lifetime_seconds": 1800
}

Response Code: 200

Response Body:

Same as a GET response, includes all the RingPool properties.

Examples

Delete a RingPool

Endpoint:

https://invoca.net/api/2016-10-01/<network_id>/advertisers/<advertiser_id_from_network>/advertiser_campaigns/<advertiser_campaign_id_from_network>/ring_pools/<ring_pool_id_from_network>.json

Format: application/json

Response Code: 200

Response Body:

{
}

Local RingPool API

Local RingPool Creation

The API provides the ability to create RingPools with additional information that specifies them as being ‘Local’ RingPools. These Local RingPools use local numbers that are determined by the parameters passed in by the user of the API. If a local phone number cannot be found the pool fills those slots (max_pool_size) with toll free numbers instead. When you POST with the correct parameters the Local RingPool is created and the allocation of local numbers happens later (approx. 10 minutes). This capability is JSON-only.

POST

https://invoca.net/api/2016-10-01/<network_id>/advertisers/<advertiser_id_from_network>/advertiser_campaigns/<advertiser_campaign_id_from_network>/ring_pools.json

Content Type: application/json

Property Type Value
id integer (read-only) The internal Invoca id of the RingPool.
id_from_network string (required) Network specific id of the RingPool. Unique within network. Not required when auto-generation is enabled at network level.
name string Arbitrary string. Names the RingPool.
pool_type string (Required)

One of:

Search,

SearchKeyword,

Custom,

CustomWithSearchTracking,

ReferralDomain,

ReferralDomainWithSearchTracking

destination_type string (Required)

One of:

Advertiser,

API

destination_url url like, https://www.invoca.com
object_url string (read-only) URL for reaching the RingPool in the UI.
lifetime_seconds integer The guaranteed minimum time that the number will be allocated for this RingPool
max_pool_size integer The maximum amount of phone numbers to be allotted at one time
param1 string Dynamic number pools have attributes named param1 through param10 for custom use by the user
preferred boolean true or false. Selects this RingPool if the advertiser has multiple RingPools for the campaign and the web integration code does not specifiy which pool to use.
test_click_url string RingPool tracking link.
sample_api_url string RingPool API endpoint.
is_first_preference boolean Designates the preferred RingPool to be used for general traffic.
local_center hash

Requires one of the following

Latitude & Longitude required together

A filled field determines the center to start looking for local numbers at.

“tn_prefix”: an npa

“zipcode”: a valid zipcode

“latitude”: a valid latitude

“longitude”: a valid longitude

tn_prefix_whitelist array of strings an array of stringified limiters on the boundaries of where to look for local numbers given as npas (ex. [“805”, “212”])

Response Code: 200

Request Body

{
 "id_from_network": "395",
 "param1": "gclid",
 "pool_type": "Custom",
 "preferred": "true",
 "name": "India DNP",
 "destination_url": "https://www.invoca.com",
 "tracking_url": "https://www.invoca.com",
 "max_pool_size": "3",
 "destination_type": "Advertiser",
 "local_center": {"latitude": 45, "longitude": 45},
 "tn_prefix_whitelist": ["455"]
}

Response Body

Same as a GET response, includes all the RingPool properties.

Error Handling

Forbidden – 403:

POST

https://invoca.net/api/2016-10-01/<network_id>/advertisers/<advertiser_id_from_network>/advertiser_campaigns/<advertiser_campaign_id_from_network>/ring_pools.json

Content Type: application/json

Response Code: 403

Request Body

{
  "id_from_network": "395",
  "param1": "gclid",
  "pool_type": "Custom",
  "preferred": "true",
  "name": "India DNP",
  "destination_url": "https://www.invoca.com",
  "tracking_url": "https://www.invoca.com",
  "max_pool_size": "3",
  "destination_type": "Advertiser",
  "local_center": {"bad_key": ""},
  "tn_prefix_whitelist": ["455"]
}

Response Body

{
  "errors": {
     "class": "RecordInvalid",
     "invalid_data": "Invalid Key in Local Center."
  }
}