SureshakeDocs
API ReferenceEndpoints

Company Data Endpoints

Public company profiles, ticker short-link resolution, and the SEC-derived company terminal.

Company data endpoints serve the public company pages on Sureshake: the published company profile behind www.sureshake.com/c/{slug}, the ticker-to-company resolver behind the www.sureshake.com/t/{ticker} short links, and the company terminal — SEC-EDGAR-derived public reference data for public companies.

All three endpoints are public reads. The profile and ticker endpoints need no authentication at all; the company terminal accepts an optional Authorization: Bearer $TOKEN header to upgrade the view when your account has additional permissions.

  • Error responses use the standard error envelope: { "error": { "code", "message", "traceId" } }.
  • The examples below use Bentley Systems (NASDAQ: BSY, slug bentley-systems-inc), a real public reference profile.

Get Public Company Profile

Retrieve the published public profile for a company by slug. This is the read model behind the public company page at www.sureshake.com/c/{slug}.

GET/v2/entities/public/:slug
curl "https://api.sureshake.com/v2/entities/public/bentley-systems-inc"
const response = await fetch(
'https://api.sureshake.com/v2/entities/public/bentley-systems-inc',
);
const profile = await response.json();

Authentication is optional. When you send a bearer token, viewer-specific fields reflect your session: isOwner, stats.isFollowing, stats.followRequestStatus, and connection-gated publicContact fields.

Response fields

FieldTypeDescription
entityobjectCore identity: id, name, slug, description, logoUrl, bannerUrl, entityType, verified, location, createdAt, claimStatus (not_claimable | claimed | claim_pending | unclaimed), canClaim.
profileobject | nullExtended profile: legalName, tagline, websiteUrl, businessDescription, socialLinks, employeeCount, verificationStatus, and similar fields. null when no profile has been published.
personnelarrayPublicly listed team members.
addressesarrayPublic addresses (street, city, state, postalCode, country, …).
statsobjectfollowersCount, creditReferencesCount, customerReferencesCount, isFollowing, followRequestStatus.
isOwnerbooleanWhether the authenticated caller manages this entity. Always false for anonymous requests.
publicContactobjectVisibility-filtered contact fields. Each field carries its visibility (public | connected | private), provenance (visibilitySource), and a redactionReason when hidden.
capitalGraphobjectCapital Graph panel data: template, eligibility and canonicalPath, portfolio companies, public investors, related entities, and the verification badge.
200 OK
{
"entity": {
  "id": "5210b6a3-5677-4bd9-8f8d-6e9dab011a28",
  "name": "Bentley Systems, Incorporated",
  "slug": "bentley-systems-inc",
  "description": "Public infrastructure engineering software company providing modeling, simulation, collaboration, digital twin, asset analytics, and infrastructure cloud software for design, construction, and operations across global infrastructure sectors.",
  "logoUrl": null,
  "bannerUrl": null,
  "entityType": "company",
  "verified": false,
  "location": "685 Stockton Drive, Exton, PA 19341, United States",
  "createdAt": "2026-07-22T21:39:45.000Z",
  "claimStatus": "unclaimed",
  "canClaim": false
},
"profile": {
  "legalName": null,
  "tagline": "company",
  "websiteUrl": "https://bentley.com/",
  "businessDescription": "Public infrastructure engineering software company...",
  "consentPublicRecords": true,
  "verificationStatus": "unverified",
  "...": "additional profile fields elided"
},
"personnel": [],
"addresses": [],
"stats": {
  "followersCount": 0,
  "creditReferencesCount": 0,
  "customerReferencesCount": 0,
  "isFollowing": false,
  "followRequestStatus": null
},
"isOwner": false,
"publicContact": {
  "viewerRelationship": "anonymous",
  "fields": [
    {
      "kind": "website",
      "label": "Website",
      "value": "https://bentley.com/",
      "href": "https://bentley.com/",
      "visibility": "public",
      "visibilitySource": "entity_profile",
      "viewerRelationship": "anonymous",
      "redacted": false,
      "redactionReason": null
    }
  ]
},
"capitalGraph": {
  "graphStatus": "available",
  "template": "company",
  "eligibility": {
    "routeKind": "entity",
    "template": "company",
    "canonicalPath": "/c/bentley-systems-inc",
    "...": "indexability and reason codes elided"
  },
  "...": "portfolio, investor, and verification badge data elided"
}
}
404 Not FoundNo published public profile for that slug
{
"error": {
  "code": "NOT_FOUND",
  "message": "Directory profile not found",
  "traceId": "O8K4iaFdhawuhb-Aamb6d"
}
}

Resolve a Ticker to a Company

Resolve an exchange ticker (e.g. BSY) or a Sureshake-native ticker to the canonical company slug and path. This endpoint backs the www.sureshake.com/t/{ticker} short links — /t/BSY redirects to /c/bentley-systems-inc.

GET/v2/entities/public/by-ticker/:ticker
curl "https://api.sureshake.com/v2/entities/public/by-ticker/BSY"
const response = await fetch(
'https://api.sureshake.com/v2/entities/public/by-ticker/BSY',
);
const { data } = await response.json();
// data.canonicalPath === '/c/bentley-systems-inc'

