Using the API

Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request.

Base URL

To use the FreeClimb REST API, send HTTP requests to the base URL:

https://www.freeclimb.com/apiserver

FreeClimb is served over HTTPS to ensure that your data is secure.

Request Body and JSON

Request bodies and Application responses to webhooks should be encoded in JSON, adherent to RFC 8259. This includes using the UTF-8 character set. The links below can be used for more information:

Json:

https://datatracker.ietf.org/doc/html/rfc8259

UTF-8:

https://datatracker.ietf.org/doc/html/rfc3629

UTF-8 compliance can be an issue with language support and emojis.

Authentication

HTTP requests to the FreeClimb REST API are protected with HTTP Basic authentication --- you use your FreeClimb-generated account ID and API key to authenticate each HTTP request. You can view your credentials under the API credentials section in your Dashboard.

Parent/Child callID

FreeClimb provides the application developer a method for maintaining relationships between calls. For example, when call A initiates a PerCL OutDial command to create a new call B, a parent-child relationship is created between them: Call A is considered the parent of Call B (the child call). FreeClimb maintains this relationship for the life of the call and often echoes this relationship back to the application in various webhooks invoked during the life of the call: the webhook invoked for call B will also report back that it has call A as its parent.

The parent-child nature of calls can extend further. A call that has a parent call could be using PerCL to create another call. This relationship can be fully seen on the OutDialStart webhook that is invoked after the Terminal command Outdial. It shows the id of the call used to do the outdial, i.e., itself, as "callId" and then also shows its parent as "parentCallId" and then the new call that is being dialed (and now also is a child) as "dialCallId."

While the REST API is able to create new calls without a relationship to another call, it does offer the ability to create a relationship with a live call via the optional parameter parentCallId.

In addition to providing a FreeClimb application the ability to maintain a hierarchy of calls, establishing relationships between calls can also be used to provide the FreeClimb platform a "hint" about how these calls might be used going forward. An established parent-child relationship between two calls can reduce the latency when adding that child call to a conference that has the parent or siblings.

📘

Testing the API

The API Explorer Try It button requires you authenticate with your API credentials, and asks for your username and password. Use your account ID as your username, and your API key as your password.