dambrogia/alpaca-php

PHP REST client for Alpaca.

0.0.5 2021-01-29 04:53 UTC

README

A PHP REST client for Alpaca.

Getting started:

composer require dambrogia/alpaca-php

Using the client within your package:

Declare your configuration:

use Dambrogia\Alpaca\Config;
...
$config = new Config($key, $secret, Config::ENV_PAPER);
// Can also use Config::ENV_LIVE here ^ as well for production mode.

Once you declare the configuration, there's 2 ways to use the package. The entire package can be loaded and specific endpoints/features can be navigated to, or only certain sets of endpoints can be loaded initially. The package is fairly small so the overhead to load the entire library isn't much.

use Dambrogia\Alpaca\Alpaca;
...
$account = (new Alpaca($config))->v2()->account()->get();
// or
use Dambrogia\Alpaca\Client\V2;
...
$account = (new V2($config))->account()->get();

Endpoints Covered

Verb Callable Endpoint
RFC6455 WebSocket protocol Dambrogia\Alpaca\Client\Streaming::connect /stream
GET Dambrogia\Alpaca\Endpoint\V1\Account::get /v1/account
GET Dambrogia\Alpaca\Endpoint\V1\Assets::get /v1/assets
GET Dambrogia\Alpaca\Endpoint\V1\Assets::getBySymbol /v1/assets/$symbol
GET Dambrogia\Alpaca\Endpoint\V1\Bars::get /v1/bars/$timeframe
GET Dambrogia\Alpaca\Endpoint\V1\Calendar::get /v1/calendar
GET Dambrogia\Alpaca\Endpoint\V1\Clock::get /v1/clock
POST Dambrogia\Alpaca\Endpoint\V1\Orders::create /v1/orders
DELETE Dambrogia\Alpaca\Endpoint\V1\Orders::delete /v1/orders/$id
GET Dambrogia\Alpaca\Endpoint\V1\Orders::get /v1/orders
GET Dambrogia\Alpaca\Endpoint\V1\Orders::getByClientOrderId /v1/orders:by_client_order_id
GET Dambrogia\Alpaca\Endpoint\V1\Orders::getById /v1/orders/$id
GET Dambrogia\Alpaca\Endpoint\V1\Positions::get /v1/positions
GET Dambrogia\Alpaca\Endpoint\V1\Positions::getBySymbol /v1/positions/$symbol
GET Dambrogia\Alpaca\Endpoint\V2\Account::get /v2/account
GET Dambrogia\Alpaca\Endpoint\V2\Assets::get /v2/assets
GET Dambrogia\Alpaca\Endpoint\V2\Assets::getBySymbol /v2/assets/$symbol
GET Dambrogia\Alpaca\Endpoint\V2\Calendar::get /v2/calendar
GET Dambrogia\Alpaca\Endpoint\V2\Clock::get /v2/clock
POST Dambrogia\Alpaca\Endpoint\V2\Orders::create /v2/orders
DELETE Dambrogia\Alpaca\Endpoint\V2\Orders::delete /v2/orders/$id
GET Dambrogia\Alpaca\Endpoint\V2\Orders::get /v2/orders
GET Dambrogia\Alpaca\Endpoint\V2\Orders::getByClientOrderId /v2/orders:by_client_order_id
GET Dambrogia\Alpaca\Endpoint\V2\Orders::getById /v2/orders/$id
GET Dambrogia\Alpaca\Endpoint\V2\Positions::get /v2/positions
GET Dambrogia\Alpaca\Endpoint\V2\Positions::getBySymbol /v2/positions/$symbol

If there are missing/incorrect endpoints, please create an issue so that it can be addressed!

Testing

To run the tests, download the package, copy .env.sample to .env and place your paper trading credentials in the .env file. Feel free to look at the testing here.