Skip to main content
POST
/
ai
/
openai
/
chat
/
completions
Generate chat completions in OpenAI format
curl --request POST \
  --url https://api.messari.io/ai/openai/chat/completions \
  --header 'Content-Type: application/json' \
  --header 'X-Messari-API-Key: <api-key>' \
  --data '{
  "model": "messari",
  "messages": [
    {
      "role": "user",
      "content": "What is Solana?"
    }
  ]
}'
{
  "id": "b72679d2-2144-41f1-9a15-252df2f264b3",
  "object": "chat.completion",
  "created": 1762276239,
  "model": "messari-ai",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "# Solana Overview\n\nSolana is a Layer-1 blockchain network designed to provide a highly scalable infrastructure for decentralized applications (dapps). Its primary goal is to minimize performance constraints, such as transaction throughput limitations and high costs, typically faced by developers on other networks.\n\n## Core Features and Technology\n\nSolana is optimized for speed and efficiency, aiming to achieve high throughput without relying on second-layer or off-chain technologies.\n\n*   **Scalability and Throughput:** Solana uses a Proof of Stake (PoS) consensus mechanism combined with a unique innovation called Tower Consensus. This design allows the network to handle a high volume of transactions, with the capacity to process up to 710,000 transactions per second (TPS) at peak load.\n*   **Developer Support:** The network supports all LLVM-compatible smart contract languages, offering flexibility for developers.\n*   **Transaction Efficiency:** Solana is designed for sub-second settlement times and low transaction costs.\n*   **Token Extensions:** Developers launching SPL tokens on Solana can utilize various token extensions, such as Confidential Transfers, which hides transaction amounts to protect user balance confidentiality during transfers.\n\n## The SOL Token\n\nThe native token of the Solana network is **SOL**, which was launched alongside the Mainnet Beta in March 2020.\n\n*   **Transaction Fees:** Users pay fees in SOL for sending transactions and executing smart contracts. These fees include a static base fee plus a variable fee based on the computational resources used. Users can also include an optional \"prioritization fee\" to expedite transaction processing.\n*   **Staking and Governance:** SOL is also used for staking to secure the network and for on-chain governance.\n\n## Ecosystem and Use Cases\n\nSolana's infrastructure supports various applications and services, including:\n\n*   **Decentralized Finance (DeFi):** Projects like Ellipsis Labs' Phoenix, a spot limit order book implementation, are built on Solana to create efficient and scalable DeFi liquidity primitives.\n*   **Payments (Solana Pay):** Solana Pay is a protocol for payments that uses the blockchain to create new commerce rails for merchants, enabling secure payments without intermediaries.\n*   **Gaming and Customer Engagement:** Services like GameShift streamline the integration of Web3 features into games, handling interactions with Solana for self-custodied game assets and abstracted transaction fees. Bond is another platform powered by Solana designed to boost customer engagement for brands through digital collectibles, authentication, and loyalty programs.\n\n## Recent Market Sentiment\n\nRecent market activity suggests a strong institutional interest in Solana, contrasting with other major cryptocurrencies:\n\n*   **ETF Inflows:** In early November 2025, Solana ETFs attracted significant investment, totaling **$421 million in inflows** for the week. This was driven by the successful launch of new U.S.-based funds, such as Bitwise's Solana ETF, which reached $105 million in assets under management in its first week.\n*   **Market Divergence:** This surge in Solana investment occurred while Bitcoin and Ethereum products experienced significant outflows, indicating a divergence in institutional capital allocation. Solana's year-to-date inflows reached $3.3 billion.\n\n## Company Background\n\nSolana was founded in **2017** and is headquartered in San Francisco, CA. The company has raised a total of **$335 million** in funding."
      },
      "finish_reason": "stop"
    }
  ],
  "metadata": {
    "status": "Completed",
    "trace_id": "b72679d2-2144-41f1-9a15-252df2f264b3",
    "sources": [
      {
        "domain": "asset_profile",
        "url": "https://messari.io/asset/solana"
      },
      {
        "domain": "diligence",
        "title": "Diligence Report: General Information",
        "url": "https://messari.io/asset/solana/diligence-report#general_information"
      },
      {
        "domain": "diligence",
        "title": "Diligence Report: Token Economics",
        "url": "https://messari.io/asset/solana/diligence-report#token_usage_and_economics"
      },
      {
        "domain": "research_image",
        "title": "Solana Ecosystem Overview",
        "url": "https://cdn.sanity.io/images/2bt0j8lu/production/10299763330e60bae0a812764da7cbd1c3e3d153-1940x976.png?w=800"
      },
      {
        "domain": "research_image",
        "title": "Solana Deep Dive: Reframing The Narrative",
        "url": "https://cdn.sanity.io/images/2bt0j8lu/production/7a725362c19ddb5f7b089a68dcc13d416fa6726d-2782x1508.png?w=800"
      },
      {
        "domain": "news",
        "title": "What Is Solana? A Scalable, Decentralized Network for Dapps",
        "url": "https://decrypt.co/resources/what-is-solana-a-scalable-decentralized-network-for-dapps"
      },
      {
        "domain": "trending_topic",
        "title": "Warden Protocol's $900K Mindshare Leaderboard Launch",
        "url": "https://messari.io/topics"
      },
      {
        "domain": "trending_topic",
        "title": "Wintermute Denies Binance Lawsuit Rumors Amid CZ's ASTER Investment",
        "url": "https://messari.io/topics"
      },
      {
        "domain": "trending_topic",
        "title": "Wallchain's Quack Reward System and Project Campaigns",
        "url": "https://messari.io/topics"
      },
      {
        "domain": "trending_topic",
        "title": "Billion-Dollar Liquidation Cascade",
        "url": "https://messari.io/topics"
      },
      {
        "domain": "trending_topic",
        "title": "ETF Flow Divergence: Bitcoin Outflows vs Solana Surge",
        "url": "https://messari.io/topics"
      },
      {
        "domain": "webcrawl",
        "url": "https://www.kraken.com/prices/solana"
      },
      {
        "domain": "webcrawl",
        "title": "Solana Company Profile 2025: Valuation, Funding & Investors | PitchBook",
        "url": "https://pitchbook.com/profiles/company/227820-52"
      },
      {
        "domain": "webcrawl",
        "title": "Solana - Products, Competitors, Financials, Employees, Headquarters Locations",
        "url": "https://www.cbinsights.com/company/solana-labs"
      },
      {
        "domain": "webcrawl",
        "title": "There are no bad questions about... blockchain payments | Solana",
        "url": "https://solana.com/learn/payments"
      }
    ]
  }
}
It follows OpenAI’s chat completions API specification for easy integration with libraries like OpenAI’s official python SDK. If you’d like to play around with the responses feel free to try on the Messari web-app, it uses the same underlying endpoint implementation. The chat completion endpoint leverages a graph architecture with agents to:
  • Access Messari’s real-time quantitative (compute) dataset which includes but is not limited to: Market data, Asset metrics, Fundraising, Token unlocks
  • Access Messari’s qualitative (search) dataset which includes but is not limited to: News, Blogs, Youtube transcriptions, RSS-feeds, Twitter, Webcrawl documents, Proprietary datasets of: Research, Quarterlies, Diligence Reports
  • Generate market insights and analysis
  • Process natural language queries about crypto assets, protocols and projects
