Equity Rank Audit API
The audit API from Equity Rank — 1 operation(s) for audit.
The audit API from Equity Rank — 1 operation(s) for audit.
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/equity-rank-com:equity-rank-com-audit-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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: Equity Rank Com Audit API
version: 0.1.0
description: 'Operations tagged audit across 2 of this provider''s published API definitions: openapi.json, equity-rank-com-openapi.yml. Each path carries the servers of the definition it was published in.'
tags:
- name: Audit
paths:
/api/audit/{ticker}:
get:
tags:
- Audit
summary: Get Audit Trail
description: 'Phase 48 / AUDIT-01: structured audit trail for a ticker.
Returns the AuditTrail for the given ticker, reading from screener_cache
(input snapshot, per-method FVs, consensus, 80% CIs from Phase 47)
+ av_anomaly_log (data-quality anomalies in the calc window).
NO external fetches — performance target p95 ≤500ms (AUDIT-05).
Args:
ticker: stock symbol (case-insensitive; uppercased internally)
days: anomaly window in days (default 7, max 90)
Returns:
AuditTrail with versioned schema (schema_version="1.0" in v2.0)
Raises:
401 if no JWT and no service bypass
403 if JWT lacks `is_admin` or `is_friends_family`
404 if ticker not found in screener_cache
400 if days outside [1, 90]'
operationId: get_audit_trail_api_audit__ticker__get
security:
- HTTPBearer: []
parameters:
- name: ticker
in: path
required: true
schema:
type: string
title: Ticker
- name: days
in: query
required: false
schema:
type: integer
default: 7
title: Days
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/AuditTrail'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
AuditInputSnapshot:
properties:
price:
anyOf:
- type: number
- type: 'null'
title: Price
eps_ttm:
anyOf:
- type: number
- type: 'null'
title: Eps Ttm
bvps:
anyOf:
- type: number
- type: 'null'
title: Bvps
ps_ratio:
anyOf:
- type: number
- type: 'null'
title: Ps Ratio
ev_ebitda_ratio:
anyOf:
- type: number
- type: 'null'
title: Ev Ebitda Ratio
beta:
anyOf:
- type: number
- type: 'null'
title: Beta
revenue_growth_yoy:
anyOf:
- type: number
- type: 'null'
title: Revenue Growth Yoy
eps_growth_yoy:
anyOf:
- type: number
- type: 'null'
title: Eps Growth Yoy
dividend_yield:
anyOf:
- type: number
- type: 'null'
title: Dividend Yield
forward_pe_ratio:
anyOf:
- type: number
- type: 'null'
title: Forward Pe Ratio
realized_vol_60d:
anyOf:
- type: number
- type: 'null'
title: Realized Vol 60D
market_cap:
anyOf:
- type: number
- type: 'null'
title: Market Cap
updated_at:
anyOf:
- type: string
- type: 'null'
title: Updated At
type: object
title: AuditInputSnapshot
description: 'Snapshot of inputs that drove the valuation, with timestamps.
These are the SAME values that compute_* functions consumed. No re-fetch
— they come from screener_cache''s already-persisted columns.'
AuditTrail:
properties:
schema_version:
type: string
title: Schema Version
default: '1.0'
ticker:
type: string
title: Ticker
sector:
anyOf:
- type: string
- type: 'null'
title: Sector
model_horizon:
type: string
title: Model Horizon
default: ~1 year
inputs:
$ref: '#/components/schemas/AuditInputSnapshot'
sector_multiples:
anyOf:
- $ref: '#/components/schemas/AuditSectorMultiples'
- type: 'null'
consensus:
$ref: '#/components/schemas/AuditConsensusMath'
anomalies:
items:
$ref: '#/components/schemas/AuditAnomaly'
type: array
title: Anomalies
anomaly_window_days:
type: integer
title: Anomaly Window Days
default: 7
disclaimer:
type: string
title: Disclaimer
default: These values are model scenarios under stated assumptions — not a forecast, price target, or recommendation. For informational use only.
generated_at:
type: string
title: Generated At
compute_ms:
anyOf:
- type: integer
- type: 'null'
title: Compute Ms
type: object
required:
- ticker
title: AuditTrail
description: "Phase 48 / AUDIT-01..05 — versioned, structured \"show your work\" trail.\n\nSchema-stable: breaking changes MUST bump `schema_version` AND update the\npinned fixture in `backend/tests/test_audit_trail.py`.\n\nCompliance:\n- \"model_horizon\" defaults to \"~1 year\" (matches Phase 46 Model Horizon\n badge on ValuationPanel projected section).\n- `disclaimer` field always contains the LEGAL-OK negation pattern.\n LEGAL-OK: disclaimer field text NEGATES \"forecast\" and \"price target\"."
AuditConsensusMath:
properties:
consensus_fair_value:
anyOf:
- type: number
- type: 'null'
title: Consensus Fair Value
consensus_margin_of_safety:
anyOf:
- type: number
- type: 'null'
title: Consensus Margin Of Safety
methods_used:
type: integer
title: Methods Used
default: 0
method_contributions:
items:
$ref: '#/components/schemas/AuditMethodValue'
type: array
title: Method Contributions
interval_low:
anyOf:
- type: number
- type: 'null'
title: Interval Low
interval_high:
anyOf:
- type: number
- type: 'null'
title: Interval High
confidence:
anyOf:
- type: number
- type: 'null'
title: Confidence
model_confidence_score:
anyOf:
- type: number
- type: 'null'
title: Model Confidence Score
type: object
title: AuditConsensusMath
description: 'The consensus blend''s intermediate values: methods included + their
weights, the weighted average math, and the resulting consensus FV.
Includes the 80% CI on the consensus when Phase 47 data is present.'
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
AuditAnomaly:
properties:
field_path:
type: string
title: Field Path
rule:
type: string
title: Rule
raw_value:
title: Raw Value
fetch_function:
anyOf:
- type: string
- type: 'null'
title: Fetch Function
severity:
type: string
title: Severity
default: error
root_cause:
anyOf:
- type: string
- type: 'null'
title: Root Cause
created_at:
anyOf:
- type: string
- type: 'null'
title: Created At
type: object
required:
- field_path
- rule
title: AuditAnomaly
description: 'One row from `av_anomaly_log` within the audit window. Lets the user
see if data quality issues affected this ticker''s valuation.'
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
AuditSectorMultiples:
properties:
sector:
type: string
title: Sector
pe_multiple:
anyOf:
- type: number
- type: 'null'
title: Pe Multiple
pb_multiple:
anyOf:
- type: number
- type: 'null'
title: Pb Multiple
ps_multiple:
anyOf:
- type: number
- type: 'null'
title: Ps Multiple
ev_ebitda_multiple:
anyOf:
- type: number
- type: 'null'
title: Ev Ebitda Multiple
ev_sales_multiple:
anyOf:
- type: number
- type: 'null'
title: Ev Sales Multiple
roe_pct:
anyOf:
- type: number
- type: 'null'
title: Roe Pct
pfcf_multiple:
anyOf:
- type: number
- type: 'null'
title: Pfcf Multiple
evfcf_multiple:
anyOf:
- type: number
- type: 'null'
title: Evfcf Multiple
ev_ebit_multiple:
anyOf:
- type: number
- type: 'null'
title: Ev Ebit Multiple
type: object
required:
- sector
title: AuditSectorMultiples
description: 'Sector multiples applied during this calc — the DEFAULT_SECTOR_MULTIPLES
dict entry for this ticker''s sector, surfaced for transparency.'
AuditMethodValue:
properties:
method:
type: string
title: Method
fair_value:
anyOf:
- type: number
- type: 'null'
title: Fair Value
weight:
anyOf:
- type: number
- type: 'null'
title: Weight
interval_low:
anyOf:
- type: number
- type: 'null'
title: Interval Low
interval_high:
anyOf:
- type: number
- type: 'null'
title: Interval High
confidence:
anyOf:
- type: number
- type: 'null'
title: Confidence
type: object
required:
- method
title: AuditMethodValue
description: 'One method''s contribution to the consensus.
`weight` is the SECTOR_METHOD_WEIGHTS entry; `fair_value` is the
compute_*_fair_value output; `interval_low/high` are the 80% CI bounds
from Phase 47 (Optional — rows pre-Phase-47 won''t have them).'
securitySchemes:
HTTPBearer:
type: http
scheme: bearer
x-refined-from:
- openapi.json
- equity-rank-com-openapi.yml