Resurse
Company intelligence
Every B2BHint company response carries a set of B2BHint-derived intelligence fields — normalized, cross-country rollups computed from the official registry data on the record. They turn raw filings, charges, licences and financials into ready-to-use signals, so you never have to re-derive them per country.
Three fields — healthScore, workforce and benchmark — are returned on every company response. The remaining fields are returned only when you request the full record with full=true (see the Company endpoint).
Each intelligence field is null when the company holds no underlying registry data for it. A null is a coverage gap — it never means the company scored zero, has no employees, filed no accounts, or wins no contracts. B2BHint only ever asserts a datapoint it can evidence from the source registry.
Health score
healthScore — The B2BHint registry Health Score — a neutral 0–100 indicator of a company’s standing derived from its registry status, insolvency, legal, financial-disclosure, filing-recency and officer-stability signals. Returned on every company response.
scoreinteger | nullOverall score,0–100.nullwhen too little of the company’s registry data is assessable to score responsibly.bandstringNeutral standing band:strong,stable,moderate,limitedorlow. Never a judgemental verdict.confidenceintegerPercentage of scorable registry fields actually present for this company — your coverage signal for the score.
Workforce
workforce — Normalized headcount, parsed from the raw registry employee value into a comparable size band and exact / range counts. Returned on every company response.
rawstringThe employee value exactly as published by the source registry.sizeBandstringNormalized EU size band (e.g.micro,small,medium,large).employeesExactinteger | nullParsed exact headcount when the registry gives a single number.employeesMininteger | nullLower bound when the registry gives a range or band.employeesMaxinteger | nullUpper bound when the registry gives a range or band.
Sector benchmark
benchmark — Sector- and nation-level rank intelligence from the ranks the registry materializes per company, each with its year-over-year movement. Ranks only — no fabricated percentile. Returned on every company response.
turnoverobject | nullNational turnover rank and its year-over-year movement.profitobject | nullNational profit rank and its year-over-year movement.sectorTurnoverobject | nullTurnover rank within the company’s own NACE sector, with movement.sectorobject | null{ activityId, naceCode }— the sector the sector-turnover rank is computed within.
Licences & permits
credentials — Licence- and permit-compliance rollup across every credential on the record, counted by lifecycle state. Returned only when full=true.
totalintegerAll licences + permits on record.active, expired, suspended, withdrawn, unknownintegerCombined licence + permit counts in each lifecycle state.licensesobjectThe same lifecycle-state breakdown for licences only.permitsobjectThe same lifecycle-state breakdown for permits only.
LEI compliance
lei — GLEIF Legal Entity Identifier compliance and entity-resolution view over the company’s ingested LEI records. Returned only when full=true.
totalintegerLEI records classified.issued, pending, lapsed, retired, duplicate, annulled, inactive, unknownintegerRecord counts by GLEIF registration state.hasIssuedbooleanTrue when at least one LEI is live / validated (ISSUED).hasInvalidbooleanTrue when at least one LEI is in a terminated / invalid state.recordsarrayPer-LEI details:lei,legalName,state,legalJurisdiction,managingLOU.
CAGE / SAM federal-contractor registration
cage_registration — View over the company’s ingested US DLA CAGE-code registration records — the identifier required to hold a US federal contract. Per-status counts plus two hard flags: whether any registration is under a live federal-contracting exclusion (Debarred / Suspended / Proposed Debarment) and whether any carries a lesser Active-With-Restraint caution. Neutral registry facts only: no independent "sanctioned / high-risk" verdict beyond the source’s own status label. Returns null when the company holds no CAGE record — CAGE registration is mostly a US federal-contractor concept, so absence is a coverage gap, never a "not registered / ineligible" claim. Returned only when full=true.
totalintegerCAGE records classified.active, restrained, suspended, proposedDebarment, debarred, cancelled, obsolete, unknownintegerRecord counts by normalized CAGE registration state.hasActivebooleanTrue when at least one CAGE registration is a clean, unrestricted Active.isUnderActiveExclusionbooleanTrue when at least one CAGE registration is Debarred, Suspended, or under Proposed Debarment — a live US federal-contracting exclusion, the KYB debarment-screening signal.hasActiveRestraintbooleanTrue when at least one CAGE registration is Active With Restraint — a lesser caution flag (still contracting-eligible, but limited).recordsarrayPer-CAGE details:cageNumber,state.
Secured lending & charges
charges_intel — Encumbrance view over the company’s registered charges, mortgages and debentures — outstanding vs satisfied, and the amount still secured per currency. Returned only when full=true.
totalintegerCharges on record.outstanding, satisfied, partSatisfied, unknownintegerCharge counts by settlement state.liveEncumbrancesintegerCharges still securing debt.hasLiveEncumbrancebooleanTrue when the company carries at least one live charge.liveSecuredAmountsarrayStill-secured amount per currency:{ currency, amount }— never cross-currency collapsed.latestChargeDatestring | nullMost recent charge date.
Capital structure
capital_structure — Parsed subscribed / paid / authorized headline capital, the paid-up ratio, and a share-register rollup. Returned only when full=true.
subscribedCapital, paidCapital, authorizedCapitalobject | nullParsed{ amount, currency }headline capital figures.paidUpRationumber | nullPaid ÷ subscribed — only when both parse in the same currency.paidUpBandstring | nullNeutral band for the paid-up ratio.registerobject | nullShare-register rollup: total shares issued, distinct classes, single- vs multi-class.
Filing recency
filing_compliance — Disclosure-recency view — how current the company’s annual accounts are, plus filing-history continuity. Returned only when full=true.
latestReportYear, earliestReportYearintegerNewest / oldest reported financial year.reportedYearsCountintegerDistinct reported years on record.yearsSinceLatestReportintegerWhole years since the latest reported year.recencyBandstringNeutral recency band for that age.filingGapYearsintegerMissing years within the reported span.hasContinuousHistorybooleanTrue when the series is gap-free across ≥ 2 years.dissolvedbooleanWhether the company is dissolved (context for the recency).
Tax contribution
tax_substance — Fiscal-substance view over the government-verified tax-remitted series, with a neutral year-over-year change between the two most recent same-currency years. Returned only when full=true.
latestYear, earliestYearintegerNewest / oldest reported tax year.reportedYearsCountintegerDistinct tax years on record.latestAmountnumberTax remitted in the latest reported year.currencyIdinteger | nullCurrency of the latest amount.filingGapYearsintegerMissing years within the reported span.hasContinuousHistorybooleanTrue when the series is gap-free across ≥ 2 years.latestChangeobject | null{ fromYear, toYear, fromAmount, toAmount, absoluteChange, percentChange }— only when the two most recent years share a currency.contributionTrendstring | nullNeutral direction label for that change.
Litigation
litigation — View over the company’s court cases — counts, the defendant-vs-claimant split, disputed-amount presence and recency. Neutral counts only: no litigiousness verdict and no monetary-exposure sum. Returned only when full=true.
totalintegerCourt cases on record.asDefendant, asClaimant, roleOtherintegerCase counts by this company’s role.withDisputedAmountintegerCases carrying a stated disputed amount.defendantWithDisputedAmountintegerOf those, cases where the company is the defendant.latestCaseDate, earliestCaseDatestring | nullMost / least recent case date.recentWindowMonthsintegerThe window used for the recent-case flag.recentCaseCountintegerCases within that recent window.hasRecentCasebooleanTrue when any case falls in the recent window.
Insolvency & restructuring
insolvency_intel — View over the company’s insolvency-register records — record count, proceeding-type mix, publishing courts, the named office holder(s) (practitioner / liquidator / administrator / receiver) running the proceeding where the registry publishes one, any still-open creditor-claim / response deadline, and whether a return-to-solvency has since been recorded. Neutral registry facts and the actionable deadline only: no “insolvent / bankrupt / failed” verdict. The insolvency register is ingested for only some jurisdictions, so absence is a coverage gap. Returned only when full=true.
totalintegerInsolvency-register records on file for the company.typeMixarrayProceeding-type breakdown as{ type, count }objects, ranked most-common first (capped).typeUnknownintegerRecords carrying no usable proceeding-type label.distinctCourtsintegerDistinct publishing courts across the records.withOfficeHolderintegerRecords carrying at least one named office holder (practitioner / liquidator / administrator / receiver) on file.officeHolderCountintegerTotal office-holder appointments across all records (an appointment count — joint appointments and repeat appearances across records each add one).distinctOfficeHoldersintegerDistinct named office holders (by name) across the records — the headcount.officeHolderRoleMixarrayOffice-holder role breakdown as{ role, count }objects, ranked most-common first (capped) — the registry’s own role label, verbatim (e.g. "practitioner", "receiver-manager", "Masseverwalter"), never normalized across jurisdictions.hasOfficeHolderbooleanTrue when at least one record carries a named office holder.withDeadlineintegerRecords that carry a stated creditor-claim / response deadline.openDeadlineCountintegerOf those, deadlines still in the future at request time — live, actionable creditor windows.hasOpenDeadlinebooleanTrue when at least one deadline is still open.nextDeadlineDatestring | nullEarliest still-open deadline (YYYY-MM-DD), ornull.withSolventDeclarationintegerRecords carrying a recorded return-to-solvency / closure signal. Softens the read; never a verdict.latestRecordDate, earliestRecordDatestring | nullMost / least recent record date (YYYY-MM-DD).recentWindowMonthsintegerThe trailing window used for the recent-record flag.recentCountintegerRecords dated within that recent window.hasRecentbooleanTrue when any record falls inside the recent window.
Regulatory inspections
inspection_intel — View over the company’s official inspection-register records — record count, the regulator-published grade / outcome mix (verbatim counts, ranked), the number of distinct inspecting bodies, and how recent the oversight is. Neutral registry facts only: the grade mix is a faithful count of what inspecting bodies recorded, NOT a B2BHint “compliant / non-compliant / unsafe” rating. The inspection register is ingested for only some jurisdictions, so absence is a coverage gap. Returned only when full=true.
totalintegerOfficial inspection records on file for the company.gradeMixarrayRegulator-published grade / outcome breakdown as{ grade, count }objects, ranked most-common first (capped). Thegradestring is reproduced exactly as the inspecting body recorded it.gradeUnknownintegerRecords carrying no usable grade / outcome label.distinctInstitutionsintegerDistinct inspecting bodies that recorded the inspections.latestInspectionDate, earliestInspectionDatestring | nullMost / least recent inspection date (YYYY-MM-DD).recentWindowMonthsintegerThe trailing window used for the recent-inspection flag.recentCountintegerRecords dated within that recent window.hasRecentbooleanTrue when any record falls inside the recent window.
Registered fleet
fleet — Registered-vehicle fleet rollup — size, ownership split, fuel and type mix, age and latest registration. Vehicle registers cover only some jurisdictions, so absence is a coverage gap. Returned only when full=true.
totalintegerVehicles on record.owned, operated, ownershipUnknownintegerFleet split by ownership.hasOwnershipSplitbooleanTrue when ownership is known for the fleet.fuelMix, typeMixarrayRanked breakdown by fuel and by vehicle type.medianAgeYearsnumber | nullMedian vehicle age, in years.oldestManufacturingYear, newestManufacturingYearinteger | nullManufacturing-year range.totalSeatsinteger | nullTotal seating capacity where recorded.latestRegistrationDatestring | nullMost recent vehicle registration.
Public procurement
procurement — Public-procurement view — contracts won as a supplier vs awarded as a public authority, won value per currency, sector and contract-type mix, and recency. Tender data is ingested for some jurisdictions only, so absence is a coverage gap. Returned only when full=true.
totalintegerAcquisition rows on record.won, awarded, roleOtherintegerCounts by this company’s role (supplier won vs authority awarded).wonWithValue, wonWithoutValueintegerWon contracts with vs without a stated value.wonValueByCurrencyarrayTotal won value per currency:{ currency, total }— never cross-currency collapsed.distinctAuthoritiesWonFromintegerDistinct awarding authorities the company has won from.cpvDivisionMix, contractTypeMixarrayRanked breakdown by CPV division and by contract type.latestWonDate, earliestWonDatestring | nullMost / least recent award date.recentWindowMonthsintegerThe window used for the recent-win flag.recentWonCountintegerWins within that recent window.hasRecentWinbooleanTrue when any win falls in the recent window.
Corporate group
group_structure — Corporate-group / family-tree view — the entities LINKED FROM this company (rows where it is the parent side of a company relation): relation-type breakdown, a domestic-vs-foreign jurisdiction split, linkage recency, and a bounded list of the linked entities. Only the downward (parent→child) edge is held — the company’s own ultimate owner is not asserted. Company relations are ingested for some jurisdictions only, so absence is a coverage gap. Returned only when full=true.
totalintegerLinked entities on record (rows where this company is the parent).directionstringAlwayslinked-from-subject-as-parent— the edge direction held, so you never mistake it for the company’s own parent.relationTypeMixarrayRanked breakdown by relation type:{ relationType, count }.untypedintegerLinks with no stated relation type.jurisdictionMixarrayRanked breakdown of the linked entities by jurisdiction:{ countryCode, count }.unknownJurisdictionintegerLinked entities whose jurisdiction is not resolvable.distinctJurisdictionCountintegerDistinct jurisdictions across the linked entities.domesticCount, foreignCountintegerLinked entities in the same jurisdiction as this company vs a different one.crossBorderbooleanTrue when at least one linked entity is in a different jurisdiction.latestLinkDate, earliestLinkDatestring | nullMost / least recent linkage date.recentWindowMonthsintegerThe window used for the recent-link flag.recentLinkCountintegerLinkages within that recent window.hasRecentLinkbooleanTrue when any linkage falls in the recent window.linkedEntitiesarrayBounded list of the linked entities:{ name, internationalNumber, countryCode, relationType, date }.linkedEntitiesTruncatedbooleanTrue when more linked entities exist than the bounded list returns.
Financial performance
financial_performance — Trading-trend view over the company’s own filed multi-year financial series — the turnover (revenue) trajectory, the net-profit (bottom-line) trajectory, and the latest net margin, each with a purely arithmetic same-currency year-over-year change and a neutral directional band. No judgemental "loss-making / distressed" label; raw figures + neutral trend only. Returned only when full=true.
latestReportYear, earliestReportYearintegerNewest / oldest reported financial year in the series.reportedYearsCountintegerDistinct reported financial years on record.turnoverobject | nullTurnover (revenue) summary:{ latestYear, earliestYear, yearsCount, latestAmount, currencyId, latestChange, trend }.nullwhen no usable turnover figure.netProfitobject | nullNet-profit (bottom-line) summary, same shape asturnover.nullwhen no usable net-profit figure.netMarginobject | nullLatest same-year net margin:{ year, turnover, netProfit, currencyId, marginPercent }.nullunless the latest year has both a turnover and a net-profit figure.
Branch network
branch_network — Operating-footprint view over the company’s OWN registered establishments (branches / local units — NOT separate legal entities like group_structure): establishment count, the active-vs-dissolved split (grounded in a real closure signal), the geographic spread, the establishment-type mix, a PARTIAL branch-level headcount + floor-space roll-up (each with its coverage denominator, never the company total), and the establishment date range. The branch register is ingested for some jurisdictions only, so absence is a coverage gap — never a "single-site" claim. Returned only when full=true.
totalintegerRegistered establishments on record.active, dissolvedintegerEstablishments split by open vs closed status.hasClosureDatabooleanTrue when at least one establishment carries a dissolution date, so the active/dissolved split is grounded in a real closure signal (never a fabricated "all open").distinctLocalitiesintegerDistinct localities the establishments sit in (geographic spread).localityMix, typeMixarrayRanked breakdown by locality ({ locality, count }) and by establishment type ({ type, count }).branchEmployeesinteger | nullSum of branch-level headcount, overwithEmployeeCountestablishments only — a partial roll-up, never presented as the company’s total.nullwhen no branch reports a headcount.withEmployeeCountintegerHow many establishments contributed tobranchEmployees(the coverage denominator).totalFloorSpaceinteger | nullSum of branch-level floor space, overwithFloorSpaceestablishments only — partial, never the company total.nullwhen no branch reports floor space.withFloorSpaceintegerHow many establishments contributed tototalFloorSpace.withContactChannelintegerEstablishments that carry at least one contact channel.earliestEstablished, latestEstablishedstring | nullOldest / newest establishment date.
PPP relief loans
ppp_loans — View over the company’s US SBA Paycheck Protection Program loan records — record count, total approved amount and total amount later forgiven (both USD), the jobs the borrower reported to the SBA, the distinct issuing lenders, and the SBA-published loan-status mix (verbatim counts, ranked). Neutral government-published facts only: no “over-borrowed / misused relief” verdict, and no borrower demographics. The PPP dataset is US-only, so absence is a coverage gap. Returned only when full=true.
totalintegerPPP loan records on file for the company.currencystringCurrency of the amounts below — alwaysUSD(the SBA PPP is US-federal).totalApprovedAmountnumber | nullSum of the approved loan amounts (USD), ornullwhen no amount parses. Never0as a “borrowed nothing” claim.totalForgivenAmountnumber | nullSum of the amounts later forgiven (USD), ornullwhen none is recorded.forgivenessRecordedCountintegerRecords carrying a recorded forgiveness (a positive forgiveness amount or a forgiveness date). A neutral fact — forgiveness was the program’s designed outcome.jobsReportedTotalnumber | nullTotal jobs the borrower itself reported to the SBA across the records, ornullwhen none parses.distinctLendersintegerDistinct lenders that issued the loans.statusMixarraySBA-published loan-status breakdown as{ status, count }objects, ranked most-common first (capped). Thestatusstring is reproduced exactly as the SBA published it.statusUnknownintegerRecords carrying no usable loan-status label.latestApprovalDate, earliestApprovalDatestring | nullMost / least recent loan-approval date (YYYY-MM-DD).
Enforcement & debarment
enforcement — View over the company’s registered restrictions and court/authority security measures — per-category active-vs-lifted counts, distinct action types and imposing authorities, and a single hard flag for whether any action is in force right now. Neutral registry facts only: no “debarred / sanctioned / high-risk” verdict. Returns null when the company holds neither a restriction nor a security measure — never an (unasserted) “clean / not debarred” clearance on a coverage gap. Returned only when full=true.
restrictions, securityMeasuresobjectPer-category{ total, active, lifted }counts — registry restrictions and court/authority security measures respectively.totalActionsintegerrestrictions.total + securityMeasures.total.activeActionsintegerrestrictions.active + securityMeasures.active — the headline live-action count.hasActiveEnforcementbooleanTrue when at least one restriction or security measure is in force now (no end date, or an end date not yet passed).typesarrayDistinct actiontypelabels across both datasets, sorted.imposersarrayDistinct security-measure imposing authorities (imposerName), sorted.latestActionDatestring | nullISO date (YYYY-MM-DD) of the most recent action start, any category or state.
Third-party review signal
review_signal — View over third-party, peer-to-peer B2B reviews the company has received (predominantly freight-carrier/shipper payment-and-reliability feedback) — review count, distinct reviewing companies, average rating on a fixed 1-5 scale, the source platform’s own positive/negative/neutral split, the review date range, and a few capped verbatim review-text snippets. This is THIRD-PARTY, UNVERIFIED content — B2BHint did not write, verify or moderate it, and computes no “trustworthy / risky” verdict from it; only the source’s own rating and sentiment flags are rolled up. Returns null when the company holds no review row — this register only names some of the platform’s companies, so absence is a coverage gap, never an “unreviewed” claim. Returned only when full=true.
totalintegerReview records on file for the company.distinctReviewersintegerDistinct reviewing companies.averageRatingnumber | nullMean of the parsed ratings (fixed 1-5 scale), or null when none parses.positiveCount, negativeCount, neutralCountintegerReviews the source itself flagged positive / negative / neutral. A review flagged both negative and neutral counts as negative (never diluted).sentimentUnknownintegerReviews carrying no usable sentiment flag from the source at all.earliestReviewDate, latestReviewDatestring | nullEarliest / most recent review date on file (YYYY-MM-DD).recentSnippetsarrayMost-recent-first, capped{ text, date, sentiment }review-text snippets, verbatim third-party content (not translated or filtered).
SEC EDGAR filing history
sec_filings — View over the company’s own U.S. SEC EDGAR filing history (companyCIKFiling) — total filings on record, the distinct form-type mix (e.g. 10-K, 10-Q, 8-K, 4), how many carry structured XBRL/inline-XBRL disclosure, the earliest/latest filing dates, and a purely date-based "still an active SEC filer" recency flag. SEC EDGAR data covers only some (predominantly U.S.) companies, so null never means "not SEC-registered" — it means we hold no filing row for this entity. Neutral filing facts only: no "compliant / non-compliant" verdict. Returned only when full=true.
totalFilingsintegerFiling rows on record across every CIK entry the company holds.formTypesarrayDistinct filing form types as{ form, count }, ranked most-common first (capped at 10). Theformstring is reproduced exactly as EDGAR published it (e.g. "10-K", "SC 13G/A", "4").xbrlFilingsintegerFilings flaggedisXBRLorisInlineXBRL— structured-disclosure usage.latestFilingDate, earliestFilingDatestring | nullMost / least recent filing date on record (YYYY-MM-DD).latestFilingFormstring | nullForm type of the most recent filing.isActiveFilerRecencybooleanTrue when the latest filing on record is within the last 2 years — a date-based recency read, not a "compliant" verdict (registrants can legitimately go quiet between periodic filings).
Contact verification
contact_verification — Email-deliverability check results for this company’s own listed contacts — how many were run through a real verification pass and the good/risky/bad split, plus the per-contact entries. This covers a small legacy verification batch (email contacts only today), not the whole contact register, so null is a coverage gap — never a "bad contact info" claim. Returned only when full=true.
checkedintegerContacts on this company ever run through the verification pass.good, risky, badintegerVerbatim source quality split: deliverable, risky (e.g. catch-all domain), and undeliverable counts.entriesarray{ type, quality, value }per checked contact —typeis the contact channel (e.g.email),qualityis the verbatim source label,valueis the real contact value.