drillr Public Data API Analyst API
Analyst consensus and individual rating events (US only)
Analyst consensus and individual rating events (US only)
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/drillr-analyst-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: drillr Public Data Analyst API
version: 2.0.0-spec.110
description: 'REST endpoints over the same tables the drillr app runs on: fundamentals, filings, earnings, ownership, events, executives, analyst data and news for US, Japan and China equities.'
termsOfService: https://drillr.ai/legal/terms
contact:
name: drillr developer support
url: https://drillr.ai/docs
email: support@lil-grebe.com
license:
name: drillr Terms of Service
url: https://drillr.ai/legal/terms
x-logo:
url: https://drillr.ai/images/brand/logo_512_optimized.png
altText: drillr
servers:
- url: https://gateway.drillr.ai
security:
- ApiKeyAuth: []
tags:
- name: Analyst
description: Analyst consensus and individual rating events (US only)
paths:
/api/v2/analyst-consensus:
get:
operationId: publicDataV2AnalystConsensus
tags:
- Analyst
summary: Get self-built analyst consensus
description: 'Returns the analyst consensus for a stock: the five-tier distribution (strong buy to strong sell) of each firm''s latest rating within the last 90 days, plus the mean / high / low price target, one row per ticker. Aggregated results only; this platform''s own ratings are not included.
Example request: `GET /api/v2/analyst-consensus?ticker=NVDA,AMD`'
security:
- ApiKeyAuth: []
x-credits: 0.02 cr per call
x-refresh: daily 23:00 UTC
parameters:
- name: ticker
in: query
required: true
style: form
explode: false
schema:
type: array
items:
type: string
minItems: 1
maxItems: 50
responses:
'200':
description: Successful Public Data API response
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PublicAnalystConsensusItem'
required:
- data
additionalProperties: false
example:
data:
- ticker: NVDA
total_analysts: 47
strong_buy: 6
buy: 24
hold: 15
sell: 2
strong_sell: 0
consensus_rating: buy
price_target_consensus: 172.5
price_target_high: 220
price_target_low: 120
price_target_count: 41
'400':
description: Bad request (invalid or unsupported parameter)
content:
application/json:
schema:
$ref: '#/components/schemas/PublicDataError'
'401':
description: Invalid or missing API key
content:
application/json:
schema:
$ref: '#/components/schemas/PublicDataError'
'402':
description: Insufficient credits
content:
application/json:
schema:
$ref: '#/components/schemas/PublicDataError'
'404':
description: Ticker not found, market not covered, or dataset not available
content:
application/json:
schema:
$ref: '#/components/schemas/PublicDataError'
'429':
description: Rate limited
content:
application/json:
schema:
$ref: '#/components/schemas/PublicDataError'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/PublicDataError'
'503':
description: Service unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/PublicDataError'
/api/v2/analyst-ratings:
get:
operationId: publicDataV2AnalystRatings
tags:
- Analyst
summary: Get self-parsed analyst rating events
description: 'Returns individual analyst rating and price target changes: which firm upgraded, downgraded or maintained a rating on which day, and what the price target moved from and to, one row per event, ordered by `date desc, published_at desc`. Sourced from news reports; every row carries the firm name `firm` and a link to the source article `source_url`, and events missing either are not exposed. Firm level only, with no individual analyst names.
Example request: `GET /api/v2/analyst-ratings?ticker=NVDA&from=2026-07-01&to=2026-07-31`'
security:
- ApiKeyAuth: []
x-credits: 0.02 cr per call
x-refresh: daily 23:00 UTC
parameters:
- name: ticker
in: query
required: true
style: form
explode: false
schema:
type: array
items:
type: string
minItems: 1
maxItems: 1
- name: from
in: query
required: false
schema:
type: string
format: date
- name: to
in: query
required: false
schema:
type: string
format: date
- name: limit
in: query
required: false
schema:
type: integer
minimum: 1
maximum: 500
default: 50
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
default: 1
responses:
'200':
description: Successful Public Data API response
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PublicAnalystRatingsItem'
required:
- data
additionalProperties: false
example:
data:
- ticker: NVDA
date: '2026-07-14'
firm: Zacks Investment Research
rating_action: upgrade
price_target_action: null
rating_current: buy
rating_prior: null
rating_current_normalized: buy
price_target_current: null
price_target_prior: null
source_name: nasdaq
source_url: https://www.nasdaq.com/articles/nvidia-nvda-upgraded-buy-heres-what-you-should-know
published_at: '2026-07-14T16:00:02+00:00'
'400':
description: Bad request (invalid or unsupported parameter)
content:
application/json:
schema:
$ref: '#/components/schemas/PublicDataError'
'401':
description: Invalid or missing API key
content:
application/json:
schema:
$ref: '#/components/schemas/PublicDataError'
'402':
description: Insufficient credits
content:
application/json:
schema:
$ref: '#/components/schemas/PublicDataError'
'404':
description: Ticker not found, market not covered, or dataset not available
content:
application/json:
schema:
$ref: '#/components/schemas/PublicDataError'
'429':
description: Rate limited
content:
application/json:
schema:
$ref: '#/components/schemas/PublicDataError'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/PublicDataError'
'503':
description: Service unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/PublicDataError'
components:
schemas:
PublicDataError:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
- message
PublicAnalystConsensusItem:
type: object
properties:
ticker:
type: string
total_analysts:
type: integer
strong_buy:
type: integer
buy:
type: integer
hold:
type: integer
sell:
type: integer
strong_sell:
type: integer
consensus_rating:
type: string
price_target_consensus:
type: number
price_target_high:
type: number
price_target_low:
type: number
price_target_count:
type: integer
required:
- ticker
- total_analysts
- strong_buy
- buy
- hold
- sell
- strong_sell
- consensus_rating
- price_target_consensus
- price_target_high
- price_target_low
- price_target_count
additionalProperties: false
PublicAnalystRatingsItem:
type: object
properties:
ticker:
type: string
date:
type: string
format: date
firm:
type: string
rating_action:
type: string
price_target_action:
anyOf:
- type: string
- type: 'null'
rating_current:
type: string
rating_prior:
anyOf:
- type: string
- type: 'null'
rating_current_normalized:
anyOf:
- type: string
- type: 'null'
price_target_current:
anyOf:
- type: number
- type: 'null'
price_target_prior:
anyOf:
- type: number
- type: 'null'
source_name:
type: string
source_url:
type: string
format: uri
published_at:
type: string
format: date-time
required:
- ticker
- date
- firm
- rating_action
- price_target_action
- rating_current
- rating_prior
- rating_current_normalized
- price_target_current
- price_target_prior
- source_name
- source_url
- published_at
additionalProperties: false
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY
externalDocs:
description: API reference
url: https://drillr.ai/docs/api