Resolution rules:

  • Case-insensitive. bsy, BSY, and Bsy all resolve identically.
  • Sureshake-native tickers win. A company's Sureshake-assigned ticker is checked first, then its primary exchange ticker. matchedBy tells you which one matched.
  • Only live companies resolve. A ticker only resolves when the company is live in the public directory. Anything else — unknown tickers, delisted or unpublished companies — returns 404.

Response fields (data)

FieldTypeDescription
entityIdstring (uuid)Entity identifier — use it with the company terminal and watchlists.
slugstringCanonical public slug.
namestringCompany display name.
canonicalPathstringCanonical public page path (e.g. /c/bentley-systems-inc).
matchedBy"sureshake_ticker" | "primary_ticker"Which ticker field matched.
200 OK
{
"data": {
  "entityId": "5210b6a3-5677-4bd9-8f8d-6e9dab011a28",
  "slug": "bentley-systems-inc",
  "name": "Bentley Systems, Incorporated",
  "canonicalPath": "/c/bentley-systems-inc",
  "matchedBy": "primary_ticker"
}
}
404 Not FoundNo live public company matches the ticker
{
"error": {
  "code": "NOT_FOUND",
  "message": "No public company for ticker: NOPE-XYZ",
  "traceId": "ZSb4fZMX7dfAgAKwTGzNT"
}
}

Tickers are limited to 20 characters; longer values return 400 with code FST_ERR_VALIDATION.

Get the Company Terminal

Retrieve SEC-EDGAR-derived public reference data for a public company: issuer identity (CIK, exchange, ticker), normalized financial statement periods, the filing history, and deterministic financial health signals.

The path parameter is the entity UUID — get it from the public profile (entity.id) or the ticker resolver (data.entityId).

GET/v2/entities/:id/company-terminal
curl -H "Authorization: Bearer $TOKEN" \
"https://api.sureshake.com/v2/entities/5210b6a3-5677-4bd9-8f8d-6e9dab011a28/company-terminal"
const response = await fetch(
'https://api.sureshake.com/v2/entities/5210b6a3-5677-4bd9-8f8d-6e9dab011a28/company-terminal',
{ headers: { 'Authorization': `Bearer ${token}` } }, // optional
);
const { data } = await response.json();

Anonymous requests receive the public-safe view (viewerScope: "public"). Sending a Privy bearer token upgrades the response to whichever view your permissions allow (owner or admin) — the shape stays the same, but permissioned sections unlock.

Every content section reports its own state, one of available, partial, permissioned, locked, unavailable, or not_applicable. Render what the server says is available; do not infer availability client-side.

Response fields (data)

