UNPKG

@messari/sdk

Version:

Messari SDK provides a type-safe, intuitive interface for accessing Messari's suite of crypto data and AI APIs.

99 lines (78 loc) 2.72 kB
# 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" // } ```