drillr Public Data API Ownership API
Insider holdings and transactions, institutional holdings (US only)
Insider holdings and transactions, institutional holdings (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-ownership-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 Ownership 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: Ownership
description: Insider holdings and transactions, institutional holdings (US only)
paths:
/api/v2/insider-trades:
get:
operationId: publicDataV2InsiderTrades
tags:
- Ownership
summary: Get self-parsed insider holdings and transactions
description: 'Query insiders'' initial holdings and transactions for a company. Each row represents one Form 3 initial holding or one Form 4 / Form 5 transaction, including amended filings.
Example request: `GET /api/v2/insider-trades?ticker=AAPL&from=2026-07-01&to=2026-08-31&transaction_type=sell&is_amendment=false`'
security:
- ApiKeyAuth: []
x-credits: 0.02 cr per call
x-refresh: daily 11:00 UTC plus weekly replay
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: record_type
in: query
required: false
style: form
explode: false
schema:
type: array
items:
type: string
enum:
- initial_holding
- transaction
minItems: 1
- name: form_type
in: query
required: false
style: form
explode: false
schema:
type: array
items:
type: string
enum:
- '3'
- 3/A
- '4'
- 4/A
- '5'
- 5/A
minItems: 1
- name: transaction_type
in: query
required: false
style: form
explode: false
schema:
type: array
items:
type: string
enum:
- buy
- sell
- award
- exercise
- tax_withholding
- other
minItems: 1
- name: is_amendment
in: query
required: false
schema:
type: boolean
- 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/PublicInsiderTradesItem'
required:
- data
additionalProperties: false
example:
data:
- ticker: AAPL
insider_name: COOK TIMOTHY D
insider_title: Chief Executive Officer
is_director: true
is_officer: true
record_type: transaction
transaction_type: sell
transaction_code: S
transaction_date: '2026-08-03'
security_title: Common Stock
ownership_type: direct
shares: 223986
price_per_share: 231.42
total_value: 51834840.12
shares_owned_after: 3280042
form_type: '4'
is_amendment: false
original_filing_date: null
accession_number: 0000320193-26-000090
filing_url: https://www.sec.gov/Archives/edgar/data/...
filing_date: '2026-08-06'
'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/institutional-holdings:
get:
operationId: publicDataV2InstitutionalHoldings
tags:
- Ownership
summary: Get self-parsed institutional holdings
description: 'Query institutional investors’ reported quarterly holdings, quantities and market values. Each row is one holding record from an SEC 13F-HR filing or amendment, rather than an aggregated institution–security position.
Example request: `GET /api/v2/institutional-holdings?investor_cik=0001067983&report_period=2026-06-30`'
security:
- ApiKeyAuth: []
x-credits: 0.02 cr per call
x-refresh: daily 05:00 UTC plus weekly replay
parameters:
- name: ticker
in: query
required: false
description: One of ticker, investor_cik is required.
style: form
explode: false
schema:
type: array
items:
type: string
minItems: 1
maxItems: 1
- name: investor_cik
in: query
required: false
description: One of ticker, investor_cik is required.
schema:
type: string
- name: report_period
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/PublicInstitutionalHoldingsItem'
required:
- data
additionalProperties: false
example:
data:
- ticker: null
investor_name: Berkshire Hathaway Inc
investor_cik: 0001067983
report_period: '2026-06-30'
shares: 12561737
market_value: 577211815
change_in_shares: -157938
accession_number: 0001193125-26-352200
form_type: 13F-HR
filing_url: https://www.sec.gov/Archives/edgar/data/1067983/000119312526352200/0001193125-26-352200.txt
filing_date: '2026-08-14'
'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:
PublicInstitutionalHoldingsItem:
type: object
properties:
ticker:
anyOf:
- type: string
- type: 'null'
investor_name:
type: string
investor_cik:
type: string
report_period:
type: string
format: date
shares:
type: number
market_value:
type: number
change_in_shares:
type: number
accession_number:
type: string
form_type:
type: string
filing_url:
type: string
format: uri
filing_date:
type: string
format: date
required:
- ticker
- investor_name
- investor_cik
- report_period
- shares
- market_value
- change_in_shares
- accession_number
- form_type
- filing_url
- filing_date
additionalProperties: false
PublicDataError:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
- message
PublicInsiderTradesItem:
type: object
properties:
ticker:
type: string
insider_name:
type: string
insider_title:
type: string
is_director:
type: boolean
is_officer:
type: boolean
record_type:
type: string
enum:
- initial_holding
- transaction
transaction_type:
type: string
enum:
- buy
- sell
- award
- exercise
- tax_withholding
- other
transaction_code:
type: string
transaction_date:
type: string
format: date
security_title:
type: string
ownership_type:
type: string
shares:
type: number
price_per_share:
type: number
total_value:
type: number
shares_owned_after:
type: number
form_type:
type: string
enum:
- '3'
- 3/A
- '4'
- 4/A
- '5'
- 5/A
is_amendment:
type: boolean
original_filing_date:
anyOf:
- type: string
format: date
- type: 'null'
accession_number:
type: string
filing_url:
type: string
format: uri
filing_date:
type: string
format: date
required:
- ticker
- insider_name
- insider_title
- is_director
- is_officer
- record_type
- transaction_type
- transaction_code
- transaction_date
- security_title
- ownership_type
- shares
- price_per_share
- total_value
- shares_owned_after
- form_type
- is_amendment
- original_filing_date
- accession_number
- filing_url
- filing_date
additionalProperties: false
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY
externalDocs:
description: API reference
url: https://drillr.ai/docs/api