Recursos

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).

Honest by construction

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, 0100. null when too little of the company’s registry data is assessable to score responsibly.
  • bandstringNeutral standing band: strong, stable, moderate, limited or low. 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), or null.
  • 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). The grade string 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).
  • directionstringAlways linked-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 }. null when no usable turnover figure.
  • netProfitobject | nullNet-profit (bottom-line) summary, same shape as turnover. null when no usable net-profit figure.
  • netMarginobject | nullLatest same-year net margin: { year, turnover, netProfit, currencyId, marginPercent }. null unless 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, over withEmployeeCount establishments only — a partial roll-up, never presented as the company’s total. null when no branch reports a headcount.
  • withEmployeeCountintegerHow many establishments contributed to branchEmployees (the coverage denominator).
  • totalFloorSpaceinteger | nullSum of branch-level floor space, over withFloorSpace establishments only — partial, never the company total. null when no branch reports floor space.
  • withFloorSpaceintegerHow many establishments contributed to totalFloorSpace.
  • 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 — always USD (the SBA PPP is US-federal).
  • totalApprovedAmountnumber | nullSum of the approved loan amounts (USD), or null when no amount parses. Never 0 as a “borrowed nothing” claim.
  • totalForgivenAmountnumber | nullSum of the amounts later forgiven (USD), or null when 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, or null when none parses.
  • distinctLendersintegerDistinct lenders that issued the loans.
  • statusMixarraySBA-published loan-status breakdown as { status, count } objects, ranked most-common first (capped). The status string 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 action type labels 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). The form string is reproduced exactly as EDGAR published it (e.g. "10-K", "SC 13G/A", "4").
  • xbrlFilingsintegerFilings flagged isXBRL or isInlineXBRL — 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 — type is the contact channel (e.g. email), quality is the verbatim source label, value is the real contact value.