For a more interactive experience trying out the API, here is our Replit in Typescript. Simply populate the API_KEY field with your Enterprise API key generated in the Messari Account > API page of our webapp and you’re off!

Request Params

verbosity

The verbosity parameter controls the level of detail in the model’s response. When set to "verbose", the model provides more comprehensive and detailed explanations, including additional context, examples, and supporting information. Other possible values might include "balanced" or "succinct" for shorter responses. Example usage:
{
  "verbosity": "verbose"
}

response_format

The response_format parameter specifies the desired formatting style for the model’s response. When set to "markdown", the output will be formatted using Markdown syntax, allowing for structured text with headings, lists, code blocks, and other formatting elements. Other common option might include "text". Example usage:
{
  "response_format": "markdown"
}

inline_citations

The inline_citations parameter determines whether the response metadata should include citations within its response text. When set to true, the model will reference sources directly in the text where information is being drawn from. This is particularly useful for academic, research, or factual content where attribution is important. Example usage:
{
  "inline_citations": true
}

stream

The stream parameter controls whether the API response is delivered as a complete response or as a stream of partial responses. When set to false, the API will wait until the entire response is generated and then deliver it in one piece. When set to true, the API would begin sending partial responses as they are generated, useful for implementing real-time typing effects or processing responses incrementally. Example usage:
{
  "stream": false
}
The generate_related_questions parameter determines whether the response metadata should include AI-generated related questions to the user query. This feature is useful for receiving follow up questions as part of the API response payload to prompt the user with potential next questions. Note: A maximum of 5 is allowed. Example usage:
{
  "generate_related_questions": 2
}

Authorizations

X-Messari-API-Key
string
header
required

Body

application/json
messages
object[]
required

Array of messages in the conversation history

allow_clarification_query
boolean
default:true

Whether the AI can ask for clarification when the query is ambiguous

Adds AI generated related questions to use as follow up questions

inline_citations
boolean
default:true

Adds inline citation document references in the payload metadata

response_format
string
default:markdown

Text format for the response. Values accepted are 'markdown' and 'plaintext'.

stream
boolean
default:false

Stream the response through the API

verbosity
string
default:balanced

Controls the length and detail level of the AI-generated response. Values accepted are 'succinct', 'balanced', and 'verbose'.

Response

Default response

choices
object[]
required

Array of completion choices

created
integer
required

Unix timestamp when the completion was created

id
string
required

Unique identifier for the completion request

model
string
required

Model used for the completion

object
string
required

Type of object returned, always 'chat.completion'

metadata
object

Additional metadata about the completion