New User : First Impression Of Alpaca!

Hello, I’m a new user of Alpaca. I’ve been a Java developer for 20+ years, and recently I’m starting to develop some apps for getting stock info, and today I found Alpaca after some search about how to get stock data. It’s been few hours since I opened my account and read through some of the documents. Here are my first impressions of the site :

[1] Java is NOT favored by the system, “Python, Javascript/Node.js, Golang, and C#/.Net” are first class, Java is NOT ! Although Java might be supported by the community, it’s not a “supported SDK”. I’m VERY much surprised, as if I’m in a dream, so to be objective, I did a search online for “Top computer languages by user”, and found Java is #2 or #3 by most listings :
https://www.codingdojo.com/blog/top-7-programming-languages
https://www.northeastern.edu/graduate/blog/most-popular-programming-languages/

While some not as popular languages are supported, JAVA is NOT on your SDK list, I’m surprised and upset.

[2] While I was reading your documentation, I found a lots of “periods” are missing, make it hard to read, for example in the following sections :

“Paper Trading with the Alpaca API Larry walks you through how to call API in python … Simple python database and algotrading Patrick demonstrates how to build a trading algorithm using AlphaVantage data and Alpaca API.”

“Paper trading is free and available to all Alpaca users Paper trading is a real-time simulation environment where you can test your code.”

" Pattern Day Trader (PDT) Protection Day Trade Margin Call (DTMC) Protection Pattern Day Trader (PDT) Protection at Alpaca In order to prevent Alpaca Brokerage Account customers from unintentionally being designated as a Pattern Day Trader"

They should be like these :

“Paper Trading with the Alpaca API . Larry walks you through how to call API in python … Simple python database and algotrading . Patrick demonstrates how to build a trading algorithm using AlphaVantage data and Alpaca API.”

“Paper trading is free and available to all Alpaca users . Paper trading is a real-time simulation environment where you can test your code.”

" Pattern Day Trader (PDT) Protection Day Trade Margin Call (DTMC) Protection Pattern Day Trader (PDT) Protection at Alpaca . In order to prevent Alpaca Brokerage Account customers from unintentionally being designated as a Pattern Day Trader"

Hope after reading me first impressions, you can make some improvements and make Alpaca more user friendly !
I like the system as a whole [ free data and commission free trading ], just want to see it getting better and be more competitive, best wishes !

Hire a Java developer and hire a UI person with English major to start the new year :slight_smile: !

First off, welcome to Alpaca!

Alpaca’s focus is to provide robust, easy to use, APIs to trade stocks. Period. APIs are our business. APIs are language and platform agnostic and can be accessed using a range of tools including spreadsheets, command line interpreters, and most programming languages. Alpaca additionally provides open source “wrappers” or SDKs for several common languages. Our community members have expanded on these and shared SDKs for even more languages (including Java). However, the SDKs are not required when interacting with Alpaca. If you can program a REST or WebSocket connection you can use the APIs.

Sorry you found the documentation difficult to read. The culprit in the case of the “missing period” is our headings. Alpaca generally doesn’t add punctuation at the end of headings. Below are some of the examples I believe you referred to



There are a few places where the text is rendered as a summary and looses the heading format. I do agree it’s hard to read in these cases but these are meant to be clickable links and not the actual content as in the example below.

Most browsers should render headings as intended and the lack of periods hasn’t typically been a difficulty. That said, are you using a particular browser or require accessibility features where this detracts from readability. We definitely strive to make our site accessible to everyone.

I’m using Firefox as my default browser. Another thing confused me as a new user was: I saw a “Get Your API Key” button at the top so I clicked on it, it took me to another page without any way to get an “API Key”, I tried few times, none of them showed me how to get an API Key. So I was confused. What’s the purpose of that button ? And how/where to get my API Key ?!

I’m with you, it’s crazy to me that Alpaca has a Go API but not a Java one, but honestly it doesn’t matter.

The language specific libraries are really of minimal value as they’re just thin wrappers over requests to the RESTful endpoints. It’s really a bonus that the Alpaca team provide any language specific libraries, because the RESTful API is so trivial to implement in any language anyway.

I’ve been hacking away in JavaScript and honestly I don’t even use the provided JS library. It doesn’t seem worth adding a dependency to my project when the HTTP calls are so easy to make anyway. Having said that, there’s probably a little more value in having a Java library than a JavaScript library since it’s strongly typed and JSON (de)serialization is not quite as trivial in Java as it is in JavaScript.

Anyway, I digress. The bigger issue, which you will soon discover if you get past the API issue (just implement the HTTP calls yourself) is the quality of the Alpaca historical market data. It’s completely unreliable, and I would not base any trades with real money on it. Issues of market data quality are continually raised in the forums, and are never addressed.

I am about to try the polygon integration to see if it’s any better. Fingers crossed!

That said, the paper trading seems to work great! As a trading platform Alpaca seems to be wonderful (and it’s commission free! which is amazing), but get your market data from somewhere else. I have tried multiple “free” sources of market data now, and they are all completely unreliable, so I think you get what you pay for.

Thanks for your insight, is there any objective comparison chart showing pros and cons of various commission-free APIs of the trading platforms ?

There is a community-developed Java API for Alpaca here (I am the maintainer). As far as market data goes and from what I can tell, the Alpaca Bars API is proxied data from IEX and the Last Response, Last Quote, and Market Data Streaming APIs are directly proxied from Polygon. As mentioned, Polygon has had some serious issues in the past with data reliability and consistency (you get what you pay for I guess and you pay nothing) which is a total no-go when it comes to live environments. I have found that IQFeed seems to be very reliable (not free of course) although they are quite “legacy” when it comes to their API (they use a gateway and TCP/IP sockets for server communication which is similar to what the Interactive Brokers API does). I am developing a easy-to-use Java API for IQFeed soon since I am currently using them and they are great!