FieldTypeDescription
entityIdstringEntity identifier.
entityNamestringCompany display name.
entitySlugstringCanonical public slug.
profileModeenumpublic_reference | private_company | unclassified_company.
viewerScopeenumpublic | owner | admin — the view you received.
identityobjectIssuer identity: primaryExchange, primaryTicker, sureshakeTicker, cik, secName, sic, sicDescription, fiscalYearEnd, issuerStatus, listingStatus, claimStatus, referenceLabel.
summaryobjectHeadline metrics (revenue, operating income, …) with per-metric SEC source provenance, plus highlights and a dataQualityLabel.
financialHealthobjectDeterministic health signals over SEC-filed facts: overallSignal (great | good | watch | risk | unavailable), per-dimension signals with grades and explanations.
financialsobjectNormalized financial statement periods (income statement, balance sheet, cash flow) with per-line taxonomy concepts.
filingsobjectSEC filing history rows (form, dates, accession number, document URLs) plus latestAnnualFiledAt / latestQuarterlyFiledAt.
modelsobjectModel templates (e.g. DCF) with prefill availability.
marketDataobjectDelayed exchange quote when a market-data provider is configured: state (available | unavailable | not_configured) plus a quote (price, day change, 52-week range, beta, stale/delayed flags, provider attribution); quote is null outside available.
transparencyLadderobjectThe company's Sureshake transparency progression; not_applicable for unclaimed reference profiles.
modulesarrayPer-module render states for terminal UI sections.
sourcesarrayEvery upstream source used, with provider, URL, and access time.
generatedAtstringWhen this response was generated.
disclaimerstringRequired attribution and non-advice disclaimer.
200 OK
{
"data": {
  "entityId": "5210b6a3-5677-4bd9-8f8d-6e9dab011a28",
  "entityName": "Bentley Systems, Incorporated",
  "entitySlug": "bentley-systems-inc",
  "profileMode": "public_reference",
  "viewerScope": "public",
  "identity": {
    "companyMarketStatus": "public",
    "primaryExchange": "NASDAQ",
    "primaryTicker": "BSY",
    "sureshakeTicker": null,
    "cik": "0001031308",
    "secName": "BENTLEY SYSTEMS INC",
    "sic": "7372",
    "sicDescription": "Services-Prepackaged Software",
    "fiscalYearEnd": "1231",
    "issuerStatus": "active",
    "regulationCategory": "exchange_listed",
    "isActiveOperatingCompany": true,
    "listingStatus": "active",
    "claimStatus": "unclaimed",
    "referenceLabel": "SEC-sourced public reference · unclaimed"
  },
  "summary": {
    "state": "available",
    "asOf": "2026-03-31T00:00:00.000Z",
    "metrics": [
      {
        "key": "revenue",
        "label": "Revenue",
        "state": "available",
        "value": 424181000,
        "displayValue": "$424.2M",
        "unit": "USD",
        "periodEnd": "2026-03-31T00:00:00.000Z",
        "deltaDisplay": "+$53.6M",
        "source": {
          "kind": "regulator",
          "provider": "SEC EDGAR companyfacts",
          "label": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
          "accessionNumber": "0001031308-26-000017",
          "note": "10-Q · unit USD · frame CY2026Q1"
        }
      }
    ],
    "highlights": [
      "Profitable in the latest reported period",
      "Positive derived free cash flow"
    ],
    "dataQualityLabel": "94% canonical metric coverage"
  },
  "financialHealth": {
    "state": "available",
    "overallSignal": "good",
    "headline": "Generally healthy filing-backed fundamentals",
    "explanation": "Signals use deterministic thresholds over SEC-filed facts. They are descriptive, not a credit rating, audit opinion, price target, or investment recommendation.",
    "signals": [
      {
        "key": "profitability",
        "label": "Profit health",
        "signal": "great",
        "grade": "A",
        "headline": "Profitable in the latest reported period",
        "explanation": "Net margin was 22.5%.",
        "metricKeys": ["revenue", "net_income", "net_margin"]
      }
    ]
  },
  "financials": {
    "state": "available",
    "periods": [
      {
        "fiscalYear": 2026,
        "fiscalPeriod": "Q1",
        "baseForm": "10-Q",
        "periodEnd": "2026-03-31T00:00:00.000Z",
        "filedDate": "2026-05-07T00:00:00.000Z",
        "currency": "USD",
        "coveragePercent": 94,
        "incomeStatement": [
          {
            "key": "revenue",
            "label": "Revenue",
            "displayValue": "$424.2M",
            "value": 424181000,
            "unit": "USD",
            "sourceConcept": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax"
          }
        ],
        "...": "balance sheet, cash flow, and 15 earlier periods elided"
      }
    ],
    "unavailableReason": null
  },
  "filings": {
    "state": "available",
    "latestAnnualFiledAt": "2026-02-26T00:00:00.000Z",
    "latestQuarterlyFiledAt": "2026-05-07T00:00:00.000Z",
    "rows": [
      {
        "form": "8-K",
        "filingDate": "2026-05-26T00:00:00.000Z",
        "accessionNumber": "0001104659-26-066280",
        "filingIndexUrl": "https://www.sec.gov/Archives/edgar/data/1031308/000110465926066280/0001104659-26-066280-index.html",
        "isAmendment": false,
        "status": "active"
      }
    ]
  },
  "marketData": {
    "state": "not_configured",
    "reason": "Live price, analyst targets, news, and exchange redistribution are disabled until a licensed market-data provider is configured."
  },
  "sources": [
    {
      "kind": "regulator",
      "provider": "SEC EDGAR",
      "label": "SEC company profile · CIK 0001031308",
      "url": "https://www.sec.gov/edgar/browse/?CIK=0001031308&owner=exclude&action=getcompany",
      "accessedAt": "2026-07-22T21:39:58.000Z"
    }
  ],
  "generatedAt": "2026-07-24T03:56:05.277Z",
  "disclaimer": "Public-company information is derived from SEC EDGAR filings. Source filings control in the event of any discrepancy. Sureshake does not provide investment advice, audit assurance, live market data, or an issuer endorsement.",
  "...": "models, transparencyLadder, and modules elided"
},
"meta": { "timestamp": "2026-07-24T03:56:05.277Z" }
}

Company terminal data is derived from SEC EDGAR filings. Source filings control in the event of any discrepancy. Sureshake does not provide investment advice, audit assurance, live market data, or an issuer endorsement — surface the disclaimer field wherever you display this data.

Get Full Financials (TTM + Fiscal Quarters)

Trailing-twelve-month and fiscal-quarter tables derived from SEC canonical periods: income statement, balance sheet, and cash flow with derived EBITDA and free cash flow. Flow items sum four consecutive quarters for TTM; balance-sheet items are point-in-time. Fourth quarters that were never filed separately are derived as fiscal year minus Q1–Q3 and flagged derivedQ4.

GET/v2/entities/:id/financials/full
curl "https://api.sureshake.com/v2/entities/5210b6a3-5677-4bd9-8f8d-6e9dab011a28/financials/full"
const response = await fetch(
'https://api.sureshake.com/v2/entities/5210b6a3-5677-4bd9-8f8d-6e9dab011a28/financials/full',
);
const { data } = await response.json();

data.ttm and data.quarters are arrays of columns, each with periodEnd, fiscalPeriod, basis, derivedQ4, and grouped income, balanceSheet, and cashFlow values (nullable where a filing fact is absent). The human-readable view lives at www.sureshake.com/c/{slug}/financials.

On this page