‹ EODHD: The Product Lesson 10 of 17
Contents Lesson 10 of 17

3 min read · practitioner

The SDKs: what exists, and what each one is

Why this matters. A client asking "do you have a library for X?" wants one of three answers, and only one of them is a link. Knowing which is which turns a long thread into a short one.

The libraries

These are meant to be installed and kept.

  • Python — the one to reach for first. The audience that asks for a library is overwhelmingly the audience that already has pandas open.
  • Node.js and TypeScript — typed throughout, the right answer for a web product.
  • C# / .NET — EODHistoricalData.Wrapper.
  • R — two are published, version 1 and the 2024 version 2. Name v2.

The examples

These are meant to be read and copied, not installed. Java and F# are examples, and saying so is a description of what someone is about to get rather than a warning: working code that shows the shape of a call, in a file they will edit.

The same shelf carries Matlab, a Postman collection, and curl and wget snippets. Useful, and a different kind of thing again.

One of them is not ours

The PHP/Laravel package is a community wrapper by RadicalLoop. We link it and credit it by name, and that is the whole distinction: it decides who a client asks when they need a change. Say it plainly and up front, because a PHP developer who finds out later feels misled, and a PHP developer who is told at the start simply knows where they stand.

When there is no client library at all

Ruby is the honest case. There is no Ruby client, so say so and attach the call — the shape of the thing is the reassurance. One GET, the key as a query parameter, JSON back:

curl "https://eodhd.com/api/eod/AAPL.US?api_token=YOUR_API_KEY&fmt=json"

Any language with an HTTP client already has everything a wrapper would have added. Send that line rather than a repository, and the unsupported-language conversation is over in one message.

Coverage differs between libraries

Each one wraps the endpoints its author needed, so "supported in Python" and "supported in .NET" are different claims.

When a client asks whether a specific endpoint is covered, that is a repository question rather than a language question, and the answer lives in the library itself. Open it and look. Answering that one from memory is how you get caught out.

Try it now

Take three requests, one for each answer this lesson gives: a language with a library, a language with only an example, and a language with neither. Write all three replies now, while nobody is waiting, and you will never write them slowly again.