mobula-sdk
v1.6.0
Published
![cover](https://i.imgur.com/8evrRT0.png)
Downloads
522
Readme
Getting Started with Mobula API SDK
Mobula empowers builders with top-tier APIs for market data, wallet data & DeFi quotes. Industry-leading coverage & granularity, SQL queries, and high flexibility.
📑 Table of Contents
🌟 Introduction
With the Mobula API SDK, you can seamlessly integrate real-time crypto metrics into your projects. Whether you're building a new crypto dashboard or just exploring the world of cryptocurrencies, Mobula API SDK has got you covered.
🔑 Generate API Key
For an enhanced experience, acquire an API key. Generate your key and select a plan fitting your project here.
📦 Installation
NPM
npm mobula-sdk
SDK Example Usage
Example
import { Mobula } from "mobula-sdk";
import { Order } from "mobula-sdk/dist/sdk/models/operations";
async function run() {
const sdk = new Mobula({
apiKeyAuth: "<YOUR_API_KEY_HERE>",
});
const res = await sdk.fetchWalletTransactions({
blockchains: "56,Ethereum",
wallet: "0xd99cB89A20822B0448936DF4f36803778CA5a003",
});
if (res.statusCode == 200) {
// handle response
}
}
run();
📚 Documentation
Index
- searchCryptoByName - Search crypto data with asset name
- fetchAllCryptoDetails - Get all crypto data with extra fields as needed
- fetchAssetMarketData - Get the market metrics for any asset
- fetchAssetMarketHistory - Get the market metrics of an asset over a given timeframe
- fetchAssetMetadata - Get the metadata of an asset.
- fetchAssetTradeHistory - Retrieve trade history for a given asset
- fetchMultipleAssetMarketData - Get the market metrics for multiple assets at one time
- fetchPairMarketData - Get the market metrics for any DEX pair
- fetchPairsMarketData - Fetch all DEX pairs from a specific asset
- fetchWalletHistoryBalance - Get the historical balance of any EVM-compatible wallets, at any time
- fetchWalletHoldings - Fetch wallet holdings
- fetchWalletNFTs - Fetch wallet NFTs
- fetchWalletTransactions - Fetch Wallet Transactions
Error Handling
Handling errors in this SDK should largely match your expectations. All operations return a response object or throw an error. If Error objects are specified in your OpenAPI Spec, the SDK will throw the appropriate Error type.
| Error Object | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4xx-5xx | / |
Example
import { Mobula } from "mobula-sdk";
async function run() {
const sdk = new Mobula({
apiKeyAuth: "<YOUR_API_KEY_HERE>",
});
let res;
try {
res = await sdk.searchCryptoByName({
name: "bitcoin",
});
} catch (err) {
if (err instanceof errors.SDKError) {
console.error(err); // handle exception
throw err;
}
}
if (res.statusCode == 200) {
// handle response
}
}
run();
🔄 Upgrade
Upgrade plans:
| Plan | Credits/month | Support | Price/month | Link | | ---------- | ------------- | -------------------------------------------- | ----------- | ------------------------------------------------------------ | | Free | 300,000 | 24/7 support on Telegram, Discord, and Slack | $0 | Link | | Premium | 1,500,000 | 24/7 support on Telegram, Discord, and Slack | $250 | Upgrade now | | Advanced | 5,000,000 | 24/7 support on Telegram, Discord, and Slack | $750 | Upgrade now | | Enterprise | Unlimited | 24/7 support, custom endpoints, 99.9% SLA | from $750 | Contact us |
📞 Support
Need assistance? Contact our support bot on Telegram: Bot Support
Crafted with 💙 by Mobula for builders like you
Server Selection
Select Server by Index
You can override the default server globally by passing a server index to the serverIdx: number
optional parameter when initializing the SDK client instance. The selected server will then be used as the default on the operations that use it. This table lists the indexes associated with the available servers:
| # | Server | Variables |
| - | ------ | --------- |
| 0 | https://api.mobula.io/api/1
| None |
Example
import { Mobula } from "mobula-sdk";
async function run() {
const sdk = new Mobula({
serverIdx: 0,
apiKeyAuth: "<YOUR_API_KEY_HERE>",
});
const res = await sdk.searchCryptoByName({
name: "bitcoin",
});
if (res.statusCode == 200) {
// handle response
}
}
run();
Override Server URL Per-Client
The default server can also be overridden globally by passing a URL to the serverURL: str
optional parameter when initializing the SDK client instance. For example:
import { Mobula } from "mobula-sdk";
async function run() {
const sdk = new Mobula({
serverURL: "https://api.mobula.io/api/1",
apiKeyAuth: "<YOUR_API_KEY_HERE>",
});
const res = await sdk.searchCryptoByName({
name: "bitcoin",
});
if (res.statusCode == 200) {
// handle response
}
}
run();
Custom HTTP Client
The Typescript SDK makes API calls using the axios HTTP library. In order to provide a convenient way to configure timeouts, cookies, proxies, custom headers, and other low-level configuration, you can initialize the SDK client with a custom AxiosInstance
object.
For example, you could specify a header for every request that your sdk makes as follows:
import { mobula-sdk } from "Mobula";
import axios from "axios";
const httpClient = axios.create({
headers: {'x-custom-header': 'someValue'}
})
const sdk = new Mobula({defaultClient: httpClient});
Authentication
Per-Client Security Schemes
This SDK supports the following security scheme globally:
| Name | Type | Scheme |
| ------------ | ------------ | ------------ |
| apiKeyAuth
| apiKey | API key |
To authenticate with the API the apiKeyAuth
parameter must be set when initializing the SDK client instance. For example:
import { Mobula } from "mobula-sdk";
async function run() {
const sdk = new Mobula({
apiKeyAuth: "<YOUR_API_KEY_HERE>",
});
const res = await sdk.searchCryptoByName({
name: "bitcoin",
});
if (res.statusCode == 200) {
// handle response
}
}
run();