open-index/open-npm huggingface dataset:
npm package: @messari/sdk
Description: Messari SDK provides a type-safe, intuitive interface for accessing Messari's suite of crypto data and AI APIs.
Author: Messari Engineering
Latest version: 0.0.10

# Messari SDK

Messari Typescript SDK is a convenient way to interact with Messari's APIs. It provides a type-safe, intuitive interface for accessing Messari's suite of crypto data and AI services.

## Features

- 🔒 **Type-safe**: Full TypeScript support with automatically generated types from OpenAPI specs
- 🚀 **Modern**: Built with modern TypeScript features and best practices
- 📚 **Well-documented**: Comprehensive documentation and examples
- 🔄 **Auto-generated**: API types and operations are automatically generated from OpenAPI specifications
- 🛠 **Developer-friendly**: Intuitive API design with built-in error handling

## Installation

```bash
# Using pnpm
pnpm add @messari/sdk
```

## Authorization

To use the SDK, you'll need a Messari API key. See our [docs](https://docs.messari.io/reference/introduction) for more information.


## API Services

| Service | Endpoint  |  Route |
|--------------|---------------|----------------|
| AI | Chat Completion | `/ai/v1/chat/completions` |
| AI | Entity Extraction | `/ai/v1/classification/extraction` | 


## Example Usage

For full examples, see the [Example Docs](https://docs.messari.io/recipes) or the [Examples Repo](https://github.com/messari/MessariKit/tree/master/packages/examples/src).

### AI Service

```typescript
import { MessariClient } from '@messari/sdk';

// Initialize the client
const client = new MessariClient({ apiKey: 'your-api-key' });

// Use the AI service
const response = await client.ai.createChatCompletion({
  messages: [
    {
      role: "user",
      content: "What companies have both paradigm and a16z on their cap table?",
    },
  ],
});
const assistantMessage = response.messages[0].content;
console.log(assistantMessage);
// The following companies have both Paradigm and a16z on their cap table:
// 1. OpenSea
// 2. Optimism
// 3. Phantom Wallet
// 4. Farcaster
// 5. Uniswap
// ...


// Extract entities from text
const entitiesResp = await client.ai.extractEntities({
    content: "Ethereum founder Vitalik Buterin announced...",
    entityTypes: ["person", "project"],
});

for (const entity of entitiesResp.extractedEntities) {
    if (entity.selectedEntity) {
        console.log(JSON.stringify(entity.selectedEntity, null, 2));
    }
}
// {
//   "name": "Ethereum",
//   "details": [
//     {
//       "id": "263d8b01-5a96-41f0-85d5-09687bbbf7ca",
//       "type": "PROJECT"
//     }
//   ],
//   "confidenceScore": "HIGH",
//   "relevanceScore": "HIGH"
// }
// {
//   "name": "Vitalik Buterin",
//   "details": [
//     {
//       "id": "77b6685d-fafa-4be2-8e79-563c438a880a",
//       "type": "PERSON"
//     }
//   ],
//   "confidenceScore": "HIGH",
//   "relevanceScore": "HIGH"
// }

```