Reseller
Horn’s multi-tenant architecture allows you to create multiple clients (i.e. sub-accounts) under your own account. Check out the following sections to learn more about managing your clients tree under horn.
Note
The Reseller API must be enabled for your account by the Horn staff. Contact us if you want to use it and we’ll be happy to turn it on for you!
Create a new client
- POST /clients/create
Each logically distinct organization that uses horn is represented in the system as a “client”, with a “clientId” that limits the scope of operations the specified client. (For most API calls, the clientId is inferred from the authentication credentials.) Clients are arranged hierarchically, in order to easily support networks of horn partners. This call creates a new client, automatically locating it under the client of the caller (that is, as a “child”) in that hierarchy. Requires the “Partner Admin” role.
- Request JSON Object:
name (string) – Name of the new client to be created
- Response JSON Object:
id (string) – Client identifier
Enable or disable service for a child client
- POST /clients/(string: clientId)/service/(string: state)
While service is disabled, runtime meeting operations and many management actions (e.g. new channel or user creation) will not work, and will return an HTTP 403 error.
- Parameters:
clientId (string) – The clientId to modify
state (string) – “enable” or “disable”
Get client details
- GET /clients/(string: clientId)
Return detailed information for a specific client.
- Parameters:
clientId (string) – The clientId for which details are requested
- Response JSON Object:
name (string) – Name that allow to easily distinct client
clientId (string) – Client identifier
details (option[clientdetails]) – Basic information about Client
disabled (option[boolean]) – Information if service has been disabled
parentId (option[string]) – Id of parent client
List clients
- GET /clients/search
List all clients matching a (potentially null) filter criteria. This call requires the “Partner Admin” role, and only examines clients that are children of the authenticated caller”s” client.
- Query Parameters:
query (string) – If defined, only show clients whose name match the provided substring
offset (string) – For paging
limit (string) – For paging, number of items returned
Response:
{ total: number results: list }
where total is a total amount of elements matching criteria results objects has following fields:
{ parent: option[string] // Parent of given client uniqueUsersHandle: boolean // If true, users handle uniqueness is required. name: string // Client name validator: option[string] // Custom Auth Validator assigned to client dialOut: boolean // If true, every newly created channel will have the "dial-out" feature enabled by default. id: string // Unique identification of client friendlyURLs: boolean // If true, friendly URLs are enabled in this client context disabled: boolean // If true, service is disabled for this client (and all its children) midi: boolean // If true, every newly created channel will have the "midi" feature enabled by default. dialIn: boolean // If true, every newly created channel will have the "dial-in" feature enabled by default. events: boolean // If true, the Events API is enabled for this client. }