supla / api-client
Installs: 910
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 4
Forks: 2
Open Issues: 2
pkg:composer/supla/api-client
Requires
- php: ^7.4 || ^8.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- phpunit/phpunit: ^8.0 || ^9.0
This package is not auto-updated.
Last update: 2025-10-31 15:10:41 UTC
README
Your home connected. www.supla.org
Installation
Requires PHP 7.4 or later.
Install with Composer.
Getting Started
require_once(__DIR__ . '/vendor/autoload.php'); use Supla\ApiClient\Api\ChannelsApi; // Get access token from OAuth flow or use a Personal Access Token $accessToken = '<YOUR_ACCESS_TOKEN_HERE>'; $config = Supla\ApiClient\Configuration::getDefaultConfiguration()->setAccessToken($accessToken); $apiInstance = new ChannelsApi(new GuzzleHttp\Client(), $config); try { $result = $apiInstance->getChannels(); print_r($result); } catch (Exception $e) { echo 'Exception when calling SUPLA API: ', $e->getMessage(), PHP_EOL; }
Examples
See the examples folder for more.
API Endpoints
All URIs are relative to https://YOUR_SUPLA_SERVER/api/v3.
| Class | Method | HTTP request | Description |
|---|---|---|---|
| AccessIdentifiersApi | createAccessIdentifier | POST /accessids | Create a new Access Identifier |
| AccessIdentifiersApi | deleteAccessIdentifier | DELETE /accessids/{id} | Delete the access identifier |
| AccessIdentifiersApi | getAccessIdentifier | GET /accessids/{id} | Get AID by ID |
| AccessIdentifiersApi | getAccessIdentifiers | GET /accessids | Get Access Identifiers |
| AccessIdentifiersApi | updateAccessIdentifier | PUT /accessids/{id} | Update the access identifier |
| ChannelGroupsApi | createChannelGroup | POST /channel-groups | Create a new channel group |
| ChannelGroupsApi | deleteChannelGroup | DELETE /channel-groups/{id} | Delete the channel group |
| ChannelGroupsApi | executeActionOnChannelGroup | PATCH /channel-groups/{id} | |
| ChannelGroupsApi | getChannelGroup | GET /channel-groups/{id} | Get Channel Group |
| ChannelGroupsApi | getChannelGroupDirectLinks | GET /channel-groups/{channelGroup}/direct-links | Get channel group direct links |
| ChannelGroupsApi | getChannelGroupScenes | GET /channel-groups/{channelGroup}/scenes | Get channel group scenes |
| ChannelGroupsApi | getChannelGroups | GET /channel-groups | Get Channel Groups |
| ChannelGroupsApi | updateChannelGroup | PUT /channel-groups/{id} | Update the channel group |
| ChannelsApi | configureChannel | PATCH /channels/{id}/settings | |
| ChannelsApi | createChannelReaction | POST /channels/{channel}/reactions | Create channel reaction |
| ChannelsApi | deleteChannel | DELETE /channels/{id} | Delete the channel |
| ChannelsApi | deleteChannelMeasurementLogs | DELETE /channels/{channel}/measurement-logs | Delete channel measurement logs. |
| ChannelsApi | deleteChannelReaction | DELETE /channels/{channel}/reactions/{reaction} | Delete channel reaction |
| ChannelsApi | downloadChannelMeasurementLogs | GET /channels/{channel}/measurement-logs-download | Get measurement logs as a zipped CSV file. |
| ChannelsApi | executeAction | PATCH /channels/{id} | |
| ChannelsApi | executeSubDeviceAction | PATCH /channels/{channelId}/subdevice | |
| ChannelsApi | getChannel | GET /channels/{id} | Get Channel |
| ChannelsApi | getChannelChannelGroups | GET /channels/{id}/channel-groups | Get Channel Groups that the given channel belongs to |
| ChannelsApi | getChannelDirectLinks | GET /channels/{channel}/direct-links | Get channel direct links |
| ChannelsApi | getChannelMeasurementLogs | GET /channels/{channel}/measurement-logs | Get channel measurement logs. |
| ChannelsApi | getChannelNotifications | GET /channels/{channel}/notifications | |
| ChannelsApi | getChannelReaction | GET /channels/{channel}/reactions/{reaction} | Get channel reaction |
| ChannelsApi | getChannelReactions | GET /channels/{channel}/reactions | Get channel reactions |
| ChannelsApi | getChannelScenes | GET /channels/{channel}/scenes | Get channel scenes |
| ChannelsApi | getChannels | GET /channels | Get Channels |
| ChannelsApi | getChannelsStates | GET /channels/states | Get Channels states |
| ChannelsApi | getReactions | GET /reactions | Get reactions |
| ChannelsApi | updateChannel | PUT /channels/{id} | |
| ChannelsApi | updateChannelReaction | PUT /channels/{channel}/reactions/{reaction} | Update channel reaction |
| ClientAppsApi | deleteClientApp | DELETE /client-apps/{id} | Delete the client app |
| ClientAppsApi | getClientApps | GET /client-apps | Get Client Apps |
| ClientAppsApi | updateClientApp | PUT /client-apps/{id} | Update the client app |
| DevicesApi | deleteDevice | DELETE /iodevices/{id} | Delete the device |
| DevicesApi | executeDeviceAction | PATCH /iodevices/{id} | |
| DevicesApi | getIoDevice | GET /iodevices/{id} | Get Device |
| DevicesApi | getIoDeviceNotifications | GET /iodevices/{device}/notifications | |
| DevicesApi | getIoDevices | GET /iodevices | Get Devices |
| DevicesApi | getSubDevices | GET /subdevices | |
| DevicesApi | updateDevice | PUT /iodevices/{id} | |
| DirectLinksApi | getDirectLink | GET /direct-links/{directLink} | Get direct link |
| DirectLinksApi | getDirectLinks | GET /direct-links | Get Direct Links |
| EnumsApi | getActionsEnum | GET /enum/actions | |
| EnumsApi | getChannelTypesEnum | GET /enum/channel-types | |
| EnumsApi | getFunctionsEnum | GET /enum/functions | |
| IntegrationsApi | createMqttBrokerCredentials | POST /integrations/mqtt-credentials | Creates MQTT Broker credentials for the OAuth Client. |
| LocationsApi | createLocation | POST /locations | Create a new location |
| LocationsApi | deleteLocation | DELETE /locations/{id} | Delete the location |
| LocationsApi | getLocation | GET /locations/{id} | Get location by ID |
| LocationsApi | getLocations | GET /locations | Get locations |
| LocationsApi | updateLocation | PUT /locations/{id} | Update the location |
| NotificationsApi | getNotification | GET /notifications/{id} | Get Notification |
| NotificationsApi | sendNotification | PATCH /notifications | Send a notification. |
| NotificationsApi | updateNotification | PUT /notifications/{notification} | |
| OAuthApi | issueAccessToken | POST /oauth/v2/token | Issues an access token based on authorization_code or refresh_token. |
| ScenesApi | createScene | POST /scenes | Create a scene |
| ScenesApi | deleteScene | DELETE /scenes/{scene} | Delete the scene |
| ScenesApi | executeScene | PATCH /scenes/{scene} | |
| ScenesApi | getScene | GET /scenes/{scene} | Get Scene |
| ScenesApi | getSceneDirectLinks | GET /scenes/{scene}/direct-links | Get scene direct links |
| ScenesApi | getSceneScenes | GET /scenes/{scene}/scenes | Get scene scenes |
| ScenesApi | getScenes | GET /scenes | Get Scenes |
| ScenesApi | updateScene | PUT /scenes/{scene} | Update the scene |
| SchedulesApi | getSchedules | GET /schedules | Get Schedules |
| ServerApi | getServerInfo | GET /server-info | Get the server info |
| ServerApi | getSuplaServerStatus | GET /server-status | Get the SUPLA Server status |
| ServerApi | getTokenInfo | GET /token-info | Returns information about used access token |
| UserIconsApi | createUserIcon | POST /user-icons | Create a new User Icon |
| UserIconsApi | createUserIconBase64 | POST /user-icons.base64 | Create a new User Icon sent in Base64 format. |
| UserIconsApi | deleteUserIcon | DELETE /user-icons/{id} | Delete the User Icon |
| UserIconsApi | getUserIcon | GET /user-icons/{id} | Get User Icon |
| UserIconsApi | getUserIconImage | GET /user-icons/{id}/{imageIndex} | Get User Icon image at specified index |
| UserIconsApi | getUserIcons | GET /user-icons | List User Icons |
| UsersApi | getCurrentUser | GET /users/current | Get info about user for the token. |
Models
- AccessIdentifier
- AccessIdentifierRelationsCount
- AccessTokenRequestBody
- ActionableSubject
- ActionableSubjectTypeNames
- ActiveHoursDef
- Channel
- ChannelActionParams
- ChannelActionParamsCopy
- ChannelActionParamsDimmer
- ChannelActionParamsDuration
- ChannelActionParamsPercentage
- ChannelActionParamsPercentageAndTilt
- ChannelActionParamsRgbw
- ChannelActionParamsRgbwOneOf
- ChannelActionParamsRgbwOneOf1
- ChannelActionParamsRgbwOneOf2
- ChannelActionParamsRgbwOneOf2Hsv
- ChannelActionParamsRgbwOneOf3
- ChannelActionParamsRgbwOneOf3Rgb
- ChannelActionParamsRgbwOneOfColor
- ChannelActionParamsSend
- ChannelConfig
- ChannelConfigActionTrigger
- ChannelConfigAlexaSettings
- ChannelConfigAlexaSettingsAlexa
- ChannelConfigControllingTheGate
- ChannelConfigControllingTheGateClosingRule
- ChannelConfigElectricityMeter
- ChannelConfigFacadeBlinds
- ChannelConfigFacadeBlindsTimeMargin
- ChannelConfigGeneralPurposeMeasurement
- ChannelConfigGeneralPurposeMeasurementDefaults
- ChannelConfigGeneralPurposeMeter
- ChannelConfigGoogleHomeSettings
- ChannelConfigGoogleHomeSettingsGoogleHome
- ChannelConfigHumidity
- ChannelConfigHumidityAndThermometer
- ChannelConfigHvacThermostat
- ChannelConfigHvacThermostatSchedule
- ChannelConfigHvacThermostatTemperatureConstraints
- ChannelConfigHvacThermostatTemperatures
- ChannelConfigImpulseCounter
- ChannelConfigInvertedLogic
- ChannelConfigRollerShutter
- ChannelConfigStaircaseTimer
- ChannelConfigThermometer
- ChannelFunction
- ChannelFunctionAction
- ChannelGroup
- ChannelGroupRelationsCount
- ChannelRelationsCount
- ChannelState
- ChannelStateBrightness
- ChannelStateColor
- ChannelStateColorAndBrightness
- ChannelStateConnected
- ChannelStateDepth
- ChannelStateDistance
- ChannelStateDouble
- ChannelStateElectricityMeter
- ChannelStateElectricityMeterPhase
- ChannelStateFacadeBlind
- ChannelStateHumidity
- ChannelStateHumidityAndTemperature
- ChannelStateHvac
- ChannelStateImpulseCounter
- ChannelStateOnOff
- ChannelStateRelay
- ChannelStateRollerShutter
- ChannelStateSensor
- ChannelStateSensorPartial
- ChannelStateTemperature
- ChannelStateValve
- ChannelType
- ClientApp
- ConfigureChannelRequest
- CreateChannelGroupRequest
- CreateChannelReactionRequest
- CreateChannelReactionRequestActionParam
- CreateMqttBrokerCredentials200Response
- CreateSceneRequest
- CreateSceneRequestOperationsInner
- CreateUserIconBase64Request
- Device
- DeviceConfig
- DeviceConfigHomeScreen
- DeviceConfigScreenBrightness
- DeviceConfigUserInterface
- DeviceConfigUserInterfaceConstraints
- DeviceManufacturer
- DeviceRelationsCount
- DirectLink
- DirectLinkActiveDateRange
- ErrorResponse
- ExecuteAction400Response
- ExecuteActionOnChannelGroup400Response
- ExecuteActionOnChannelGroupRequest
- ExecuteActionRequest
- ExecuteScene400Response
- ExecuteSceneRequest
- ExecuteSubDeviceActionRequest
- GetChannelMeasurementLogs200Response
- GetChannelMeasurementLogs200ResponseOneOfInner
- GetChannelMeasurementLogs200ResponseOneOfInner1
- GetChannelMeasurementLogs200ResponseOneOfInner2
- GetChannelMeasurementLogs200ResponseOneOfInner3
- GetChannelMeasurementLogs200ResponseOneOfInner4
- GetChannelMeasurementLogs200ResponseOneOfInner5
- GetChannelMeasurementLogs200ResponseOneOfInner6
- GetIoDeviceIdParameter
- GetServerInfo200Response
- GetServerInfo200ResponseTimezone
- GetSuplaServerStatus200Response
- GetSuplaServerStatus503Response
- GetTokenInfo200Response
- IssueAccessToken200Response
- Location
- LocationRelationsCount
- Notification
- Reaction
- ReactionTrigger
- ReactionTriggerChange
- ReactionTriggerChangeOnChange
- ReactionTriggerEq
- ReactionTriggerEqOnChangeTo
- ReactionTriggerEqOnChangeToEq
- ReactionTriggerFieldNames
- ReactionTriggerGe
- ReactionTriggerGeOnChangeTo
- ReactionTriggerGeOnChangeToResume
- ReactionTriggerGt
- ReactionTriggerGtOnChangeTo
- ReactionTriggerGtOnChangeToResume
- ReactionTriggerLe
- ReactionTriggerLeOnChangeTo
- ReactionTriggerLeOnChangeToResume
- ReactionTriggerLt
- ReactionTriggerLtOnChangeTo
- ReactionTriggerLtOnChangeToResume
- ReactionTriggerNe
- ReactionTriggerNeOnChangeTo
- Scene
- SceneOperation
- SceneRelationsCount
- SceneState
- Schedule
- ScheduleClosestExecutions
- ScheduleConfigEntry
- ScheduleConfigEntryAction
- ScheduleScheduledExecution
- ScheduleScheduledExecutionResult
- ScheduleState
- SendNotification400Response
- UpdateAccessIdentifierRequest
- UpdateChannelRequest
- UpdateClientAppRequest
- UpdateDeviceRequest
- UpdateLocationRequest
- User
- UserAgreements
- UserApiRateLimit
- UserApiRateLimitRule
- UserApiRateLimitStatus
- UserIcon
- UserLimits
- UserLimitsPushNotificationsPerHour
Authorization
Personal Access Token
Generate a Personal Access Token for you in the Integrations section on https://cloud.supla.org or your server instance.
OAuth2
- Flow:
authorizationCode - Authorization URL:
https://cloud.supla.org/oauth/v2/authif the app is public orhttps://YOUR_SUPLA_SERVER/oauth/v2/authotherwise - Scopes:
accessids_r: Access Identifiers (read)accessids_rw: Access Identifiers (read and modify)account_r: User account and e-mail address (read)account_rw: User account (read and modify)channels_r: Channels (read)channels_rw: Channels (read and modify)channels_ea: Channels (execute actions)channels_files: Download files from API (measurements history, user icons)channelgroups_r: Channel groups (read)channelgroups_rw: Channel groups (read and modify)channelgroups_ea: Channel groups (execute actions)clientapps_r: Client apps (read)clientapps_rw: Client apps (read and modify)directlinks_r: Direct links (read)directlinks_rw: Direct links (read and modify)iodevices_r: IO Devices (read)iodevices_rw: IO Devices (read and modify)locations_r: Locations (read)locations_rw: Locations (read and modify)scenes_r: Scenes (read)scenes_rw: Scenes (read and modify)scenes_ea: Scenes (execute actions)schedules_r: Schedules (read)schedules_rw: Schedules (read and modify)state_webhook: Access to state webhooksmqtt_broker: MQTT Broker settingsoffline_access: Issue refresh token
- Example Auth URL:
/oauth/v2/auth?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&response_type=code&scope=account_r%20channels_r&state=example-state
Sources
This PHP package is automatically generated by the OpenAPI Generator project:
- Targeted Cloud version:
25.03 - Build package:
org.openapitools.codegen.languages.PhpClientCodegen