{"openapi": "3.1.1", "info": {"title": "Dilikoglu Research API", "version": "1.0.0", "description": "Read-only published research. All values match production model files. Null provenance/units indicate unavailable information. No trade execution."}, "servers": [{"url": "https://dilikogluresearch.com/api/v1"}], "paths": {"/companies": {"get": {"summary": "Active modeled coverage", "operationId": "get_companies", "parameters": [], "responses": {"200": {"description": "Current data; null means unavailable", "content": {"application/json": {"schema": {"type": "object"}}}}, "304": {"description": "Unchanged ETag"}, "400": {"description": "Invalid query", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "404": {"description": "Unknown company", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit; back off before retrying"}}}}, "/research/{ticker}": {"get": {"summary": "Current research document", "operationId": "get_research_ticker", "parameters": [{"name": "ticker", "in": "path", "required": true, "schema": {"type": "string"}, "description": "Active coverage symbol"}], "responses": {"200": {"description": "Current data; null means unavailable", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Research"}}}}, "304": {"description": "Unchanged ETag"}, "400": {"description": "Invalid query", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "404": {"description": "Unknown company", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit; back off before retrying"}}}}, "/research/{ticker}/latest": {"get": {"summary": "Current research document alias", "operationId": "get_research_ticker_latest", "parameters": [{"name": "ticker", "in": "path", "required": true, "schema": {"type": "string"}, "description": "Active coverage symbol"}], "responses": {"200": {"description": "Current data; null means unavailable", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Research"}}}}, "304": {"description": "Unchanged ETag"}, "400": {"description": "Invalid query", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "404": {"description": "Unknown company", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit; back off before retrying"}}}}, "/companies/{ticker}": {"get": {"summary": "Company document alias", "operationId": "get_companies_ticker", "parameters": [{"name": "ticker", "in": "path", "required": true, "schema": {"type": "string"}, "description": "Active coverage symbol"}], "responses": {"200": {"description": "Current data; null means unavailable", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Research"}}}}, "304": {"description": "Unchanged ETag"}, "400": {"description": "Invalid query", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "404": {"description": "Unknown company", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit; back off before retrying"}}}}, "/valuation/{ticker}": {"get": {"summary": "Scenario valuation", "operationId": "get_valuation_ticker", "parameters": [{"name": "ticker", "in": "path", "required": true, "schema": {"type": "string"}, "description": "Active coverage symbol"}], "responses": {"200": {"description": "Current data; null means unavailable", "content": {"application/json": {"schema": {"type": "object"}}}}, "304": {"description": "Unchanged ETag"}, "400": {"description": "Invalid query", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "404": {"description": "Unknown company", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit; back off before retrying"}}}}, "/estimates/{ticker}": {"get": {"summary": "Input register and contextual provenance", "operationId": "get_estimates_ticker", "parameters": [{"name": "ticker", "in": "path", "required": true, "schema": {"type": "string"}, "description": "Active coverage symbol"}], "responses": {"200": {"description": "Current data; null means unavailable", "content": {"application/json": {"schema": {"type": "object"}}}}, "304": {"description": "Unchanged ETag"}, "400": {"description": "Invalid query", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "404": {"description": "Unknown company", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit; back off before retrying"}}}}, "/sources/{ticker}": {"get": {"summary": "Sources and lineage", "operationId": "get_sources_ticker", "parameters": [{"name": "ticker", "in": "path", "required": true, "schema": {"type": "string"}, "description": "Active coverage symbol"}], "responses": {"200": {"description": "Current data; null means unavailable", "content": {"application/json": {"schema": {"type": "object"}}}}, "304": {"description": "Unchanged ETag"}, "400": {"description": "Invalid query", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "404": {"description": "Unknown company", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit; back off before retrying"}}}}, "/changes": {"get": {"summary": "Recorded release captures and changes", "operationId": "get_changes", "parameters": [{"name": "ticker", "in": "query", "schema": {"type": "string"}}, {"name": "since", "in": "query", "schema": {"type": "string", "format": "date-time"}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "minimum": 1, "maximum": 100, "default": 50}}, {"name": "cursor", "in": "query", "schema": {"type": "integer", "minimum": 0, "default": 0}}], "responses": {"200": {"description": "Current data; null means unavailable", "content": {"application/json": {"schema": {"type": "object"}}}}, "304": {"description": "Unchanged ETag"}, "400": {"description": "Invalid query", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "404": {"description": "Unknown company", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit; back off before retrying"}}}}}, "components": {"schemas": {"Error": {"type": "object", "required": ["schema_version", "error"], "properties": {"schema_version": {"const": "1.0"}, "error": {"type": "string"}}}, "Scenario": {"type": "object", "required": ["fair_value", "probability"], "properties": {"fair_value": {"type": ["number", "null"], "minimum": 0}, "probability": {"type": ["number", "null"], "minimum": 0, "maximum": 1}}}, "Valuation": {"type": "object", "required": ["classification", "unit", "base", "probability_weighted", "scenarios"], "properties": {"classification": {"const": "Dilikoglu Research estimate"}, "unit": {"type": "string", "enum": ["USD/share", "USD/ADS", "USD/ADR"], "description": "Unit of every per-security fair value. Values are already on this basis; do not reconvert ADS/ADR values."}, "base": {"type": ["number", "null"]}, "probability_weighted": {"type": ["number", "null"]}, "scenarios": {"type": "object", "required": ["failure", "bear", "base", "bull"], "properties": {"failure": {"$ref": "#/components/schemas/Scenario"}, "bear": {"$ref": "#/components/schemas/Scenario"}, "base": {"$ref": "#/components/schemas/Scenario"}, "bull": {"$ref": "#/components/schemas/Scenario"}}}, "method": {"type": ["string", "null"]}}}, "Research": {"type": "object", "required": ["schema_version", "ticker", "model_version", "model_as_of", "valuation", "sources", "estimates", "latest_report", "model_rating"], "properties": {"schema_version": {"const": "1.0"}, "ticker": {"type": "string"}, "model_version": {"type": "string", "pattern": "^[a-f0-9]{64}$"}, "model_as_of": {"type": ["string", "null"]}, "valuation": {"$ref": "#/components/schemas/Valuation"}, "sources": {"type": "object"}, "estimates": {"type": "object"}, "latest_report": {"type": ["object", "null"]}, "model_rating": {"type": "null"}, "instrument": {"$ref": "#/components/schemas/Instrument"}, "date_conventions": {"type": "object", "additionalProperties": {"type": "string"}}, "valuation_date": {"type": ["string", "null"], "description": "Native model anchor; not publication date."}, "valuation_horizon": {"type": ["string", "null"], "description": "Native horizon label; may describe fiscal years."}, "currency": {"type": ["string", "null"], "description": "Currency of per-security valuation outputs."}, "reference_price": {"type": "object", "properties": {"value": {"type": ["number", "null"]}, "date": {"type": ["string", "null"], "description": "Original qualified date label."}, "session_date": {"type": ["string", "null"], "format": "date", "description": "Parsed date; not independently verified."}, "is_live": {"const": false}, "kind": {"const": "frozen_research_reference"}}}}}, "Instrument": {"type": "object", "properties": {"valuation_currency": {"const": "USD"}, "quoted_unit": {"enum": ["share", "depositary_share"]}, "valuation_unit": {"enum": ["USD/share", "USD/ADS", "USD/ADR"]}, "ordinary_shares_per_depositary_share": {"type": ["number", "null"], "exclusiveMinimum": 0, "description": "Ratio from native model. Null if not applicable or not supplied."}, "native_input_unit_context": {"type": ["string", "null"]}, "ratio_basis": {"type": ["string", "null"]}}}}}}