Add your API key
Append ?apikey=YOUR_API_KEY to the URL. The X-API-Key request header is also supported.
Vizual Stocks works best vertically on mobile.
VizualStocks APIEndpoints, parameters, and response structures for company fundamentals, supplemental datasets, earnings, and Congress trading analytics.
https://api.vizualstocks.com/v1?apikey=YOUR_API_KEYX-API-Key: YOUR_API_KEYAdd your API key to the request URL. Successful V1 responses use the direct endpoint-specific shapes shown below; errors use one shared flat object.
Append ?apikey=YOUR_API_KEY to the URL. The X-API-Key request header is also supported.
Start with the company catalog, then use a ticker and stable metric ID to request data.
Read the endpoint-specific response directly. Authentication, validation, access and quota errors use the shared error shape.
https://api.vizualstocks.com/v1/companies?search=PLTR&apikey=YOUR_API_KEY[
{
"ticker": "PLTR",
"name": "Palantir Technologies Inc",
"marketCap": 395785066250,
"hasCompanyKpis": true,
"hasSegments": true,
"hasShortInterest": true,
"hasRapidEarnings": true,
"freeSandboxAvailable": true,
"coverage": {
"companyKpiCount": 17,
"segmentMetricCount": 2,
"activeMetricCount": 19,
"discontinuedMetricCount": 0
}
}
]{
"error": "invalid_api_key",
"message": "The API key is invalid or has been revoked."
}Examples are illustrative excerpts, not complete live datasets, and may use a different ticker or metric from a customized request. The Structure tab describes the full response contract. Interactive value-bearing requests require login and a valid API key.
Public identifiers and response models are independent from VizualStocks’ internal charting, storage, and collection classes.
Use aapl or AAPL—both work. Responses return uppercase tickers.
Every series uses a lower camelCase ID. Display labels may improve without changing the public identifier.
companyKpi covers operating measures. segment covers business, product, geography, or platform breakdowns.
A discontinued metric remains queryable; it means the issuer stopped reporting it, not that its history was deleted.
normalizedPeriod is the VizualStocks chart label; fiscal year, quarter, and period end retain issuer reporting identity.
Values are JSON numbers in normalized base units. Missing single-series points are omitted; flat multi-metric rows use null.
isMonetary identifies currency amounts; false means a count, unit, percentage, or ratio. Use this flag, not valueFormat: "number", to decide whether a value represents money.
Read valueFormat: percentageFraction means 0.3 is 30%; percentageUnits means 30 is 30%. Set percentageFormat=fraction or percentageFormat=units for a consistent scale. By default, uniform histories keep their scale and mixed histories use fractions; percentageFormat=stored returns original scales.
Use isMonetary and reportingCurrency for currency conversion; null means the reporting currency is unavailable. Format display units in your app—for example, 1,250,000 as 1.25M.
Add includeSources=true for reviewed issuer references. Source metadata appears only where verified references are available; values are returned either way.
All plans can browse the full directories; freeSandboxAvailable marks sandbox access. Free Sandbox includes 20 companies, five curated metrics each, their supplemental data, five Congress members, and full available history. Upgrade for broader coverage without changing endpoints, API keys, or response formats.
Congress endpoints return calculated holdings and performance estimates, not raw trades or disclosures. Responses identify whether results cover the curated sandbox members or the full modeled universe.
Discover the full supported-company universe and identify which companies are available in Free Sandbox before requesting their datasets.
/v1/companiessearchstringOptionalMatch a ticker or company name.
Query parameterhasCompanyKpisbooleanOptionalFilter by company-KPI coverage.
Query parameterhasSegmentsbooleanOptionalFilter by segment coverage.
Query parameterpageintegerOptional1-indexed page number. Supply together with pageSize to opt in to pagination.
Query parameterpageSizeintegerOptionalPositive page size. Supply together with page; no page size is inferred or capped.
Query parameter60-second private cache. Omit pagination for the full filtered catalog; plan limits apply to data requests, not discovery.
https://api.vizualstocks.com/v1/companies?apikey=YOUR_API_KEY[
{
"ticker": "PLTR",
"name": "Palantir Technologies Inc",
"marketCap": 395785066250,
"hasCompanyKpis": true,
"hasSegments": true,
"hasShortInterest": true,
"hasRapidEarnings": true,
"freeSandboxAvailable": true,
"coverage": {
"companyKpiCount": 17,
"segmentMetricCount": 2,
"activeMetricCount": 19,
"discontinuedMetricCount": 0
}
},
{
"ticker": "TSLA",
"name": "Tesla Inc",
"marketCap": 1100000000000,
"hasCompanyKpis": true,
"hasSegments": true,
"hasShortInterest": true,
"hasRapidEarnings": true,
"freeSandboxAvailable": true,
"coverage": {
"companyKpiCount": 31,
"segmentMetricCount": 21,
"activeMetricCount": 45,
"discontinuedMetricCount": 7
}
},
{
"ticker": "MU",
"name": "Micron Technology Inc",
"marketCap": 180000000000,
"hasCompanyKpis": true,
"hasSegments": true,
"hasShortInterest": true,
"hasRapidEarnings": true,
"freeSandboxAvailable": true,
"coverage": {
"companyKpiCount": 1,
"segmentMetricCount": 17,
"activeMetricCount": 8,
"discontinuedMetricCount": 10
}
},
{
"ticker": "MSFT",
"name": "Microsoft Corp",
"marketCap": 3700000000000,
"hasCompanyKpis": true,
"hasSegments": true,
"hasShortInterest": true,
"hasRapidEarnings": true,
"freeSandboxAvailable": true,
"coverage": {
"companyKpiCount": 3,
"segmentMetricCount": 23,
"activeMetricCount": 22,
"discontinuedMetricCount": 4
}
}
]Discover the stable public metric IDs and metadata available for one supported company without downloading history.
/v1/companies/{ticker}/metrics/catalogtickerstringRequiredCase-insensitive company ticker.
Path parameterstatusactive | discontinued | allOptionalLifecycle filter. Defaults to all.
Query parametertypecompanyKpi | segment | allOptionalMetric classification. Defaults to all.
Query parameterfrequencyquarterly | annual | allOptionalReporting frequency. Defaults to all.
Query parameter60-second private cache. valueFormat gives the default scale; mixed series list period overrides (annual keys: YYYY). A plain percentage label is unclassified.
https://api.vizualstocks.com/v1/companies/PLTR/metrics/catalog?status=all&type=all&apikey=YOUR_API_KEY{
"ticker": "PLTR",
"reportingCurrency": "USD",
"metrics": [
{
"metricId": "customerCount",
"name": "Customer Count",
"description": "Total customers at the end of the period.",
"type": "companyKpi",
"status": "active",
"frequencies": [
"quarterly",
"annual"
],
"isMonetary": false,
"valueFormat": "number",
"firstReportedPeriod": "Q4'20",
"lastReportedPeriod": "Q2'26",
"discontinuation": null
},
{
"metricId": "remainingPerformanceObligations",
"name": "Remaining Performance Obligations",
"description": "Contracted revenue not yet recognized at period end.",
"type": "companyKpi",
"status": "active",
"frequencies": [
"quarterly",
"annual"
],
"isMonetary": true,
"valueFormat": "number",
"firstReportedPeriod": "Q2'24",
"lastReportedPeriod": "Q2'26",
"discontinuation": null
},
{
"metricId": "ruleOf40",
"name": "Rule of 40",
"description": "Revenue growth plus adjusted operating margin.",
"type": "companyKpi",
"status": "active",
"frequencies": [
"quarterly",
"annual"
],
"isMonetary": false,
"valueFormat": "percentageUnits",
"firstReportedPeriod": "Q2'24",
"lastReportedPeriod": "Q2'26",
"discontinuation": null
},
{
"metricId": "netDollarRetention",
"name": "Net Dollar Retention",
"description": "Trailing customer revenue retained and expanded year over year.",
"type": "companyKpi",
"status": "active",
"frequencies": [
"quarterly",
"annual"
],
"isMonetary": false,
"valueFormat": "percentageUnits",
"firstReportedPeriod": "Q2'24",
"lastReportedPeriod": "Q2'26",
"discontinuation": null
}
]
}Load normalized history for one stable company KPI or segment metric for a chart, model, or research workflow.
/v1/companies/{ticker}/metrics/{metricId}tickerstringRequiredCase-insensitive company ticker.
Path parametermetricIdstringRequiredStable lower camel case public metric ID.
Path parameterfrequencyquarterly | annualOptionalDefaults to quarterly.
Query parameterorderasc | descOptionalObservation order. Defaults to asc.
Query parameterlimitintegerOptionalPositive maximum observation count.
Query parameterincludeSourcesbooleanOptionalDefaults to false. When true, adds a verified source object to each covered observation.
Query parameterpercentageFormatstored | fraction | unitsOptionalOmit for original scale on uniform series and decimal fractions on mixed series. stored returns raw stored scale; fraction makes 0.3 mean 30%; units makes 30 mean 30%. Only percentage metrics change.
Query parameter30-second private cache lifetime. percentageFormat sets the returned percentage scale; includeSources=true adds available reviewed citations.
https://api.vizualstocks.com/v1/companies/PLTR/metrics/customerCount?order=desc&includeSources=true&apikey=YOUR_API_KEY{
"ticker": "PLTR",
"reportingCurrency": "USD",
"isMonetary": false,
"valueFormat": "number",
"data": [
{
"normalizedPeriod": "Q2'26",
"fiscalYear": 2026,
"fiscalQuarter": 2,
"periodEnd": "2026-06-30",
"value": 1049,
"source": {
"originalSourceUrl": "https://investors.palantir.com/files/Palantir - Q2 2026 Business Update.pdf",
"archivedPdfUrl": "https://vizualstocksmedia.blob.core.windows.net/company-ingestion-documents/pltr/067c5ef76f971ec80999/b45d935d9fa8f93d47472937502104d69f422f317a6bc38fa8e746d4f8ccd5e1.pdf",
"pageNumber": 24,
"imageUrl": "https://vizualstocksmedia.blob.core.windows.net/company-ingestion-documents/pltr/067c5ef76f971ec80999/b45d935d9fa8f93d47472937502104d69f422f317a6bc38fa8e746d4f8ccd5e1-page-24.jpg",
"locationDescription": "Page 24. issuer CustomerCount table/chart for Q2'26."
}
},
{
"normalizedPeriod": "Q1'26",
"fiscalYear": 2026,
"fiscalQuarter": 1,
"periodEnd": "2026-03-31",
"value": 1007
},
{
"normalizedPeriod": "Q4'25",
"fiscalYear": 2025,
"fiscalQuarter": 4,
"periodEnd": "2025-12-31",
"value": 954
},
{
"normalizedPeriod": "Q3'25",
"fiscalYear": 2025,
"fiscalQuarter": 3,
"periodEnd": "2025-09-30",
"value": 911
},
{
"normalizedPeriod": "Q2'25",
"fiscalYear": 2025,
"fiscalQuarter": 2,
"periodEnd": "2025-06-30",
"value": 849
}
]
}Populate KPI and segment dashboards with flat period rows, metric definitions, and explicit segment groupings in one request.
/v1/companies/{ticker}/metricstickerstringRequiredCase-insensitive company ticker.
Path parameterstatusactive | discontinued | allOptionalSeries lifecycle. Defaults to all, so no lifecycle is omitted implicitly.
Query parametertypecompanyKpi | segment | allOptionalSeries classification. Defaults to all.
Query parameterfrequencyquarterly | annualOptionalReporting frequency. Defaults to quarterly.
Query parameterorderasc | descOptionalReporting-period order. Defaults to asc.
Query parameterlimitintegerOptionalPositive maximum number of reporting periods.
Query parameterincludeSourcesbooleanOptionalDefaults to false. When true, adds verified source references without changing the flat data rows. Partial coverage returns only the available references.
Query parameterpercentageFormatstored | fraction | unitsOptionalOmit for original scale on uniform series and decimal fractions on mixed series. stored returns raw stored scale; fraction makes 0.3 mean 30%; units makes 30 mean 30%. Only percentage metrics change.
Query parameter30-second private cache lifetime. Percentage conversion affects only percentage columns; includeSources=true adds available citations in sources[].
https://api.vizualstocks.com/v1/companies/PLTR/metrics?status=all&type=all&order=desc&apikey=YOUR_API_KEY{
"ticker": "PLTR",
"reportingCurrency": "USD",
"data": [
{
"normalizedPeriod": "Q2'26",
"fiscalYear": 2026,
"fiscalQuarter": 2,
"periodEnd": "2026-06-30",
"commercialRevenue": 945000000,
"customerCount": 1049,
"governmentRevenue": 990000000
},
{
"normalizedPeriod": "Q1'26",
"fiscalYear": 2026,
"fiscalQuarter": 1,
"periodEnd": "2026-03-31",
"commercialRevenue": 774000000,
"customerCount": 1007,
"governmentRevenue": 858000000
}
],
"metrics": [
{
"metricId": "commercialRevenue",
"name": "Commercial Revenue",
"description": "Revenue from commercial customers during the quarter.",
"type": "segment",
"status": "active",
"isMonetary": true,
"valueFormat": "number",
"discontinuation": null
},
{
"metricId": "customerCount",
"name": "Customer Count",
"description": "Total customers at the end of the period.",
"type": "companyKpi",
"status": "active",
"isMonetary": false,
"valueFormat": "number",
"discontinuation": null
},
{
"metricId": "governmentRevenue",
"name": "Government Revenue",
"description": "Revenue from government customers during the quarter.",
"type": "segment",
"status": "active",
"isMonetary": true,
"valueFormat": "number",
"discontinuation": null
}
],
"segmentGroups": [
{
"groupId": "revenueBySegment",
"title": "Revenue by Segment",
"metricIds": [
"commercialRevenue",
"governmentRevenue"
]
}
]
}Add historical settlement-based short-interest observations to a research product or customer-facing workflow.
/v1/companies/{ticker}/short-interesttickerstringRequiredCase-insensitive company ticker.
Path parameterfromdateOptionalInclusive YYYY-MM-DD lower bound.
Query parametertodateOptionalInclusive YYYY-MM-DD upper bound.
Query parameterorderasc | descOptionalObservation order. Defaults to asc.
Query parameterlimitintegerOptionalPositive maximum observation count.
Query parameterShort interest is settlement-based rather than live daily data and uses a five-minute private cache lifetime.
https://api.vizualstocks.com/v1/companies/PLTR/short-interest?order=desc&apikey=YOUR_API_KEY[
{
"settlementDate": "2026-07-31",
"sharesShorted": 68066419,
"sharesFloat": 2193497664,
"shortInterestPercentage": 3.1
},
{
"settlementDate": "2026-07-15",
"sharesShorted": 77877652,
"sharesFloat": 2193477000,
"shortInterestPercentage": 3.55
},
{
"settlementDate": "2026-06-30",
"sharesShorted": 72549218,
"sharesFloat": 2189964000,
"shortInterestPercentage": 3.31
},
{
"settlementDate": "2026-06-15",
"sharesShorted": 70188405,
"sharesFloat": 2187451000,
"shortInterestPercentage": 3.21
},
{
"settlementDate": "2026-05-29",
"sharesShorted": 74621990,
"sharesFloat": 2185338000,
"shortInterestPercentage": 3.41
}
]Follow how analyst consensus revenue and normalized EPS expectations evolve for each target reporting period. Each observation captures the average analyst forecasts for revenue and EPS on its collected date, building a history of expectations for the same quarter or fiscal year.
/v1/companies/{ticker}/estimate-revisionstickerstringRequiredCase-insensitive company ticker.
Path parameterfrequencyquarterly | annual | allOptionalTarget-period frequency. Defaults to all.
Query parameternormalizedPeriodstringOptionalExact normalized chart period, such as Q3'26 or 2027.
Query parameterorderasc | descOptionalHistory order within every target period. Defaults to asc.
Query parameterlimitintegerOptionalPositive maximum history points returned per target period.
Query parameterFive-minute private cache. History is unlimited unless limit is requested; normalizedPeriod selects one chart period.
https://api.vizualstocks.com/v1/companies/PLTR/estimate-revisions?apikey=YOUR_API_KEY{
"ticker": "PLTR",
"reportingCurrency": "USD",
"data": [
{
"frequency": "quarterly",
"periods": [
{
"normalizedPeriod": "Q1'23",
"periodEndDate": "2023-03-31",
"history": [
{
"collectedDate": "2023-02-08",
"revenueEstimate": 520450000,
"epsEstimate": 0.04
},
{
"collectedDate": "2023-02-10",
"revenueEstimate": 520000000,
"epsEstimate": 0.04
},
{
"collectedDate": "2023-04-11",
"revenueEstimate": 505600000,
"epsEstimate": 0.04
}
]
}
]
}
]
}Track observed institutional and insider ownership over time alongside VizualStocks' derived undisclosed remainder.
/v1/companies/{ticker}/ownership-historytickerstringRequiredCase-insensitive company ticker.
Path parameterfromdateOptionalInclusive YYYY-MM-DD lower bound.
Query parametertodateOptionalInclusive YYYY-MM-DD upper bound.
Query parameterorderasc | descOptionalObservation order. Defaults to asc.
Query parameterlimitintegerOptionalPositive maximum observation count.
Query parameterFive-minute private cache. observedDate is the snapshot date; undisclosedPercent is a signed derived remainder, not observed retail ownership. Anomalies are flagged.
https://api.vizualstocks.com/v1/companies/PLTR/ownership-history?order=desc&apikey=YOUR_API_KEY{
"ticker": "PLTR",
"methodology": {
"institutionalPercent": "Observed percentage held by institutions.",
"insiderPercent": "Observed percentage held by insiders.",
"undisclosedPercent": "100 - institutionsPercent - insidersPercent",
"undisclosedPercentIsDerived": true,
"negativeUndisclosedValuesPreserved": true
},
"data": [
{
"observedDate": "2026-09-18",
"institutionsPercent": 64.75,
"insidersPercent": 3.48,
"undisclosedPercent": 31.77,
"undisclosedPercentDerived": true,
"interpretationStatus": "within_conventional_range",
"interpretationFlags": []
},
{
"observedDate": "2026-09-17",
"institutionsPercent": 64.75,
"insidersPercent": 3.48,
"undisclosedPercent": 31.77,
"undisclosedPercentDerived": true,
"interpretationStatus": "within_conventional_range",
"interpretationFlags": []
},
{
"observedDate": "2026-09-16",
"institutionsPercent": 64.74,
"insidersPercent": 3.48,
"undisclosedPercent": 31.78,
"undisclosedPercentDerived": true,
"interpretationStatus": "within_conventional_range",
"interpretationFlags": []
},
{
"observedDate": "2026-09-14",
"institutionsPercent": 64.74,
"insidersPercent": 3.48,
"undisclosedPercent": 31.78,
"undisclosedPercentDerived": true,
"interpretationStatus": "within_conventional_range",
"interpretationFlags": []
},
{
"observedDate": "2026-09-11",
"institutionsPercent": 64.77,
"insidersPercent": 3.48,
"undisclosedPercent": 31.75,
"undisclosedPercentDerived": true,
"interpretationStatus": "within_conventional_range",
"interpretationFlags": []
}
]
}Every logo is hand-reviewed and normalized onto a visually balanced square canvas, producing polished, display-ready assets that stay crisp and consistent across dashboards, research tools, and light or dark interfaces.
https://••••••••••••••/••••••••••••••/{TICKER}.pngSign in to any API account, including Free Sandbox, to reveal direct asset URLs.Get historical analyst ratings, consensus scores and price targets for stock ranking and backtesting.
/v1/companies/{ticker}/analyst-rating-consensus-historytickerstringRequiredCase-insensitive company ticker.
Path parameterasOfDatedateOptionalUse YYYY-MM-DD to return one snapshot for that date, or the closest earlier date if unavailable. Ratings and targets are matched by snapshot date; missing fields remain null. Omit or leave blank for full history.
Query parameterorderasc | descOptionalObservation order. Defaults to asc.
Query parameterlimitintegerOptionalPositive maximum observation count.
Query parameterFive-minute private cache. Coverage counts snapshot dates before limit, up to asOfDate. Incomplete or empty ratings have no consensus score. No matching data returns [].
https://api.vizualstocks.com/v1/companies/PLTR/analyst-rating-consensus-history?apikey=YOUR_API_KEY{
"ticker": "PLTR",
"coverage": {
"firstDate": "2020-11-13",
"lastDate": "2026-10-05",
"observationCount": 2153
},
"data": [
{
"asOfDate": "2022-08-04",
"strongBuy": 0,
"buy": 4,
"hold": 6,
"sell": 3,
"strongSell": 0,
"consensusRating": "hold",
"consensusRatingValue": 3.08,
"ratingsContributors": 13,
"currency": "USD",
"consensusPriceTarget": 13.3,
"medianPriceTarget": 13,
"lowPriceTarget": 6,
"highPriceTarget": 21,
"priceTargetContributors": 10
},
{
"asOfDate": "2022-08-05",
"strongBuy": 0,
"buy": 4,
"hold": 6,
"sell": 3,
"strongSell": 0,
"consensusRating": "hold",
"consensusRatingValue": 3.08,
"ratingsContributors": 13,
"currency": "USD",
"consensusPriceTarget": 12.444444,
"medianPriceTarget": 13,
"lowPriceTarget": 6,
"highPriceTarget": 20,
"priceTargetContributors": 9
},
{
"asOfDate": "2022-08-06",
"strongBuy": 0,
"buy": 4,
"hold": 6,
"sell": 3,
"strongSell": 0,
"consensusRating": "hold",
"consensusRatingValue": 3.08,
"ratingsContributors": 13,
"currency": "USD",
"consensusPriceTarget": 12.444444,
"medianPriceTarget": 13,
"lowPriceTarget": 6,
"highPriceTarget": 20,
"priceTargetContributors": 9
}
]
}Retrieve historical company guidance by announcement date and reporting period, including revenue forecasts and other financial or operating targets. Compare management outlooks with reported values, forecast ranges, guidance status and original source links.
/v1/companies/{ticker}/company-guidance-historytickerstringRequiredCase-insensitive company ticker.
Path parameterasOfDatedateOptionalUse YYYY-MM-DD to return each metric's latest guidance announced on or before that date, separately for each period type. Quarterly updates do not replace annual guidance. Each record keeps its actual announcementDate. Omit or leave blank for full history.
Query parametermetricstringOptionalReturn guidance for one metric, such as Revenue or Free cash flow. Matches the metric label without case sensitivity; omit for all metrics.
Query parameterperiodTypestringOptionalChoose annual, quarterly, halfyear, multiyear or other guidance. Omit to include every reporting-period type.
Query parameterorderasc | descOptionalObservation order. Defaults to asc.
Query parameterlimitintegerOptionalPositive maximum observation count.
Query parameterFive-minute private cache. Without asOfDate: full history; with it: latest guidance per metric and period type. Withdrawn values are null. No matching data returns [].
https://api.vizualstocks.com/v1/companies/PLTR/company-guidance-history?apikey=YOUR_API_KEY{
"ticker": "PLTR",
"coverage": {
"firstDate": "2021-11-09",
"lastDate": "2026-08-03",
"observationCount": 89
},
"data": [
{
"announcementDate": "2021-11-09",
"metric": "Operating margin",
"scope": "Consolidated",
"periodType": "quarterly",
"periodEndDate": "2021-12-31",
"basis": "Non-GAAP",
"unit": "Percent",
"value": 22,
"low": null,
"high": null,
"valueText": "Adjusted operating margin of 22%.",
"status": "issued",
"sourceUrl": "https://www.sec.gov/Archives/edgar/…/d51038dex991.htm"
},
{
"announcementDate": "2022-08-08",
"metric": "Operating income",
"scope": "Consolidated",
"periodType": "quarterly",
"periodEndDate": "2022-09-30",
"basis": "Non-GAAP",
"unit": "USD",
"value": null,
"low": 54000000,
"high": 55000000,
"valueText": "Adjusted income from operations of $54 - $55 million.",
"status": "issued",
"sourceUrl": "https://investors.palantir.com/files/…Q2-2022.pdf"
},
{
"announcementDate": "2022-08-08",
"metric": "Revenue",
"scope": "Consolidated",
"periodType": "quarterly",
"periodEndDate": "2022-09-30",
"basis": "Not specified",
"unit": "USD",
"value": null,
"low": 474000000,
"high": 475000000,
"valueText": "Revenue of between $474 - $475 million.",
"status": "issued",
"sourceUrl": "https://www.sec.gov/Archives/edgar/…/d347534dex991.htm"
}
]
}Discover stable member IDs and the current modeled-portfolio coverage available to your API plan.
/v1/congress/membersFive-minute private cache. All plans see the member directory; portfolio and performance data remain plan-gated.
https://api.vizualstocks.com/v1/congress/members?apikey=YOUR_API_KEY{
"scope": {
"coverageScope": "full_modeled_universe",
"memberUniverseCount": 198
},
"generatedAtUtc": "2026-09-19T14:00:00.0000000Z",
"members": [
{
"member": {
"memberId": "bioguide-p000197",
"name": "Nancy Pelosi",
"chamber": "House",
"party": "Democrat",
"state": "CA",
"district": 11,
"bioguideId": "P000197",
"photoUrl": "https://unitedstates.github.io/images/congress/225x275/P000197.jpg"
},
"portfolioAvailable": true,
"freeSandboxAvailable": true,
"modeledCoverageStartDate": "2021-09-20",
"modeledCoverageEndDate": "2026-09-19",
"lastUpdatedAtUtc": "2026-09-19T14:00:00.0000000Z",
"coverage": {
"pricedTradeCount": 42,
"totalTradeCount": 45,
"coveragePercent": 93.3,
"hasCompleteWindow": true
}
}
]
}Retrieve VizualStocks-calculated current holdings and portfolio-level estimates without raw disclosures or transaction rows.
/v1/congress/members/{memberId}/portfoliomemberIdstringRequiredStable member ID returned by the member directory.
Path parameterFive-minute private cache. Modeled values are estimates from disclosures and prices, not official holdings or raw trade records.
https://api.vizualstocks.com/v1/congress/members/bioguide-p000197/portfolio?apikey=YOUR_API_KEY{
"member": {
"memberId": "bioguide-p000197",
"name": "Nancy Pelosi",
"chamber": "House",
"party": "Democrat",
"state": "CA",
"district": 11,
"bioguideId": "P000197",
"photoUrl": "https://unitedstates.github.io/images/congress/225x275/P000197.jpg"
},
"generatedAtUtc": "2026-09-19T14:00:00.0000000Z",
"estimatedOpenValue": 2485000,
"modeledCostBasis": 1930000,
"realizedGain": 85000,
"unrealizedGain": 555000,
"totalGain": 640000,
"coverage": {
"pricedTradeCount": 42,
"totalTradeCount": 45,
"coveragePercent": 93.3,
"hasCompleteWindow": true
},
"holdings": [
{
"ticker": "NVDA",
"assetDescription": "NVIDIA Corporation",
"estimatedShares": 7500,
"estimatedValue": 1312500,
"portfolioWeightPercent": 52.82,
"costBasis": 900000,
"currentPrice": 175,
"unrealizedGain": 412500,
"performancePercent": 45.83
}
]
}Compare a modeled member portfolio with its benchmark over one supported measurement window.
/v1/congress/members/{memberId}/performancememberIdstringRequiredStable member ID returned by the member directory.
Path parameterwindowYTD | 1Y | 2Y | 3Y | MAXOptionalPerformance window. Case-insensitive; defaults to 1Y and returns the canonical uppercase value.
Query parameterFive-minute private cache. window selects dates, returns and chart; default is 1Y.
https://api.vizualstocks.com/v1/congress/members/bioguide-p000197/performance?window=1Y&apikey=YOUR_API_KEY{
"member": {
"memberId": "bioguide-p000197",
"name": "Nancy Pelosi",
"chamber": "House",
"party": "Democrat",
"state": "CA",
"district": 11,
"bioguideId": "P000197",
"photoUrl": "https://unitedstates.github.io/images/congress/225x275/P000197.jpg"
},
"selectedWindow": "1Y",
"periodStartDate": "2025-09-19",
"periodEndDate": "2026-09-19",
"generatedAtUtc": "2026-09-19T14:00:00.0000000Z",
"portfolioReturnPercent": 24.6,
"benchmarkReturnPercent": 17.2,
"excessReturnPercent": 7.4,
"cagrPercent": 24.6,
"benchmarkCagrPercent": 17.2,
"coverage": {
"pricedTradeCount": 18,
"totalTradeCount": 19,
"coveragePercent": 94.7,
"hasCompleteWindow": true
},
"chart": [
{
"date": "2026-09-19",
"portfolioReturnPercent": 24.6,
"benchmarkReturnPercent": 17.2
}
]
}Rank eligible modeled portfolios for the selected period, with optional chamber, party, and state filters.
/v1/congress/leaderboardwindowYTD | 1Y | 2Y | 3Y | MAXOptionalRanking window. Case-insensitive; defaults to 1Y.
Query parameterchamberstringOptionalCase-insensitive chamber filter.
Query parameterpartystringOptionalCase-insensitive party filter.
Query parameterstatestringOptionalCase-insensitive state filter.
Query parameterRanks are recalculated for the chosen window and eligible members; Free Sandbox covers five members, not all Congress.
https://api.vizualstocks.com/v1/congress/leaderboard?window=1Y&apikey=YOUR_API_KEY{
"scope": {
"coverageScope": "sandbox_curated_members",
"memberUniverseCount": 5
},
"selectedWindow": "1Y",
"periodStartDate": "2025-09-19",
"periodEndDate": "2026-09-19",
"generatedAtUtc": "2026-09-19T14:00:00.0000000Z",
"members": [
{
"rank": 1,
"member": {
"memberId": "bioguide-p000197",
"name": "Nancy Pelosi",
"chamber": "House",
"party": "Democrat",
"state": "CA",
"district": 11,
"bioguideId": "P000197",
"photoUrl": "https://unitedstates.github.io/images/congress/225x275/P000197.jpg"
},
"portfolioReturnPercent": 24.6,
"benchmarkReturnPercent": 17.2,
"excessReturnPercent": 7.4,
"estimatedOpenValue": 2485000,
"holdingCount": 8,
"coverage": {
"pricedTradeCount": 18,
"totalTradeCount": 19,
"coveragePercent": 94.7,
"hasCompleteWindow": true
}
}
]
}Find current modeled member portfolios that hold a company without exposing the underlying disclosure or transaction rows.
/v1/congress/stocks/{ticker}/holderstickerstringRequiredCase-insensitive company ticker.
Path parameterFive-minute private cache. Free Sandbox searches five members across its 20 companies; paid plans search the full modeled universe.
https://api.vizualstocks.com/v1/congress/stocks/NVDA/holders?apikey=YOUR_API_KEY{
"ticker": "NVDA",
"scope": {
"coverageScope": "sandbox_curated_members",
"memberUniverseCount": 5
},
"generatedAtUtc": "2026-09-19T14:00:00.0000000Z",
"holders": [
{
"member": {
"memberId": "bioguide-p000197",
"name": "Nancy Pelosi",
"chamber": "House",
"party": "Democrat",
"state": "CA",
"district": 11,
"bioguideId": "P000197",
"photoUrl": "https://unitedstates.github.io/images/congress/225x275/P000197.jpg"
},
"estimatedShares": 7500,
"estimatedValue": 1312500,
"portfolioWeightPercent": 52.82,
"costBasis": 900000,
"unrealizedGain": 412500,
"performancePercent": 45.83,
"coverage": {
"pricedTradeCount": 42,
"totalTradeCount": 45,
"coveragePercent": 93.3,
"hasCompleteWindow": true
}
}
]
}Get newly reported GAAP results and available company KPIs from the first earnings document we can find—typically within 30 seconds of its release.
/v1/companies/{ticker}/earnings/latesttickerstringRequiredCase-insensitive company ticker.
Path parameterincludeSourcesbooleanOptionalDefaults to false. When true, adds verified source references for returned KPI and segment values. Partial coverage returns only the available references.
Query parameter30-second private cache lifetime. Sources appear only with includeSources=true; an empty sources array means no reviewed citation yet.
https://api.vizualstocks.com/v1/companies/PLTR/earnings/latest?apikey=YOUR_API_KEY{
"ticker": "PLTR",
"normalizedPeriod": "Q2'26",
"fiscalYear": 2026,
"fiscalQuarter": 2,
"periodEnd": "2026-06-30",
"reportingCurrency": "USD",
"revenue": 1935464000,
"grossProfit": 1638594000,
"netIncome": 1065962000,
"epsBasic": 0.41,
"epsGaap": 0.41,
"salesGeneralAndAdmin": 310000000,
"researchAndDevelopment": 430000000,
"sellingAndMarketingExpenses": 220000000,
"generalAndAdministrativeExpenses": 90000000,
"operatingExpenses": 1100000000,
"sharesOutstanding": 2599410000,
"cashAndEquivalents": 5900000000,
"marketableSecurities": 1800000000,
"longTermDebt": null,
"operatingCashFlow": 880000000,
"freeCashFlow": 790000000,
"customerCount": 1049,
"commercialCustomerCount": 873,
"remainingPerformanceObligations": 4900000000,
"ruleOf40": 149,
"netDollarRetention": 153
}Shared conventions apply across V1 so integrations can reuse optional pagination, caching, error handling, and versioning logic.
Only the company catalog supports opt-in pagination. Both page and pageSize must be supplied explicitly; otherwise the complete filtered catalog is returned. No default page size or maximum page size is imposed.
Chart and history endpoints default to order=asc. Use order=desc&limit=1 for the latest observation. On estimate revisions, the limit applies independently to each target period.
Successful responses use private Cache-Control lifetimes appropriate to each dataset. Documented authentication, validation, access and quota errors use no-store.
Returns newly reported GAAP results and available company KPIs from the first earnings document we can find, typically within 30 seconds of publication.
Breaking changes require a new major path such as /v2. Additive response fields, such as isMonetary, may be introduced within V1. Clients should tolerate unknown fields.
Limits are shared across the account's API keys. HTTP 429 distinguishes per-minute throttling (rate_limit_exceeded), request allowance exhaustion (request_quota_exceeded), and transfer allowance exhaustion (transfer_quota_exceeded). Plan changes apply the new plan's allowances when the change takes effect.
| HTTP | Code | Meaning |
|---|---|---|
400 | invalid_parameter | A path or query parameter is invalid. |
401 | missing_api_key | The API key is missing from the query parameter and request header. |
401 | invalid_api_key | The supplied key is invalid or revoked. |
403 | api_access_inactive | API access for the account is inactive. |
403 | api_plan_not_configured | The account's API plan is not fully configured. |
403 | company_not_available_on_plan | The company is outside the current plan's catalog. |
403 | metric_not_available_on_plan | The metric is outside the current plan's catalog. |
404 | company_not_found | No supported company matches the ticker. |
404 | metric_not_found | The company does not expose the requested metric ID. |
404 | earnings_snapshot_not_found | No Rapid Earnings Snapshot is available. |
429 | rate_limit_exceeded | The account-level requests-per-minute limit was exceeded. |
429 | request_quota_exceeded | The request allowance for the current usage period is exhausted. |
429 | transfer_quota_exceeded | The transfer allowance for the current usage period is exhausted. |
Unexpected server or gateway failures can return HTTP 5xx without this JSON envelope. Check the status and content type before parsing an error body.
Responses that reach quota enforcement include account-level usage headers. A per-minute rejection returns rate-limit headers and Retry-After; authentication failures may not include usage headers. Reset values are Unix timestamps in seconds.
| Headers | Meaning |
|---|---|
X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset | Rolling-minute request capacity, remaining capacity and reset time. |
X-Request-Limit / X-Request-Remaining / X-Request-Reset | Request allowance for the current daily or monthly usage period. |
X-Transfer-Limit-Bytes / X-Transfer-Remaining-Bytes / X-Transfer-Reset | Transfer allowance and remaining capacity in bytes, plus the period reset time. |
Retry-After | Seconds to wait after a per-minute rate_limit_exceeded response. |
The metric catalog, all-company metrics and single-metric history responses now include isMonetary. Values and source metadata retain their existing shapes.