https://github.com/azuracast/php-api-client
An API client library for the AzuraCast API
https://github.com/azuracast/php-api-client
api azuracast php
Last synced: 8 months ago
JSON representation
An API client library for the AzuraCast API
- Host: GitHub
- URL: https://github.com/azuracast/php-api-client
- Owner: AzuraCast
- License: apache-2.0
- Created: 2018-11-25T18:37:23.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2025-01-27T22:53:18.000Z (over 1 year ago)
- Last Synced: 2025-09-15T12:40:57.646Z (9 months ago)
- Topics: api, azuracast, php
- Language: PHP
- Homepage:
- Size: 688 KB
- Stars: 30
- Watchers: 8
- Forks: 20
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
This PHP library provides an API client for the [AzuraCast](https://github.com/AzuraCast/AzuraCast) JSON API.
# Installation
It is highly recommended to use the [Composer]() package manager to install this client by running this command:
```bash
composer require azuracast/php-api-client
```
# Usage
```php
',
''
);
$nowPlaying = $api->nowPlaying();
echo $nowPlaying->getCurrentSong()->getSong()->getTitle();
```
# Available Endpoints
### Now Playing
`GET` `/nowplaying`
```
$api->nowPlaying();
```
`GET` `/nowplaying/{station_id}`
```
$api->station($station_id)->nowPlaying();
```
### Stations: General
`GET` `/stations`
```
$api->stations();
```
`GET` `/station/{station_id}`
```
$api->station($stationId)->get();
```
### Stations: Song Requests
`GET` `/station/{station_id}/requests`
```
$api->station($stationId)->requests()->list();
```
`POST` `/station/{station_id}/request/{request_id}`
```
$api->station($stationId)->requests()->submit($uniqueId);
```
### Stations: Service Control
`GET` `/station/{station_id}/status`
```
$api->station($stationId)->status();
```
`POST` `/station/{station_id}/restart`
```
$api->station($stationId)->restart();
```
`POST` `/station/{station_id}/frontend/{action}`
```
$api->station($stationId)->frontend($action);
```
`POST` `/station/{station_id}/backend/{action}`
```
$api->station($stationId)->backend($action);
```
### Stations: History
`GET` `/station/{station_id}/history`
```
$api->station($stationId)->history(?\DateTime $start = null, ?\DateTime $end = null);
```
### Stations: Listeners
`GET` `/station/{station_id}/listeners`
```
$api->station($stationId)->listeners();
```
### Stations: Media
`GET` `/station/{station_id}/art/{media_id}`
```
$api->station($stationId)->media()->art($uniqueId);
```
`GET` `/station/{station_id}/files`
```
$api->station($stationId)->media()->list();
```
`POST` `/station/{station_id}/files`
```
$api->station($stationId)->media()->upload(UploadFileDto $uploadFile);
```
### Stations: Mount Points
`GET` `/station/{station_id}/mounts`
```
$api->station($stationId)->mounts();
```
### Station: Streamers/DJs
`GET` `/station/{station_id}/streamers`
```
$api->station($stationId)->streamers()->list();
```
`GET` `/station/{station_id}/streamer/{id}`
```
$api->station($stationId)->streamers()->get(int $streamerId);
```
`POST` `/station/{station_id}/streamers`
```
$api->station($stationId)->streamers()->create(
string $username,
string $password,
string $displayName,
string $comments,
bool $isActive
);
```
`PUT` `/station/{station_id}/streamer/{id}`
```
$api->station($stationId)->streamers()->update(
int $streamerId,
string $username,
string $password,
string $displayName,
string $comments,
bool $isActive
);
```
`DELETE` `/station/{station_id}/streamer/{id}`
```
$api->station($stationId)->streamers()->delete($streamerId);
```
### Administration: Custom Fields
`GET` `/admin/custom_fields`
```
$api->admin()->customFields()->list();
```
`POST` `/admin/custom_fields`
```
$api->admin()->customFields()->get(int $customFieldId);
```
`GET` `/admin/custom_fields/{id}`
```
$api->admin()->customFields()->create(string $name, string $shortName);
```
`PUT` `/admin/custom_fields/{id}`
```
$api->admin()->customFields()->update(int $customFieldId, string $name, string $shortName);
```
`DELETE` `/admin/custom_fields/{id}`
```
$api->admin()->customFields()->delete(int $customFieldId);
```
### Administration: Users
`GET` `/admin/users`
```
$api->admin()->users()->list();
```
`GET` `/admin/user/{id}`
```
$api->admin()->users()->get(int $userId);
```
`POST` `/admin/users`
```
$api->admin()->users()->create(
string $email,
string $authPassword,
string $name,
string $timezone,
string $locale,
string $theme,
array $roles,
array $apiKeys
);
```
`PUT` `/admin/user/{id}`
```
$api->admin()->users()->update(
int $userId,
string $email,
string $authPassword,
string $name,
string $timezone,
string $locale,
string $theme,
array $roles,
array $apiKeys
);
```
`DELETE` `/admin/user/{id}`
```
$api->admin()->users()->delete(int $userId);
```
### Administration: Roles
`GET` `/admin/permissions`
```
$api->admin()->permissions();
```
`GET` `/admin/roles`
```
$api->admin()->roles()->list();
```
`GET` `/admin/role/{id}`
```
$api->admin()->roles()->get(int $roleId);
```
`POST` `/admin/roles`
```
$api->admin()->roles()->create(
string $name,
string[] $permissionsGlobal,
string[] $permissionsStation
);
```
`PUT` `/admin/role/{id}`
```
$api->admin()->roles()->update(
int $roleId
string $name
string[] $permissionsGlobal
string[] $permissionsStation
);
```
`DELETE` `/admin/role/{id}`
```
$api->admin()->roles()->delete(int $roleId);
```
### Administration: Settings
`GET` `/admin/settings`
```
$api->admin()->settings()->list();
```
`PUT` `/admin/settings`
```
$api->admin()->settings()->update(
string $baseUrl,
string $instanceName,
string $timezone,
bool $preferBrowserUrl,
bool $useRadioProxy,
int $historyKeepDays,
bool $alwaysUseSsl,
string $apiAccessControl,
string $analytics,
bool $centralUpdatesChannel,
string $publicTheme,
bool $hideAlbumArt,
string $homepageRedirectUrl,
string $defaultAlbumArtUrl,
bool $hideProductName,
string $customCssPublic,
string $customJsPublic,
string $customCssInternal
);
```