# DEX Screener SDK

[![npm version](https://img.shields.io/npm/v/dexscreener-sdk.svg)](https://www.npmjs.com/package/dexscreener-sdk)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![TypeScript](https://img.shields.io/badge/TypeScript-4.6.0-blue.svg)](https://www.typescriptlang.org/)

A powerful TypeScript SDK for the DEX Screener API, providing seamless
access to cryptocurrency token data, market analytics, and trading pairs across
multiple blockchains.

## 🚀 Features

- **Full API Coverage**: Access all DEX Screener endpoints
- **Type Safety**: Built with TypeScript for enhanced developer experience
- **Modular Design**: Clean architecture with separate modules for different API
  functionalities
- **Comprehensive Models**: Well-documented data models for all API responses
- **Error Handling**: Robust error handling and type checking
- **Promise-based**: Modern async/await support
- **Zero Dependencies**: Only uses axios for HTTP requests

## 📦 Installation

```bash
npm install dexscreener-sdk
# or
yarn add dexscreener-sdk
```

## 🔧 Usage

### Token Profiles

```typescript
import { getLatestTokenProfiles } from "dexscreener-sdk";

// Fetch latest token profiles
const profiles = await getLatestTokenProfiles();
console.log(profiles);
```

### Token Boosts

```typescript
import {
    getLatestTokenBoosts,
    getTopTokenBoosts,
} from "dexscreener-sdk";

// Get latest token boosts
const latestBoosts = await getLatestTokenBoosts();

// Get top boosted tokens
const topBoosts = await getTopTokenBoosts();
```

### Trading Pairs

```typescript
import { getPairById, searchPairs } from "dexscreener-sdk";

// Get specific pair
const pair = await getPairById("solana", "pairAddress");

// Search for pairs
const searchResults = await searchPairs("SOL/USDC");
```

## 📚 API Reference

### Token Endpoints

- `getLatestTokenProfiles()`: Fetch latest token profiles
- `getLatestTokenBoosts()`: Get recently boosted tokens
- `getTopTokenBoosts()`: Get tokens with most active boosts
- `getOrdersForToken(chainId, tokenAddress)`: Fetch token orders

### Pair Endpoints

- `getPairById(chainId, pairId)`: Get specific trading pair
- `searchPairs(query)`: Search for trading pairs
- `getTokenPools(chainId, tokenAddress)`: Get liquidity pools for token
- `getPairsByTokenAddresses(chainId, tokenAddresses)`: Get pairs for multiple
  tokens

## 🔄 Response Types

All responses are properly typed with TypeScript interfaces:

```typescript
interface TokenProfile {
    url: string;
    chainId: string;
    tokenAddress: string;
    icon: string;
    header: string;
    description: string;
    links: ILink[];
    // ... more properties
}
```

## ⚙️ Configuration

The base URL is configurable through the `config.ts` file:

```typescript
export const BASE_URL = "https://api.dexscreener.com";
```

## 🧪 Testing

```bash
# Run all tests
npm test

# Run specific test suite
npm test -- -t "Token Profiles"
```

## 🤝 Contributing

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
for details.

## 🔗 Links

- [DEX Screener](https://dexscreener.com)
- [API Documentation](https://docs.dexscreener.com/api/reference)
- [Bug Reports](https://github.com/Ziondido/dexscreener-api-wrapper/issues)

## 🙏 Acknowledgments

- DEX Screener team for providing the API
- Contributors and maintainers

## 📊 Keywords

dex, screener, cryptocurrency, blockchain, trading, api, typescript, solana,
ethereum, pairs, tokens, defi, crypto-api, market-data
