{"id":22134202,"url":"https://github.com/ivoputzer/coinbase-pro-api","last_synced_at":"2025-07-25T20:32:00.538Z","repository":{"id":57202927,"uuid":"138432179","full_name":"ivoputzer/coinbase-pro-api","owner":"ivoputzer","description":"Lightweight Coinbase Pro API implementation wirtten in es6+","archived":false,"fork":false,"pushed_at":"2019-01-18T21:55:29.000Z","size":85,"stargazers_count":25,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-28T02:49:07.749Z","etag":null,"topics":["api","coinbase","coinbase-pro","coinbase-pro-api"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/coinbase-pro-api","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivoputzer.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-06-23T20:42:12.000Z","updated_at":"2024-12-03T14:45:56.000Z","dependencies_parsed_at":"2022-09-17T04:10:28.253Z","dependency_job_id":null,"html_url":"https://github.com/ivoputzer/coinbase-pro-api","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/ivoputzer/coinbase-pro-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivoputzer%2Fcoinbase-pro-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivoputzer%2Fcoinbase-pro-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivoputzer%2Fcoinbase-pro-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivoputzer%2Fcoinbase-pro-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivoputzer","download_url":"https://codeload.github.com/ivoputzer/coinbase-pro-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivoputzer%2Fcoinbase-pro-api/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267057170,"owners_count":24028790,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-25T02:00:09.625Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","coinbase","coinbase-pro","coinbase-pro-api"],"created_at":"2024-12-01T19:10:04.790Z","updated_at":"2025-07-25T20:32:00.218Z","avatar_url":"https://github.com/ivoputzer.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"coinbase-pro-api\n===\nLightweight [Coinbase Pro API](https://docs.pro.coinbase.com/#api) implementation.\n\n[![travis](https://img.shields.io/travis/ivoputzer/coinbase-pro-api.svg?style=for-the-badge)](https://travis-ci.org/ivoputzer/coinbase-pro-api)\n[![dependencies](https://img.shields.io/badge/dependencies-none-blue.svg?style=for-the-badge\u0026colorB=44CC11)](https://www.npmjs.com/package/coinbase-pro-api?activeTab=dependencies)\n[![coverage status](https://img.shields.io/coveralls/ivoputzer/coinbase-pro-api.svg?style=for-the-badge)](https://coveralls.io/github/ivoputzer/coinbase-pro-api?branch=master)\n[![linter](https://img.shields.io/badge/coding%20style-standard-brightgreen.svg?style=for-the-badge)](http://standardjs.com/)\n\n[![node](https://img.shields.io/badge/node-6%2B-blue.svg?style=for-the-badge)](https://nodejs.org/docs/v6.0.0/api)\n[![version](https://img.shields.io/npm/v/coinbase-pro-api.svg?style=for-the-badge\u0026colorB=007EC6)](https://www.npmjs.com/package/coinbase-pro-api)\n[![license](https://img.shields.io/badge/license-MIT-blue.svg?style=for-the-badge\u0026colorB=007EC6)](https://spdx.org/licenses/MIT)\n[![minzip](https://img.shields.io/bundlephobia/minzip/coinbase-pro-api.svg?style=for-the-badge)](https://bundlephobia.com/scan-results?packages=coinbase-pro-api)\n[![downloads](https://img.shields.io/npm/dt/coinbase-pro-api.svg?style=for-the-badge\u0026colorB=007EC6)](https://www.npmjs.com/package/coinbase-pro-api)\n\n## Donations\nIf you find value in what I do then feel free to make a donation, it will be really appreciated! Maintaining projects isn't effortless nor free and if you'd like to kick in and help me cover those expenses, that would be awesome. If you don't, no problem; You can use my software completely free of charge and without limitation for any purpose you want ;)\n\n- **BTC** `3BNL7UnYmByrdEguoEnA7S95WzdDYLmKuS`\n- **LTC** `MEgxjro7E6z8Mfy4Uy8xaJPrskdwmrCers`\n- **BCH** `qrtl83z594m7g4nv390xdg5mg7tywuwq5vzlsa82dp`\n- **ETH** `0xeED2C60dd83e77F5650962E653b2a6F26A5c2f26`\n- **ETC** `0x5B4224b376C0a32B70B0e25F6aEeCfc2d0131703`\n- **ZRX** `0x345df25C52B81E045Bfb3C21b15343c4D114e43e`\n- **BAT** `0xB23Bb1933bDF676502426AdcA2D7B3E0Ed18AfDF`\n- **ZEC** `t1h78dUWEY9hA2UZVyNazbgAfZNmicEK6qA`\n- **USDC** `0x7fb93FfBcFa9A537ddFaC9678b1C27DF776eE626`\n\n\n## Installation\n```sh\nnpm install coinbase-pro-api\n```\n\n## Usage\nThis library allows you to use both [public](#public-endpoints) and [private](#private-endpoints) endpoints as well as the [sandbox environment](https://docs.pro.coinbase.com/#sandbox) for testing connectivity and trading. You can learn about query parameters and responses of each endpoint in the [official documentation](https://docs.pro.coinbase.com).\n\n## Public Endpoints\nPublic endpoints do not require authentication and can be used right away without further configuration.\n\n#### .getProducts([query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getProducts } = require('coinbase-pro-api')\ngetProducts()\n```\n[» query params and responses](https://docs.pro.coinbase.com/#get-products)\n\n#### .getProductOrderBook(productId[, query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getProductOrderBook } = require('coinbase-pro-api')\ngetProductOrderBook('BTC-EUR', { level: 3 })\n```\n[» query params and responses](https://docs.pro.coinbase.com/#get-product-order-book)\n\n#### .getProductTicker(productId[, query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getProductTicker } = require('coinbase-pro-api')\ngetProductTicker('BTC-EUR')\n```\n[» query params and responses](https://docs.pro.coinbase.com/#get-product-ticker)\n\n#### .getProductTrades(productId[, query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getProductTrades } = require('coinbase-pro-api')\ngetProductTrades('BTC-EUR', { after: 1000 })\n```\n[» query params and responses](https://docs.pro.coinbase.com/#get-trades)\n\n#### .getProductHistoricRates(productId[, query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getProductHistoricRates } = require('coinbase-pro-api')\ngetProductHistoricRates('BTC-EUR', { granularity: 3600 })\n```\n[» query params and responses](https://docs.pro.coinbase.com/#get-historic-rates)\n\n#### .getProduct24HrStats(productId[, query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getProduct24HrStats } = require('coinbase-pro-api')\ngetProduct24HrStats('BTC-EUR')\n```\n[» query params and responses](https://docs.pro.coinbase.com/#get-24hr-stats)\n\n#### .getCurrencies([query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getCurrencies } = require('coinbase-pro-api')\ngetCurrencies()\n```\n[» query params and responses](https://docs.pro.coinbase.com/#get-currencies)\n\n#### .getTime([query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getTime } = require('coinbase-pro-api')\ngetTime()\n```\n[» query params and responses](https://docs.pro.coinbase.com/#time)\n\n## Private Endpoints\nThe private endpoints require authentication. You will need to configure your `coinbase-pro-api` installation by providing a configuration.\n\n#### .getCoinbaseAccounts([query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getCoinbaseAccounts } = require('coinbase-pro-api')\ngetCoinbaseAccounts()\n```\n[» query params and responses](https://docs.pro.coinbase.com/#coinbase-accounts)\n\n#### .getPaymentMethods([query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getPaymentMethods } = require('coinbase-pro-api')\ngetPaymentMethods()\n```\n[» query params and responses](https://docs.pro.coinbase.com/#payment-methods)\n\n#### .getAccounts([query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getAccounts } = require('coinbase-pro-api')\ngetAccounts()\n```\n[» query params and responses](https://docs.pro.coinbase.com/#list-accounts)\n\n#### .getAccount(accountId[, query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getAccount } = require('coinbase-pro-api')\ngetAccount('7d0f7d8e-dd34-4d9c-a846-06f431c381ba')\n```\n[» query params and responses](https://docs.pro.coinbase.com/#get-an-account)\n\n#### .getAccountHistory(accountId[, query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getAccountHistory } = require('coinbase-pro-api')\ngetAccountHistory('7d0f7d8e-dd34-4d9c-a846-06f431c381ba', { before: 3000 })\n```\n[» query params and responses](https://docs.pro.coinbase.com/#get-account-history)\n\n#### .getAccountTransfers(accountId[, query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getAccountTransfers } = require('coinbase-pro-api')\ngetAccountTransfers('7d0f7d8e-dd34-4d9c-a846-06f431c381ba', { before: 3000 })\n```\n[» query params and responses](https://docs.pro.coinbase.com/#get-account-transfers)\n\n#### .getAccountHolds(accountId[, query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getAccountHolds } = require('coinbase-pro-api')\ngetAccountHolds('7d0f7d8e-dd34-4d9c-a846-06f431c381ba', { before: 3000 })\n```\n[» query params and responses](https://docs.pro.coinbase.com/#get-holds)\n\n#### .placeOrder(data[, env[, parser=JSON[, stringifier=JSON]]])\n```js\nconst { placeOrder } = require('coinbase-pro-api')\n\n// Buy 1 LTC @ 20 EUR\nplaceOrder({ side: 'buy', size: '1', price: '20.00', product_id: 'LTC-EUR' })\n\n// Sell 1 LTC @ 20 EUR\nplaceOrder({ side: 'sell', size: '1', price: '20.00', product_id: 'LTC-EUR' })\n```\n[» query params and responses](https://docs.pro.coinbase.com/#place-a-new-order)\n\n#### .cancelOrder(orderId[, query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { cancelOrder } = require('coinbase-pro-api')\ncancelOrder('d50ec984-77a8-460a-b958-66f114b0de9b')\n```\n[» query params and responses](https://docs.pro.coinbase.com/#cancel-an-order)\n\n#### .cancelOrders([query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { cancelOrders } = require('coinbase-pro-api')\ncancelOrders()\n```\n[» query params and responses](https://docs.pro.coinbase.com/#cancel-all)\n\n#### .getOrders([query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getOrders } = require('coinbase-pro-api')\ngetOrders({ after: 3000, status: 'open' })\n```\n[» query params and responses](https://docs.pro.coinbase.com/#list-open-orders)\n\n#### .getOrder(orderId[, query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getOrder } = require('coinbase-pro-api')\ngetOrder('d50ec984-77a8-460a-b958-66f114b0de9b')\n```\n[» query params and responses](https://docs.pro.coinbase.com/#get-an-order)\n\n#### .getFills([query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { getFills } = require('coinbase-pro-api')\ngetFills({ product_id: 'LTC-EUR', before: 3000 })\n```\n[» query params and responses](https://docs.pro.coinbase.com/#list-fills)\n\n#### .convert([query[, env[, parser=JSON[, stringifier=QS]]]])\n```js\nconst { convert } = require('coinbase-pro-api')\nconvert({from: 'USD', to: 'USDC', amount: '100' })\n```\n[» query params and responses](https://docs.pro.coinbase.com/#create-conversion)\n\n## Configuration\nConfigurations such as credentials and environments follow the [npm configuration guideline](https://docs.npmjs.com/files/npmrc.html). Configurations can be set via [command line](#command-line), [environment variables](#environment-variables) and [`npmrc` files](#npmrc). To create an api key unique to your trading account refer to [this guide](https://support.pro.coinbase.com/customer/en/portal/articles/2945320-how-do-i-create-an-api-key-for-coinbase-pro).\n\n- `sandbox` (optional) can be set to either `true`, `yes` and `1` to switch to sandbox environment;\n- `hostname` (optional) allows to override default coinbase-pro hostname;\n- `key` (mandatory for private endpoints only) coinbase-pro api key unique to your trading account;\n- `passphrase` (mandatory for private endpoints only) coinbase-pro api passphrase unique to your trading account;\n- `secret` (mandatory for private endpoints only) coinbase-pro api secret unique to your trading account;\n\n#### command line\n```shell\nnpm config set coinbase-pro-api:sandbox false\nnpm config set coinbase-pro-api:hostname api.pro.coinbase.com\nnpm config set coinbase-pro-api:key key\nnpm config set coinbase-pro-api:passphrase passphrase\nnpm config set coinbase-pro-api:secret secret\n```\n\n#### environment variables\n```shell\nenv npm_config_coinbase_pro_api_sandbox=\"false\" \\\n    npm_config_coinbase_pro_api_hostname=\"api.pro.coinbase.com\" \\\n    npm_config_coinbase_pro_api_key=\"key\" \\\n    npm_config_coinbase_pro_api_passphrase=\"passphrase\" \\\n    npm_config_coinbase_pro_api_secret=\"secret\" \\\n    node script.js\n```\n\n#### npmrc\n```ini\ncoinbase-pro-api:sandbox=\"false\"\ncoinbase-pro-api:hostname=\"api.pro.coinbase.com\"\ncoinbase-pro-api:key=\"key\"\ncoinbase-pro-api:passphrase=\"passphrase\"\ncoinbase-pro-api:secret=\"secret\"\n```\n\n## Submodule Util\nThe `util` submodule is primarily designed to support the needs of [coinbase-pro-api](#coinbase-pro-api) own internal APIs. However, many of the utilities are useful for application and module developers as well. It can be accessed using:\n\n```js\nconst util = require('coinbase-pro-api/util')\n```\n\n#### .configurationFor(options)\nThis utility generates an npm-like configuration object that can be used to override the internal configuration management:\n\n```js\nconst { configurationFor } = require('coinbase-pro-api/util')\n\nconst env = configurationFor({\n  sandbox: false,\n  hostname: 'api.pro.coinbase.com',\n  key: 'key',\n  passphrase: 'passphrase',\n  secret: 'secret'\n})\n\ngetAccounts(query, env)\n  .then(console.log)\n  .catch(console.error)\n```\n\n#### .signatureFor(options[, env[, crypto]])\nThis utility generates a base64 encoded sha256 hmac signature [compatible with coinbase-pro](https://docs.pro.coinbase.com/#signing-a-message):\n\n```js\nconst timestamp = 1e-3 * Date.now()\nconst method = 'get'\nconst path = '/api/endpoint'\nconst body = '?query=string'\n\nconst signature = signatureFor({ timestamp, method, path, body}, configurationFor({ secret }))\n```\n[» selecting a timestamp](https://docs.pro.coinbase.com/#selecting-a-timestamp)\n\n## Document submodule coinbase-pro-api/client\nThe `client` submodule is primarily designed to support the needs of [coinbase-pro-api](#coinbase-pro-api) own internal APIs. However, many of the utilities are useful for application and module developers as well. It can be accessed using:\n\n```js\nconst util = require('coinbase-pro-api/client')\n```\n\n#### .request(options[, env])\nThis utility wraps [https.request](https://nodejs.org/api/https.html#https_https_request_options_callback) and returns a promise that resolves into [https.ClientRequest](https://nodejs.org/api/http.html#http_class_http_clientrequest).\n\n```js\nconst { request } = require('coinbase-pro-api/client')\n\nrequest({ method: 'get', path: '/products' })\n  .then(res =\u003e res.pipe(process.stdout))\n  .catch(console.error)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivoputzer%2Fcoinbase-pro-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivoputzer%2Fcoinbase-pro-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivoputzer%2Fcoinbase-pro-api/lists"}