@coingecko/cg-api-ts
v0.0.51
Published
JavaScript wrapper for coingecko.com/api
Downloads
212
Readme
CoinGecko API Wrapper
Installation
npm i --save @coingecko/cg-api-ts
yarn add @coingecko/cg-api-ts
Available Endpoint
| Endpoint | Status | Testing | Function | | :-----------------------------: | :----: | :-----: | :----------------------------: | | /ping | [/] | [/] | getPing | | /simple/price | [/] | [/] | getSimplePrice | | /simple/supported_vs_currencies | [/] | [/] | getSimpleSupportedVsCurrencies | | /simple/token_price/{id} | [x] | [x] | | | /coins/list | [/] | [/] | getCoinsList | | /coins/markets | [x] | [x] | | | /coins/{id} | [/] | [x] | getCoinsId | | /coins/{id}/market_chart | [/] | [/] | getCoinsIdMarketChart | | /coins/{id}/status_updates | [/] | [/] | getCoinsIdStatusUpdates | | /status_updates | [/] | [/] | getStatusUpdates | | /global | [/] | [/] | getGlobal |
Usage
import { CoinGeckoAPI } from "@coingecko/cg-api-ts";
const cg = new CoinGeckoAPI(fetch);
// sometimes fetch is not bind properly need to use following:
// export const cg = new CoinGeckoAPI(window.fetch.bind(window));
cg.getPing()
.then(({ data, response, endpoint }) => {
console.log(data);
console.log(response);
console.log(endpoint);
})
// Error Handling
.catch(err => {
if (err.type === APIError.SERVER) {
// Resouces not found (Error 404)
console.error("API resources not found");
} else if (err.type === APIError.DOWN) {
// CoinGecko API Down (Error 500)
console.error("API Down");
} else if (err.type === APIError.TIMEOUT) {
// API Request timeout after 20s (default)
console.error("API Timeout");
console.error(err.message); // Request timeout after 20000ms
} else {
console.error(err.message);
}
});
Browser
CoinGeckoAPI class used fetch API, which requires browser support for Fetch API. Consider using Polyfill library
Promise style
import { CoinGeckoAPI, APIError } from "@coingecko/cg-api-ts";
const cg = new CoinGeckoAPI(fetch);
cg.getPing().then(({ data, response }) => {
if (data) {
console.log("Server online");
} else {
console.error("Server not responding properly");
}
});
Async Await
(async () => {
const cg = new CoinGeckoAPI(fetch);
const { data, response } = await cg.getPing();
if (data) {
console.log("Server online");
} else {
console.error("Server offline");
}
})();
Nodejs
const nodeFetch = require("node-fetch");
const cg = new CoinGeckoAPI(nodeFetch);
cg.getPing().then(({ data, response }) => {
if (data) {
console.log("Server online");
} else {
console.error("Server offline");
}
});