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

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.
}