This topic allows a quick reference to the Softdial Repository™ HTTP API objects.
For full details of the API, see Full Reference.
The HTTP API utilizes 4 verbs - GET, PUT, POST and DELETE - which are used following the pattern below:
Verb | CRUD equiv | Description | URI | Responses |
---|---|---|---|---|
POST | Create | Create object | /{resourceType} | 200 (OK)
409 (Conflict) - resourceType already exists. |
GET | Read | Get list of objects | /{resourceType} | 200 (OK) |
GET | Read | Get specific object | /{resourceType}/{itemName} | 200 (OK)
404 (Not found) - itemName does not exist |
PUT | Update | Create or update object | /{resourceType}/{itemName} | 200 (OK)
204 (No Content) 404 (Not Found) - itemName does not exist. |
DELETE | Delete | Delete object | /{resourceType}/{itemName} | 200 (OK)
404 (Not Found) - itemName not found or invalid. |
The following resource types are available via the API:
The resource types are described below, with their associated verb operations and expected responses:
HTTP Verb | URI | Description | Responses |
---|---|---|---|
GET | /campaign/{name}/agentDesktopSettings | Returns the Agent desktop settings for a campaign. Alternative to GET /campaign/{id}?include=true |
200 (OK) - Returns agent desktop settings for the campaign 404 (Not Found) - campaign does not exist |
POST | /campaign/{name}/agentDesktopSettings | Associate desktop settings to a campaign. Alternative to POST /campaignwith AgentDesktopSettings property |
200 (OK) - desktop settings associated successfully 404 (Not Found) - campaign does not exist |
GET | agentDesktopSetting | Returns all agentDesktopSettings | 200 (OK) - agentDesktopSettings array |
HTTP Verb | URI | Description | Responses |
---|---|---|---|
GET | /agentOutcome | Returns all agent outcomes | 200 (OK) - array of Agent Outcomes |
POST | /agentOutcome | Creates an agent outcome Show code sample { |
200 (OK) - agent outcome changed 400 (Bad Request) - agent outcome is not valid 409 (Conflict) - agent outcome already exists |
GET | /agentOutcome/{name} | Returns an agent outcome | 200 (OK) - agent outcome response 404 (Not Found) - agent outcome does not exist |
PUT | /agentOutcome/{name} | Changes an agent outcome | 200 (OK) - agent outcome changed 400 (Bad Request) - agent outcome is not valid 404 (Not Found) - agent outcome not found 409 (Conflict) - agent outcome has been updated in the meantime |
DELETE | /agentOutcome/{name} | Deletes a single agent outcome based on the ID supplied | 200 (OK) - agent outcome deleted successfully 404 (Not Found) - agent outcome not found |
HTTP Verb | URI | Description | Responses |
---|---|---|---|
POST | /auth/Login | Logs a user in | 200 (OK) - user logged in 401 (Unauthorized) - credentials are not valid |
POST | /auth/Logout | Logs a user out | 200 (OK) - user logged out 401 (Unauthorized) - user is not authenticated |
HTTP Verb | URI | Description | Responses |
---|---|---|---|
GET | /breakReason | Returns all break reasons | 20 (OK) - break reasons array |
POST | /breakReason | Creates a break reason | 200 (OK) - break reason created 400 (Bad Request) - break reason is not valid 409 (Conflict) - break reason already exists |
GET | /breakReason/{name} | Returns a break reason | 200 (OK) - break reason response 404 (Not Found) - break reason does not exist |
DELETE | /breakReason/{name} | Deletes a single break reason based on the ID supplied | 200 (OK) - break reason deleted successfully 404 (Not Found) - break reason not found |
HTTP Verb | URI | Description | Responses |
---|---|---|---|
GET | /campaign | Returns all campaigns | 200 (OK) - array of campaigns |
POST | /campaign | Creates a campaign (with agent desktop settings on property AgentDesktopSettings as an array of strings) Show code sample { |
200 (OK) - campaign created 400 (Bad Request) - campaign is not valid |
GET | /campaign/{name} | Returns a campaign | 200 (OK) - campaign response 404 (Not Found) - campaign does not exist |
PUT | /campaign/{name} | Changes a campaign | 200 (OK) - campaign changed 400 (Bad Request) - campaign is not valid 404 (Not Found) - campaign not found |
DELETE | /campaign/{name} | deletes a single campaign based on the ID supplied | 200 (OK) - campaign deleted successfully 404 (Not Found) - campaign not found |
HTTP Verb | URI | Description | Responses |
---|---|---|---|
GET | /config | Returns custom data | 200 (OK) - custom data response |
POST | /config | Creates custom data with any properties {prop1: value1, ...} | 200 (OK) - custom data created 400 (Bad Request) - custom data is not valid 409 (Conflict) - custom data already exists |
GET | /config/{name} | Returns a single custom data object based on the ID supplied | 200 (OK) - custom data response 404 (Not Found) - custom data not found |
PUT | /config/{name} | Changes custom data object | 200 (OK) - custom data updated 400 (Bad Request) - custom data not valid 404 (Not Found) - custom data not found |
DELETE | /config/{name} | Deletes a single custom data object based on the ID supplied | 200 (OK) - custom data deleted 404 (Not Found) - custom data not found |
HTTP Verb | URI | Description | Responses |
---|---|---|---|
GET | /dialingCycleOutcome | Returns all dialing cycle outcomes | 20 (OK) - array of dialing cycle outcomes |
POST | /dialingCycleOutcome | Creates a dialing cycle outcome | 200 (OK) - dialing cycle outcome changed 400 (Bad Request) - dialing cycle outcome is not valid 409 (Conflict) - dialing cycle outcome already exists |
GET | /dialingCycleOutcome/{name} | Returns a dialing cycle outcome | 200 (OK) - dialing cycle outcome response 404 (Not Found) - dialing cycle outcome does not exist |
PUT | /dialingCycleOutcome/{name} | Changes a dialing cycle outcome | 200 (OK) - dialing cycle outcome changed 400 (Bad Request) - dialing cycle outcome is not valid 404 (Not Found) - dialing cycle outcome not found 409 (Conflict) - dialing cycle outcome has been updated in the meantime |
DELETE | /dialingCycleOutcome/{name} | Deletes a single dialing cycle outcome based on the ID supplied | 200 (OK) - dialing cycle outcome deleted successfully 404 (Not Found) - dialing cycle outcome not found |
HTTP Verb | URI | Description | Responses |
---|---|---|---|
GET | /user/{name}/endpoint | Returns all endpoints of a user | 200 (OK) - endpoint array response 404 (Not Found) - user does not exist |
POST | /user/{name}/endpoint | Creates an endpoint for a user | 200 (OK) - created endpoint successfully 400 (Bad Request) - endpoint is not valid 404 (Not Found) - user does not exist |
GET | /user/{name}/endpoint/{endpointId} | Returns a single endpoint of a user | 200 (OK) - endpoint response 404 (Not Found) - user or endpoint does not exist |
PUT | /user/{name}/endpoint/{endpointId} | Update user endpoint | 200 (OK) - update succeeded 404 (Not Found) - user does not exist 409 (Conflict) - endpoint has been updated in the meantime |
HTTP Verb | URI | Description | Responses |
---|---|---|---|
GET | /group | Returns all groups (cascaded, possibly with just the immediate children of each) | 20 (OK) - group array |
POST | /group | Creates a group (with properties and a list of members (endpoints or groups)) Show code sample { |
200 (OK) - group created successfully 400 (Bad Request) - group is not valid 409 (Conflict) - group already exists |
GET | /group/{name} | Returns a group (with properties and a list of members (endpoints or groups)) | 200 (OK) - group response 404 (Not Found) - group does not exist |
PUT | /group/{name} | Changes a group (with properties and a list of members (endpoints or groups)) | 200 (OK) - group changed 400 (Bad Request) - group is not valid 404 (Not Found) - group does not exist 409 (Conflict) - group has been updated in the meantime |
DELETE | /group/{name} | Deletes a single group based on the ID supplied | 200 (OK) - group deleted successfully 404 (Not Found) - group not found |
HTTP Verb | URI | Description | Responses |
---|---|---|---|
GET | /inboundRoute | Returns all routes | 200 (OK) - array of inbound routes |
POST | /inboundRoute | Creates a route Show code sample { |
200 (OK) - route created 400 (Bad Request) - route is not valid 409 (Conflict) - route already exists |
GET | /inboundRoute/{name} | Returns a route | 200 (OK) - route response 404 (Not Found) - route does not exist |
PUT | /inboundRoute/{name} | Changes a route | 200 (OK) - route updated 400 (Bad Request) - route is not valid 404 (Not Found) - route not found |
DELETE | /inboundRoute/{name} | 200 (OK) - route deleted 404 (Not Found) - route not found |
HTTP Verb | URI | Description | Responses |
---|---|---|---|
GET | /mediaType | Returns all media types | 200 (OK) - array of media types |
POST | /mediaType | Creates a media type | 200 (OK) - media type created 400 (Bad Request) - media type is not valid 409 (Conflict) - media type already exists |
GET | /mediaType/{name} | Returns the media type with the specified Id | 200 (OK) - media type response 404 (Not Found) - media type not found |
PUT | /mediaType/{name} | Updates a media type | 200 (OK) - media type updated 400 (Bad Request) - media type is not valid 409 (Conflict) - media type has been updated in the meantime |
DELETE | /mediaType/{name} | Deletes a media type | 200 (OK) - media type deleted 404 (Not Found) - media type not found |
HTTP Verb | URI | Description | Responses |
---|---|---|---|
GET | /campaign/{name}/queue | Returns the queues of the specified campaign (cascaded, with a list of members of each) | 200 (OK) - list of queues 404 (Not Found) - campaign does not exist |
POST | /campaign/{name}/queue | Creates a new queue for the specified campaign (with properties and a list of members) Show code sample { |
200 (OK) - created queue 404 (Not Found) - campaign does not exist 409 (Conflict) - queue has been updated in the meantime |
GET | /campaign/{name}/queue/{queueId} | Returns the queue of the specified campaign (with properties and a list of members) | 200 (OK) - the specified queue 404 (Not Found) - campaign or queue does not exist |
PUT | /campaign/{name}/queue/{queueId} | Update the queue of the specified campaign | 200 (OK) - queue updated 404 (Not Found) - campaign or queue does not exist |
DELETE | /campaign/{name}/queue/{queueId} | Delete the queue of the specified campaign | 200 (OK) - queue deleted successfully 404 (Not Found) - campaign or queue does not exist |
HTTP Verb | URI | Description | Responses |
---|---|---|---|
GET | /skill | Returns all skills | 200 (OK) - skill array |
POST | /skill | Creates a skill | 200 (OK) - skill created successfully 400 (Bad Request) - skill is not valid 409 (Conflict) - skill already exists |
GET | /skill/{name} | Returns a skill | 200 (OK) - skill response 404 (Not Found) - skill does not exist |
POST | /skill/{name} | Associate agent to skill | 200 (OK) - skill response 404 (Not Found) - skill or agent does not exist |
PUT | /skill/{name} | Changes a skill | 200 (OK) - skill changed 400 (Bad Request) - skill is not valid 404 (Not Found) - skill does not exist 409 (Conflict) - skill has been updated in the meantime |
DELETE | /skill/{name} | Deletes a single skill based on the ID supplied | 200 (OK) - skill deleted successfully 404 (Not Found) - skill not found |
HTTP Verb | URI | Description | Responses |
---|---|---|---|
GET | /sound | Returns all sounds | 200 (OK) - array of sounds |
POST | /sound | Creates a sound | 200 (OK) - sound created 400 (Bad Request) - sound is not valid 409 (Conflict) - sound already exists |
GET | /sound/{name} | Returns a sound | 200 (OK) - sound response 404 (Not Found) - sound does not exist |
PUT | /sound/{name} | Updates a sound | 200 (OK) - sound updated 400 (Bad Request) - sound is not valid 404 (Not Found) - sound not found 409 (Conflict) - sound has been updated in the meantime |
DELETE | /sound/{name} | Deletes a single sound based on the ID supplied | 200 (OK) - sound deleted 404 (Not Found) - sound not found |
HTTP Verb | URI | Description | Responses |
---|---|---|---|
GET | /staticConfig | Returns all static messages (to send to Callgem Controller on tenant startup). | 200 (OK) - array of static configs |
POST | /staticConfig | Creates a static config Show code sample { |
200 (OK) - static config created 400 (Bad Request) - static config is not valid 409 (Conflict) - static config already exists |
GET | /staticConfig/{name} | Returns a static config | 200 (OK) - static config response 404 (Not Found) - static config does not exist |
PUT | /staticConfig/{name} | Changes a static config | 200 (OK) - static config updated 400 (Bad Request) - static config is not valid 404 (Not Found) - static config not found 409 (Conflict) - static config has been updated in the meantime |
DELETE | /staticConfig/{name} | Deletes a single static config based on the ID supplied | 200 (OK) - static config deleted 404 (Not Found) - static config not found |
HTTP Verb | URI | Description | Responses |
---|---|---|---|
GET | /tenant | Returns all tenants | 200 (OK) - array of inbound tenants |
POST | /tenant | Creates a tenant | 200 (OK) - tenant created 400 (Bad Request) - tenant is not valid 409 (Conflict) - tenant already exists |
GET | /tenant/{name} | Returns a tenant | 200 (OK) - tenant response 404 (Not Found) - tenant does not exist |
PUT | /tenant/{name} | Changes a tenant | 200 (OK) - tenant updated 400 (Bad Request) - tenant is not valid 404 (Not Found) - tenant not found |
DELETE | /tenant/{name} | Deletes a single tenant based on the ID supplied | 200 (OK) - tenant deleted 404 (Not Found) - tenant not found |
HTTP Verb | URI | Description | Responses |
---|---|---|---|
GET | /user | Returns all users | 200 (OK) - user array response |
POST | /user | Creates a new user | 200 (OK) - user created 400 (Bad Request) - user is not valid 409 (Conflict) - user already exists |
GET | /user/{name} | Returns a user with the specified ID | 200 (OK) - user response 404 (Not Found) - user does not exist |
Show code sample
/user/t1?include=true { |
|||
PUT | /user/{name} | Changes a user | 200 (OK) - user updated successfully 400 (Bad Request) - user is not valid 409 (Conflict) - user has been updated in the meantime |
DELETE | /user/{name} | Deletes a single user based on the ID supplied | 200 (OK) - user deleted 404 (Not Found) - user not found |
GET | /user/withClaim | Returns all users with the specified claim (permission) | 200 (OK) - user array response |
GET | /user/withSingleClaim | Returns all users with only the specified claim (permission) | 200 (OK) - user array response |
GET | /user/{name}/skill | Returns all skills of a user | 200 (OK) - skill array response |
The following optional query parameters are available:
Following convention, the parameter list must be
e.g.
GET ../user/t1?include=true&limit=2
Parameter | Description | Type | Example |
---|---|---|---|
include | Indicates if the children node should be included | boolean | include=true |
page | Indicates a required page number | integer | page=6 |
limit | Indicates the maximum number of results to return. Defaults to 50 | integer | limit=2 |
filter | Returns only objects that match filter. The string is an array of JSON objects (property, value, operator) where operator is one of
|
string | filter=[{"property": "Name", "value": "Administrator", "operator": "eq"}] |
useOr | Indicates whether the server should perform an OR comparison instead of AND | boolean | useOr=true |
sort | Indicates the properties to sort by. The string is an array of JSON objects (property, ascending) where ascending is one of
Sorting will be performed in the order presented in the sort string |
string | sort=[{"property": "colA", "ascending": "ASC"},{"property": "colB", "ascending": "xyz"}] |