MarketAux Entities API
Entity statistics, trending entities, entity search, and entity metadata.
Entity statistics, trending entities, entity search, and entity metadata.
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/marketaux-entities-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: Marketaux Entities API
description: Global financial and stock market news API. Generate news feeds filtered by entity symbol, type, exchange, industry, country and more, with per-entity sentiment and match scores. Covers 5,000+ news sources globally in 30+ languages, tracking 200,000+ entities across 80+ markets. Also provides entity statistics (time series and aggregations) and trending-entity endpoints for charting the best and worst performing entities in the news.
version: v1
termsOfService: https://www.marketaux.com/tos
contact:
url: https://www.marketaux.com/contact
servers:
- url: https://api.marketaux.com
security:
- apiToken: []
tags:
- name: Entities
description: Entity statistics, trending entities, entity search, and entity metadata.
paths:
/v1/entity/stats/intraday:
get:
operationId: getEntityStatsIntraday
tags:
- Entities
summary: Entity stats (time series)
description: Get an intraday view of how well entities performed over different intervals. Find the best or worst performing entities broken down to every minute, hour, day, week, month, quarter or year. Useful for comparing entities and creating graphs and charts. Available on Standard plans and above.
parameters:
- name: interval
in: query
description: 'The interval of the time series. Maximum time frame per interval (from the published_before date): minute = 7 days, hour = 1 month, day = 3 years, week = 5 years, month = 5 years, quarter = 10 years, year = 10 years. If the time frame is exceeded the maximum is applied without error.'
schema:
type: string
enum:
- minute
- hour
- day
- week
- month
- quarter
- year
default: day
- $ref: '#/components/parameters/groupBy'
- $ref: '#/components/parameters/minDocCount'
- $ref: '#/components/parameters/symbols'
- $ref: '#/components/parameters/entityTypes'
- $ref: '#/components/parameters/industries'
- $ref: '#/components/parameters/countries'
- $ref: '#/components/parameters/sentimentAvgGte'
- $ref: '#/components/parameters/sentimentAvgLte'
- $ref: '#/components/parameters/sentimentGte'
- $ref: '#/components/parameters/sentimentLte'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/domains'
- $ref: '#/components/parameters/excludeDomains'
- $ref: '#/components/parameters/sourceIds'
- $ref: '#/components/parameters/excludeSourceIds'
- $ref: '#/components/parameters/language'
- $ref: '#/components/parameters/publishedBefore'
- $ref: '#/components/parameters/publishedAfter'
- $ref: '#/components/parameters/publishedOn'
- $ref: '#/components/parameters/statsSort'
- $ref: '#/components/parameters/statsSortOrder'
- name: date_order
in: query
description: Ordering of the date keys. Default desc.
schema:
type: string
enum:
- desc
- asc
default: desc
- $ref: '#/components/parameters/limit'
responses:
'200':
description: Time-series buckets of entity document counts and average sentiment.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/EntityStatsBucket'
'400':
$ref: '#/components/responses/MalformedParameters'
'401':
$ref: '#/components/responses/InvalidApiToken'
'402':
$ref: '#/components/responses/UsageLimitReached'
'403':
$ref: '#/components/responses/EndpointAccessRestricted'
'429':
$ref: '#/components/responses/RateLimitReached'
'500':
$ref: '#/components/responses/ServerError'
'503':
$ref: '#/components/responses/MaintenanceMode'
/v1/entity/stats/aggregation:
get:
operationId: getEntityStatsAggregation
tags:
- Entities
summary: Entity stats (aggregation)
description: Similar to the entity stats time series endpoint, this returns an aggregation of entities for a single time frame rather than being broken down by date. Useful to find the best or worst performing stocks. Available on Standard plans and above.
parameters:
- $ref: '#/components/parameters/groupBy'
- $ref: '#/components/parameters/minDocCount'
- $ref: '#/components/parameters/symbols'
- $ref: '#/components/parameters/entityTypes'
- $ref: '#/components/parameters/industries'
- $ref: '#/components/parameters/countries'
- $ref: '#/components/parameters/sentimentAvgGte'
- $ref: '#/components/parameters/sentimentAvgLte'
- $ref: '#/components/parameters/sentimentGte'
- $ref: '#/components/parameters/sentimentLte'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/domains'
- $ref: '#/components/parameters/excludeDomains'
- $ref: '#/components/parameters/sourceIds'
- $ref: '#/components/parameters/excludeSourceIds'
- $ref: '#/components/parameters/language'
- $ref: '#/components/parameters/publishedBefore'
- $ref: '#/components/parameters/publishedAfter'
- $ref: '#/components/parameters/publishedOn'
- $ref: '#/components/parameters/statsSort'
- $ref: '#/components/parameters/statsSortOrder'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: Aggregated entity document counts and average sentiment for a single time frame.
content:
application/json:
schema:
type: object
properties:
meta:
$ref: '#/components/schemas/AggregationMeta'
data:
type: array
items:
$ref: '#/components/schemas/EntityAggregation'
'400':
$ref: '#/components/responses/MalformedParameters'
'401':
$ref: '#/components/responses/InvalidApiToken'
'402':
$ref: '#/components/responses/UsageLimitReached'
'403':
$ref: '#/components/responses/EndpointAccessRestricted'
'429':
$ref: '#/components/responses/RateLimitReached'
'500':
$ref: '#/components/responses/ServerError'
'503':
$ref: '#/components/responses/MaintenanceMode'
/v1/entity/trending/aggregation:
get:
operationId: getTrendingEntities
tags:
- Entities
summary: Trending entities
description: Identify trending entities. Filter by time frame and more; e.g. find which stocks were trending on a specific day, within the past 24 hours, past 7 days, etc. Available on Standard plans and above.
parameters:
- $ref: '#/components/parameters/groupBy'
- $ref: '#/components/parameters/minDocCount'
- $ref: '#/components/parameters/symbols'
- $ref: '#/components/parameters/entityTypes'
- $ref: '#/components/parameters/industries'
- $ref: '#/components/parameters/countries'
- $ref: '#/components/parameters/sentimentAvgGte'
- $ref: '#/components/parameters/sentimentAvgLte'
- $ref: '#/components/parameters/sentimentGte'
- $ref: '#/components/parameters/sentimentLte'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/domains'
- $ref: '#/components/parameters/excludeDomains'
- $ref: '#/components/parameters/sourceIds'
- $ref: '#/components/parameters/excludeSourceIds'
- $ref: '#/components/parameters/language'
- $ref: '#/components/parameters/publishedBefore'
- $ref: '#/components/parameters/publishedAfter'
- $ref: '#/components/parameters/publishedOn'
- $ref: '#/components/parameters/statsSort'
- $ref: '#/components/parameters/statsSortOrder'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: Trending entities with document counts, average sentiment, and trending score.
content:
application/json:
schema:
type: object
properties:
meta:
$ref: '#/components/schemas/AggregationMeta'
data:
type: array
items:
$ref: '#/components/schemas/TrendingEntity'
'400':
$ref: '#/components/responses/MalformedParameters'
'401':
$ref: '#/components/responses/InvalidApiToken'
'402':
$ref: '#/components/responses/UsageLimitReached'
'403':
$ref: '#/components/responses/EndpointAccessRestricted'
'429':
$ref: '#/components/responses/RateLimitReached'
'500':
$ref: '#/components/responses/ServerError'
'503':
$ref: '#/components/responses/MaintenanceMode'
/v1/entity/search:
get:
operationId: searchEntities
tags:
- Entities
summary: Entity search
description: Search for all entities supported by Marketaux. The limit is 50 for all requests. Available on all plans.
parameters:
- name: search
in: query
description: Dynamic search function to find entities.
schema:
type: string
- $ref: '#/components/parameters/symbols'
- name: exchanges
in: query
description: Filter results by specific exchanges. Comma separated list.
schema:
type: string
- name: types
in: query
description: Filter results by entity types. Comma separated list.
schema:
type: string
- name: industries
in: query
description: Filter results by industries. Comma separated list.
schema:
type: string
- name: countries
in: query
description: Filter results by ISO 3166-1 two-letter country code of the exchange. Comma separated list.
schema:
type: string
- $ref: '#/components/parameters/page'
responses:
'200':
description: Matching entities.
content:
application/json:
schema:
type: object
properties:
meta:
$ref: '#/components/schemas/PaginationMeta'
data:
type: array
items:
$ref: '#/components/schemas/EntitySearchResult'
example:
meta:
found: 1
returned: 1
limit: 50
page: 1
data:
- symbol: TSLA
name: Tesla, Inc.
type: equity
industry: Consumer Cyclical
exchange: null
exchange_long: null
country: us
'400':
$ref: '#/components/responses/MalformedParameters'
'401':
$ref: '#/components/responses/InvalidApiToken'
'402':
$ref: '#/components/responses/UsageLimitReached'
'429':
$ref: '#/components/responses/RateLimitReached'
'500':
$ref: '#/components/responses/ServerError'
'503':
$ref: '#/components/responses/MaintenanceMode'
/v1/entity/type/list:
get:
operationId: listEntityTypes
tags:
- Entities
summary: Entity type list
description: Return all supported entity types. Available on all plans.
responses:
'200':
description: Supported entity types.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: string
example:
data:
- equity
- index
- etf
- mutualfund
- currency
- cryptocurrency
'401':
$ref: '#/components/responses/InvalidApiToken'
'402':
$ref: '#/components/responses/UsageLimitReached'
'429':
$ref: '#/components/responses/RateLimitReached'
'500':
$ref: '#/components/responses/ServerError'
'503':
$ref: '#/components/responses/MaintenanceMode'
/v1/entity/industry/list:
get:
operationId: listEntityIndustries
tags:
- Entities
summary: Industry list
description: Return all supported entity industries. Available on all plans.
responses:
'200':
description: Supported entity industries.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: string
example:
data:
- Technology
- Industrials
- N/A
- Consumer Cyclical
- Healthcare
- Communication Services
- Financial Services
- Consumer Defensive
- Basic Materials
- Real Estate
- Energy
- Utilities
- Financial
- Services
- Consumer Goods
- Industrial Goods
'401':
$ref: '#/components/responses/InvalidApiToken'
'402':
$ref: '#/components/responses/UsageLimitReached'
'429':
$ref: '#/components/responses/RateLimitReached'
'500':
$ref: '#/components/responses/ServerError'
'503':
$ref: '#/components/responses/MaintenanceMode'
components:
parameters:
entityTypes:
name: entity_types
in: query
description: 'Specify the type of entities identified within the article. Comma separated. Example: entity_types=index,equity'
schema:
type: string
statsSort:
name: sort
in: query
description: Sort by total_documents or sentiment_avg. Default total_documents.
schema:
type: string
enum:
- total_documents
- sentiment_avg
default: total_documents
publishedBefore:
name: published_before
in: query
description: 'Find all articles published before the specified date. Supported formats: Y-m-d\TH:i:s | Y-m-d\TH:i | Y-m-d\TH | Y-m-d | Y-m | Y. All dates are UTC.'
schema:
type: string
search:
name: search
in: query
description: 'Full-text search over article body and title. Supports advanced query syntax: + (AND), | (OR), - (negate), quotes (phrase), * (prefix), parentheses (precedence); escape literals with a backslash. Example: "ipo" -nyse'
schema:
type: string
groupBy:
name: group_by
in: query
description: Group results by symbol, exchange, industry or country. Default symbol.
schema:
type: string
enum:
- symbol
- exchange
- industry
- country
default: symbol
excludeDomains:
name: exclude_domains
in: query
description: Comma separated list of domains to exclude.
schema:
type: string
sentimentLte:
name: sentiment_lte
in: query
description: Find all articles with entities with a sentiment_score less than or equal to x.
schema:
type: number
minimum: -1
maximum: 1
sentimentAvgGte:
name: sentiment_avg_gte
in: query
description: Refine results to entities with an overall sentiment_avg greater than or equal to x.
schema:
type: number
minimum: -1
maximum: 1
industries:
name: industries
in: query
description: 'Specify the industries of entities identified within the article. Comma separated. Example: industries=Technology,Industrials'
schema:
type: string
publishedAfter:
name: published_after
in: query
description: 'Find all articles published after the specified date. Supported formats: Y-m-d\TH:i:s | Y-m-d\TH:i | Y-m-d\TH | Y-m-d | Y-m | Y. All dates are UTC.'
schema:
type: string
domains:
name: domains
in: query
description: 'Comma separated list of domains to include. Obtain domains from the sources endpoint. Example: adweek.com,adage.com'
schema:
type: string
sourceIds:
name: source_ids
in: query
description: 'Comma separated list of source_ids to include. Obtain source_ids from the sources endpoint. Example: adweek.com-1,adage.com-1'
schema:
type: string
language:
name: language
in: query
description: 'Comma separated list of languages to include (e.g. en,es). Default is all. Supported languages: ar, bg, bn, cs, da, de, el, en, es, et, fa, fi, fr, he, hi, hr, hu, id, it, ja, ko, lt, multi, nl, no, pl, pt, ro, ru, sk, sv, ta, th, tr, uk, vi, zh.'
schema:
type: string
statsSortOrder:
name: sort_order
in: query
description: Sort order of the sort parameter. Default desc.
schema:
type: string
enum:
- desc
- asc
default: desc
minDocCount:
name: min_doc_count
in: query
description: The minimum number of total_documents an entity should be identified within to be returned with the results.
schema:
type: integer
excludeSourceIds:
name: exclude_source_ids
in: query
description: Comma separated list of source_ids to exclude.
schema:
type: string
countries:
name: countries
in: query
description: 'Specify the country of the exchange of which entities have been identified within the article. Comma separated. Example: countries=us,ca'
schema:
type: string
limit:
name: limit
in: query
description: Number of results to return. The maximum limit is based on your plan; the default limit is the maximum specified for your plan.
schema:
type: integer
publishedOn:
name: published_on
in: query
description: 'Find all articles published on the specified date. Supported format: Y-m-d.'
schema:
type: string
sentimentGte:
name: sentiment_gte
in: query
description: Find all articles with entities with a sentiment_score greater than or equal to x. Sentiment is between -1 and +1; 0 = neutral, above 0 = positive, below 0 = negative.
schema:
type: number
minimum: -1
maximum: 1
symbols:
name: symbols
in: query
description: 'Specify entity symbol(s) which have been identified within the article. Comma separated. Example: symbols=TSLA,AMZN,MSFT'
schema:
type: string
sentimentAvgLte:
name: sentiment_avg_lte
in: query
description: Refine results to entities with an overall sentiment_avg less than or equal to x.
schema:
type: number
minimum: -1
maximum: 1
page:
name: page
in: query
description: Paginate through the result set. Default 1. The max result set cannot exceed 20,000 (e.g. with limit 50 the max page is 400).
schema:
type: integer
default: 1
responses:
UsageLimitReached:
description: 'usage_limit_reached: Usage limit of your plan has been reached. Usage limit and remaining requests can be found on the X-UsageLimit-Limit header.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
InvalidApiToken:
description: 'invalid_api_token: Invalid API token.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error:
code: invalid_api_token
message: An invalid API token was supplied.
MalformedParameters:
description: 'malformed_parameters: Validation of parameters failed. The failed parameters are usually shown in the error message.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
MaintenanceMode:
description: 'maintenance_mode: The service is currently under maintenance.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
RateLimitReached:
description: 'rate_limit_reached: Too many requests in the past 60 seconds. Rate limit and remaining requests can be found on the X-RateLimit-Limit header.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
ServerError:
description: 'server_error: A server error occurred.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
EndpointAccessRestricted:
description: 'endpoint_access_restricted: Access to the endpoint is not available on your current subscription plan.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
EntitySearchResult:
type: object
description: An entity supported by Marketaux.
properties:
symbol:
type: string
description: Unique entity symbol (or ticker).
name:
type: string
description: Entity name.
type:
type: string
description: The entity type.
industry:
type: string
description: The entity industry.
exchange:
type:
- string
- 'null'
description: The exchange identifier.
exchange_long:
type:
- string
- 'null'
description: The exchange name.
country:
type: string
description: The ISO 3166-1 two-letter country code of the exchange locale ('eu' and 'global' are also included).
AggregationMeta:
type: object
description: Metadata returned on aggregation endpoints.
properties:
returned:
type: integer
description: The number of entities returned.
limit:
type: integer
description: The limit based on the limit parameter.
PaginationMeta:
type: object
description: Pagination metadata returned on list endpoints.
properties:
found:
type: integer
description: The number of results found for the request.
returned:
type: integer
description: The number of results returned on the page. If lower than limit, there are no more results after this page.
limit:
type: integer
description: The limit based on the limit parameter.
page:
type: integer
description: The page number based on the page parameter.
TrendingEntity:
allOf:
- $ref: '#/components/schemas/EntityAggregation'
- type: object
properties:
score:
type: number
description: The relevance score for the trending entity.
example:
key: NVDA
total_documents: 22
sentiment_avg: 0.436025815253908
score: 3.7920454395721324
EntityAggregation:
type: object
description: Aggregated document count and sentiment for a grouped key.
properties:
key:
type: string
description: The key based on the group_by parameter (symbol, exchange, industry or country).
total_documents:
type: integer
description: Total number of documents identified for the key based on the query parameters.
sentiment_avg:
type:
- number
- 'null'
description: Average sentiment of the key based on the query parameters.
example:
key: TSLA
total_documents: 14
sentiment_avg: 0.388841356283852
EntityStatsBucket:
type: object
description: One time-series bucket of entity statistics.
properties:
date:
type: string
description: Date of the time series data.
data:
type: array
items:
$ref: '#/components/schemas/EntityAggregation'
example:
date: '2024-11-10T00:00:00.000Z'
data:
- key: TSLA
total_documents: 14
sentiment_avg: 0.388841356283852
Error:
type: object
description: Marketaux error envelope.
properties:
error:
type: object
properties:
code:
type: string
description: Machine-readable error code.
message:
type: string
description: Human-readable error message.
example:
error:
code: malformed_parameters
message: The published_before parameter(s) are incorrectly formatted.
securitySchemes:
apiToken:
type: apiKey
in: query
name: api_token
description: Your API token, found on your account dashboard after signing up at https://www.marketaux.com/register. Passed as a GET parameter on every request.
externalDocs:
description: Marketaux API documentation
url: https://www.marketaux.com/documentation
x-provenance:
generated: '2026-07-22'
method: generated
source: https://www.marketaux.com/documentation
note: Marketaux publishes no machine-readable API definition (probes of www.marketaux.com and api.marketaux.com for /openapi.json, /openapi.yaml, /swagger.json, /v1/openapi.json and /api-docs all returned 404 on 2026-07-22). This OpenAPI was generated faithfully from the published HTML API documentation; every path, parameter, response field, and error code below is documented at the source URL. Example values are taken verbatim from the documentation.