PBX API

The PBX API was added in version 15.0 and allows developers to create applications that interact, change and update your PBX. There are two models that are supported by the PBX and each model is depended on the underlying module code. Meaning that, for example, the Core module might not support any RESTFul methods, instead opting to support GraphQL only. This is up to the module designer modules can support both GraphQL, RESTful, both or neither. Again it is up to the module designer/maintainer

The standardization of authentication through the PBX to the API is done through the commonly used OAuth 2.0 specification. Each module can also use OAuth scopes to provide further permissions for what actions are being taken. We encourage you to utilize scopes to help prevent data leakage. For more information about how OAuth works in the PBX see Authentication (OAuth 2.0)

There are two types of API specifications in use in the PBX:

  • GraphQL (Preferred) – This specification is utilized by the FreePBX development team and is where new features and calls go moving forward.

  • RESTFul – This exists for backwards compatibility or if a developer is not comfortable with GraphQL

Return to Documentation Home I Return to Sangoma Support