Skip to content

An API client library for the AzuraCast API

License

Notifications You must be signed in to change notification settings

AzuraCast/php-api-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4232b88 · Jan 27, 2025

History

85 Commits
Oct 21, 2022
Jan 27, 2025
Jun 12, 2022
Jul 9, 2019
Jul 13, 2019
Jul 9, 2019
Jul 13, 2019
Jan 27, 2025
Nov 25, 2018
Nov 7, 2020
Oct 21, 2022
Oct 22, 2022
Jan 27, 2025
Jan 27, 2025
Jan 27, 2025
Feb 2, 2019

This PHP library provides an API client for the AzuraCast JSON API.

Installation

It is highly recommended to use the Composer package manager to install this client by running this command:

composer require azuracast/php-api-client

Usage

<?php

require __DIR__ . '/vendor/autoload.php';

$api = \AzuraCast\Api\Client::create(
	'<IP-Address | Host>',
	'<API Key>'
);

$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
);

About

An API client library for the AzuraCast API

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 6