Adanos Market Sentiment API Finance Sentiment API
Direct finance-tuned sentiment analysis for client-provided trading, market and investment text.
Direct finance-tuned sentiment analysis for client-provided trading, market and investment text.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/adanos-market-sentiment-api-finance-sentiment-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Adanos Market Sentiment Finance Sentiment API
version: 1.50.0
contact:
name: API Support
url: https://api.adanos.org/
email: support@adanos.org
license:
name: MIT (OpenAPI document only)
url: https://opensource.org/licenses/MIT
termsOfService: https://adanos.org/terms
description: 'Operations tagged Finance Sentiment across 2 of this provider''s published API definitions: adanos-market-sentiment-api-openapi.json, adanos-market-sentiment-api-sentiment-openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.adanos.org
description: Production
tags:
- name: Finance Sentiment
description: Direct finance-tuned sentiment analysis for client-provided trading, market and investment text.
paths:
/sentiment/v1/analyze:
post:
tags:
- Finance Sentiment
summary: Analyze finance sentiment
description: '**Professional account required.** Free and Hobby accounts cannot use this endpoint.
Analyze a single financial or trading text using the Adanos finance-tuned sentiment engine.'
operationId: analyzeSentimentText
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SentimentAnalyzeRequest'
example:
text: TSLA looks like a short squeeze setup, loading calls
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SentimentAnalyzeResponse'
example:
text: TSLA looks like a short squeeze setup, loading calls
sentiment_score: 0.78
sentiment_label: positive
components:
engine_version: '5.4'
vader_compound: 0.34
roberta_score: 0.61
emoji_score: 0.0
phrase_adjustment: 0.21
phrase_matches:
- phrase: short squeeze
score: 3.5
contextual_finance_matches: []
headers:
X-Request-ID:
description: Request correlation identifier returned by the API and included in structured application logs.
schema:
type: string
example: adnos.req-20260423.abc12345
'401':
description: Authentication failed
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
missing:
summary: Missing API key
value:
detail: Missing API key. Include 'X-API-Key' header.
invalid:
summary: Invalid API key
value:
detail: Invalid API key.
revoked:
summary: Revoked API key
value:
detail: API key has been revoked.
'429':
description: Rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
examples:
burst:
summary: Fleet burst limit exceeded
value:
detail:
error: Burst rate limit exceeded
message: Too many requests. Limit is 100 requests per minute.
limit: 100
used: 100
account_type: free
local:
summary: Local backup limiter exceeded
value:
detail:
error: Rate limit exceeded
message: 'Rate limit exceeded: 100 per 1 minute'
limit: 100
account_type: free
'503':
description: Sentiment inference service unavailable
headers:
Retry-After:
description: Seconds clients should wait before retrying
schema:
type: integer
example: 5
content:
application/json:
example:
detail: Sentiment inference service unavailable.
'422':
description: Request body validation failed
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
example:
detail:
- loc:
- body
- text
msg: String should have at least 1 character
type: string_too_short
input: ''
ctx:
min_length: 1
'403':
description: Professional account required
content:
application/json:
example:
detail:
error: Professional account required
message: 'This endpoint requires a Professional account. Upgrade to Professional: https://adanos.org/pricing'
account_type: free
security:
- ApiKeyAuth: []
servers:
- url: https://api.adanos.org
description: Production
/analyze:
post:
tags:
- Finance Sentiment
summary: Analyze finance sentiment
description: '**Professional account required.** Free and Hobby accounts cannot use this endpoint.
Analyze a single financial or trading text using the Adanos finance-tuned sentiment engine.'
operationId: analyzeSentimentText
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SentimentAnalyzeRequest'
example:
text: TSLA looks like a short squeeze setup, loading calls
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SentimentAnalyzeResponse'
example:
text: TSLA looks like a short squeeze setup, loading calls
sentiment_score: 0.78
sentiment_label: positive
components:
engine_version: '5.4'
vader_compound: 0.34
roberta_score: 0.61
emoji_score: 0.0
phrase_adjustment: 0.21
phrase_matches:
- phrase: short squeeze
score: 3.5
contextual_finance_matches: []
headers:
X-Request-ID:
description: Request correlation identifier returned by the API and included in structured application logs.
schema:
type: string
example: adnos.req-20260423.abc12345
'401':
description: Authentication failed
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
missing:
summary: Missing API key
value:
detail: Missing API key. Include 'X-API-Key' header.
invalid:
summary: Invalid API key
value:
detail: Invalid API key.
revoked:
summary: Revoked API key
value:
detail: API key has been revoked.
'429':
description: Rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
examples:
burst:
summary: Fleet burst limit exceeded
value:
detail:
error: Burst rate limit exceeded
message: Too many requests. Limit is 100 requests per minute.
limit: 100
used: 100
account_type: free
local:
summary: Local backup limiter exceeded
value:
detail:
error: Rate limit exceeded
message: 'Rate limit exceeded: 100 per 1 minute'
limit: 100
account_type: free
'503':
description: Sentiment inference service unavailable
headers:
Retry-After:
description: Seconds clients should wait before retrying
schema:
type: integer
example: 5
content:
application/json:
example:
detail: Sentiment inference service unavailable.
'422':
description: Request body validation failed
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
example:
detail:
- loc:
- body
- text
msg: String should have at least 1 character
type: string_too_short
input: ''
ctx:
min_length: 1
'403':
description: Professional account required
content:
application/json:
example:
detail:
error: Professional account required
message: 'This endpoint requires a Professional account. Upgrade to Professional: https://adanos.org/pricing'
account_type: free
security:
- ApiKeyAuth: []
components:
schemas:
SentimentPhraseMatch:
properties:
phrase:
type: string
title: Phrase
description: Matched finance phrase
examples:
- short squeeze
score:
type: number
title: Score
description: Internal phrase sentiment score
examples:
- 3.5
type: object
required:
- phrase
- score
title: SentimentPhraseMatch
description: Whitelisted directional finance phrase metadata.
HTTPValidationError:
properties:
detail:
anyOf:
- items:
$ref: '#/components/schemas/ValidationError'
type: array
- type: 'null'
title: Detail
description: Validation error details
type: object
title: HTTPValidationError
description: FastAPI/Pydantic validation error response.
examples:
- detail:
- loc:
- query
- days
msg: Input should be greater than or equal to 1
type: greater_than_equal
SentimentAnalyzeRequest:
properties:
text:
type: string
maxLength: 2048
minLength: 1
title: Text
description: Financial or trading text to analyze.
examples:
- TSLA looks like a short squeeze setup, loading calls
type: object
required:
- text
title: SentimentAnalyzeRequest
description: Direct text sentiment analysis request.
examples:
- text: TSLA looks like a short squeeze setup, loading calls
ErrorResponse:
properties:
detail:
type: string
title: Detail
description: Human-readable error message
examples:
- Invalid API key.
type: object
required:
- detail
title: ErrorResponse
description: Standard error response.
examples:
- detail: Missing API key. Include 'X-API-Key' header.
- detail: Invalid API key.
- detail: API key has been revoked.
- detail: 'Rate limit exceeded: 100 per 1 minute'
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Loc
description: Location of the invalid input
msg:
type: string
title: Msg
description: Validation failure message
type:
type: string
title: Type
description: Validation error type
type: object
required:
- loc
- msg
- type
title: ValidationError
description: FastAPI/Pydantic validation error item.
examples:
- loc:
- query
- days
msg: Input should be greater than or equal to 1
type: greater_than_equal
RateLimitError:
properties:
detail:
$ref: '#/components/schemas/RateLimitErrorDetail'
description: Structured rate-limit details
type: object
required:
- detail
title: RateLimitError
description: Error response for rate-limit exceeded responses.
SentimentAnalyzeResponse:
properties:
text:
type: string
title: Text
description: Normalized input text that was analyzed
sentiment_score:
type: number
maximum: 1.0
minimum: -1.0
title: Sentiment Score
description: -1.0 bearish to +1.0 bullish
examples:
- 0.78
sentiment_label:
type: string
enum:
- positive
- neutral
- negative
title: Sentiment Label
description: Adanos three-class sentiment label, matching top_mentions payloads
examples:
- positive
components:
$ref: '#/components/schemas/SentimentComponents'
description: Whitelisted finance sentiment engine components
type: object
required:
- text
- sentiment_score
- sentiment_label
- components
title: SentimentAnalyzeResponse
description: Direct text sentiment analysis response.
examples:
- text: TSLA looks like a short squeeze setup, loading calls
sentiment_score: 0.78
sentiment_label: positive
components:
engine_version: '5.4'
vader_compound: 0.34
roberta_score: 0.61
emoji_score: 0.0
phrase_adjustment: 0.21
phrase_matches:
- phrase: short squeeze
score: 3.5
contextual_finance_matches: []
SentimentComponents:
properties:
engine_version:
type: string
title: Engine Version
description: Sentiment engine version
examples:
- '5.4'
vader_compound:
anyOf:
- type: number
maximum: 1.0
minimum: -1.0
- type: 'null'
title: Vader Compound
description: VADER compound score after finance lexicon tuning
examples:
- 0.34
roberta_score:
anyOf:
- type: number
maximum: 1.0
minimum: -1.0
- type: 'null'
title: Roberta Score
description: RoBERTa ONNX sentiment score when ensemble inference runs
examples:
- 0.61
emoji_score:
type: number
maximum: 1.0
minimum: -1.0
title: Emoji Score
description: Emoji-derived sentiment score
examples:
- 0.6
phrase_adjustment:
type: number
title: Phrase Adjustment
description: Directional finance phrase adjustment
examples:
- 0.21
phrase_matches:
items:
$ref: '#/components/schemas/SentimentPhraseMatch'
type: array
title: Phrase Matches
description: Directional finance phrases matched by the engine
contextual_finance_matches:
items:
type: string
type: array
title: Contextual Finance Matches
description: Contextual finance phrases that dampened or informed scoring
examples:
- - covered calls
type: object
required:
- engine_version
- emoji_score
- phrase_adjustment
title: SentimentComponents
description: Whitelisted sentiment engine components exposed publicly.
RateLimitErrorDetail:
properties:
error:
type: string
title: Error
description: Error type identifier
message:
type: string
title: Message
description: Human-readable error message
limit:
anyOf:
- type: integer
- type: 'null'
title: Limit
description: Applied request limit for the window
used:
anyOf:
- type: integer
- type: 'null'
title: Used
description: Requests used in the current window
remaining:
anyOf:
- type: integer
- type: 'null'
title: Remaining
description: Requests remaining in the current window
account_type:
type: string
title: Account Type
description: Resolved account type or fallback tier
reset_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Reset At
description: ISO 8601 timestamp when the current window resets
contact:
anyOf:
- type: string
- type: 'null'
title: Contact
description: Plan or support URL for resolving the limit
type: object
required:
- error
- message
- account_type
title: RateLimitErrorDetail
description: Structured rate-limit error detail.
securitySchemes:
ApiKeyAuth:
type: apiKey
description: 'API key for authentication.
Get your API key at https://adanos.org/register.
Format: `sk_live_` followed by 32 hexadecimal characters. Example: `REDACTED_STRIPE_KEY`.'
in: header
name: X-API-Key
x-refined-from:
- adanos-market-sentiment-api-openapi.json
- adanos-market-sentiment-api-sentiment-openapi.yaml