Official Gem API Node.js Client
The official Node.js client for the Gem API.
Install
npm install @gem.co/api
Quickstart
Server
const { GEM_API_KEY, GEM_API_SECRET } = process.env;
const { Gem } = require('@gem.co/api').SDK;
const gem = new Gem({
apiKey: GEM_API_KEY,
secretKey: GEM_API_SECRET,
environment: 'sandbox',
});
(async () => {
try {
const applicationUsers = await gem.listUsers();
const firstUser = applicationUsers[0];
const transactions = await gem.listTransactions({ userId: firstUser.id });
console.log('User Transactions', transactions);
} catch (e) {
console.error('Gem Error', e);
}
})();
Client API Reference
Constructor
const gem = new Gem({
});
Configuration Parameters:
parameter | description |
---|
apiKey | Gem API key for the respective environment. |
secretKey | Gem API secret for the respective environment. |
environment | The Gem API environment. Options: sandbox or production. |
options | Configuration options that are passed to the Axios Client for each request made to the API. |
SDK Requests
Users
method | parameters | description |
---|
getUser | (userId: string) | Get a user by ID. |
listUsers | (pageNumber?: number, pageSize?: number) | List all users |
Profiles
method | parameters | description |
---|
createProfile | ( userId: string, profile: ProfileModel ) | Create a profile. |
Documents
method | parameters | description |
---|
createProfileDocument | ( profileId: string, document: FormData ) | Attach a document to a profile. (Documents may have many files associated.) |
Institutions
method | parameters | description |
---|
getInstitution | ( institutionId: string ) | Get an institution by ID. |
listInstitutions | none | List all supported institutions. |
Transactions
method | parameters | description |
---|
getTransaction | ( transactionId: string ) | Get a transaction by ID. |
listTransactions | ({ userId?: string, accountId?: string, beforeId?: string, afterId?: string, limit?: number }?: object) | Get a list of transactions. |
Assets
method | parameters | description |
---|
getAssets | ( assetId: string, source?: string ) | Get assets from a source. assetIds can be a comma seperated list. |
listAssets | ( category: 'cryptocurrency' or 'fiat' ) | List all supported assets of a certain category. |
Payment Methods + Supported Currencies
method | parameters | description |
---|
listSupportedCurrencies | (institutionId: wyre or coinify) | List payment methods for a particular institution and their supported currencies. |
Prices
method | parameters | description |
---|
getAssetPrice | ( assetId: string, currencyId: string, source?: string ) | Get an asset price in units of a requested currency. |
listAssetPrices | ( assetIds: string, currencyId: string, source?: string ) | List asset prices in units of a requested currency. |
Vanilla Requests
Each function makes a request to Gem's API and returns a promise in response.
const gem = new Gem({
});
const client = gem.client;
client.get(path, parameters, options);
client.post(path, body, options);
client.put(path, body, options);
client.patch(path, body, options);
client.delete(path, body, options);
Debugging
Setting the DEBUG environment variable will turn on Gem client debug logging.
DEBUG=gem:* node bin/my_program