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/2018-11-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/2018-11-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": "",
"local_center": { "tn_prefix":"",
"zipcode": "90210",
"latitude": 30,
"longitude": -130 },
"local_number_preferences": { "search_radius_miles": 20,
"restrict_to_state": true,
"allocation_fallback_strategy": "Wait" },
"max_pool_size": 15,
"tracking_url": "value",
"test_click_url": "value",
"api_key": "value"
}
]
Examples
Read a RingPool
Endpoint:
https://invoca.net/api/2018-11-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": "",
"local_center": { "tn_prefix":"",
"zipcode": "90210",
"latitude": 30,
"longitude": -130 },
"local_number_preferences": { "search_radius_miles": 20,
"restrict_to_state": true,
"allocation_fallback_strategy": "Wait" },
"max_pool_size": 15,
"tracking_url": "value",
"test_click_url": "value",
"api_key": "value"
}
Examples
Create a RingPool
Endpoint:
https://invoca.net/api/2018-11-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",
"local_center": { "tn_prefix":"",
"zipcode": "90210",
"latitude": 30,
"longitude": -130 },
"local_number_preferences": { "search_radius_miles": 20,
"restrict_to_state": true,
"allocation_fallback_strategy": "Wait" },
"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/2018-11-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/2018-11-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/2018-11-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 |
local_number_preferences |
hash |
All are optional “search_radius_miles”: An integer, greater than or equal to 0. Default is 240. Represents the number of miles from the location to search. “restrict_to_state”: A boolean. Default is true. Used to restrict search to be within state boundaries. “allocation_fallback_strategy”: “UseTollFree” or “Wait”. Default is “UseTollFree”. If we are unable to fill the RingPool using the location information provided, we will use this parameter to either fill it with TollFree (“UseTollFree”) or continue to wait until more numbers become available. |
tn_prefix_whitelist |
array of strings |
an array of stringified limiters on the boundaries of where to look for local numbers given as npa (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/2018-11-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."
}
}