Business Holmes
Query official bureaus and Stark Infra's internal datasets to investigate a legal entity (CNPJ). Each request targets a specific bureau by type and returns that bureau's structured payload alongside a paging cursor.
Use Business Holmes to run KYB, judicial, anti-fraud, sanctions, QSA (corporate structure) and federal-revenue checks on a company before onboarding it, granting credit or releasing a high-risk operation.
Every call is synchronous, scoped to your workspace and logged on Stark Infra's side — there is no resource lifecycle to track.
NOTE: Read Core Concepts before continuing this guide.
Setup
For each environment (Sandbox and Production):
1. Create an account at Stark Bank.
2. Get in touch with your account manager to enable Business Holmes on your workspace — each bureau is contracted independently, so let us know which type values you intend to use.
3. Have the CNPJ you want to investigate ready in unmasked or masked form — Stark Infra normalizes both before sending it to the bureau.
4. Generate your ECDSA credentials by following How to Create ECDSA Keys and authenticate every request with the Access-Id, Access-Time and Access-Signature headers.
Business Holmes Overview
Business Holmes investigates a company (CNPJ) against an external bureau or an internal dataset. Every request targets a specific bureau by type; the response wraps the bureau's raw payload under a key named exactly after the type you queried.
All bureaus are queried through the same endpoint signature, with the same validation pipeline and the same paging contract. Only the two JusBrasil bureaus — civil and criminal — return a real cursor; every other bureau returns null.
Query a Business Bureau
Path params identify what to look up. The taxId is the company's CNPJ (14 digits, masked or unmasked); the type selects the bureau and the shape of the response.
Query params control paging. Only civil and criminal honour cursor — repeat the request with the returned cursor to fetch the next page.
Parameters
Response Envelope
Every successful response carries the bureau's payload under a key named after the type queried, plus a cursor field. The concrete envelope for each bureau is shown in the sections below.
Cursor semantics: populated only for civil/criminal. null for every other bureau.
Parameters
Civil Lawsuits
Civil lawsuits sourced from JusBrasil. Paginated — repeat with the returned cursor until null. Returns a list of processes; typification is always [] for civil.
Parameters
Python
import starkinfra
result = starkinfra.businessholmes.get(
tax_id="20018183000180",
type="civil",
limit=50,
)
print(result)
Javascript
const starkinfra = require('starkinfra')
const result = await starkinfra.businessHolmes.get({
taxId: "20018183000180",
type: "civil",
limit: 50
})
console.log(result)
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
curl --location --request GET '{{baseUrl}}/business-holmes/20018183000180/civil?limit=50' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
Python
{
"cursor": "ChsSFWoNZX5zdGFyay1pbmZyYXIMCxIFQ2l2aWwYAQw=",
"civil": [
{
"processType": "Civil",
"latestUpdateDate": "2026-05-22",
"associationConfidence": "ALTA",
"status": {
"date": "2026-05-22",
"inferred": "Ativo",
"normalized": "Em andamento",
"court": null
},
"identifiedTypification": null,
"typification": [],
"occurrenceType": "Execução de Título Extrajudicial",
"occurrenceDescription": "Execução de Título Extrajudicial",
"legislation": "Lei nº 13.105/2015",
"nature": "EXECUÇÃO DE TÍTULO EXTRAJUDICIAL",
"proceduralClass": "OUTROS",
"subject": "DIREITO CIVIL (899) - Obrigações (10431) - Espécies de Títulos de Crédito (7707)",
"processYear": "2025",
"role": "Exequente",
"processNumber": "1098765-12.2025.8.26.0100",
"relatedProcesses": null,
"link": "https://www.jusbrasil.com.br/consulta-pro/processos/1098765-12.2025.8.26.0100"
}
]
}
Javascript
{
"cursor": "ChsSFWoNZX5zdGFyay1pbmZyYXIMCxIFQ2l2aWwYAQw=",
"civil": [
{
"processType": "Civil",
"latestUpdateDate": "2026-05-22",
"associationConfidence": "ALTA",
"status": {
"date": "2026-05-22",
"inferred": "Ativo",
"normalized": "Em andamento",
"court": null
},
"identifiedTypification": null,
"typification": [],
"occurrenceType": "Execução de Título Extrajudicial",
"occurrenceDescription": "Execução de Título Extrajudicial",
"legislation": "Lei nº 13.105/2015",
"nature": "EXECUÇÃO DE TÍTULO EXTRAJUDICIAL",
"proceduralClass": "OUTROS",
"subject": "DIREITO CIVIL (899) - Obrigações (10431) - Espécies de Títulos de Crédito (7707)",
"processYear": "2025",
"role": "Exequente",
"processNumber": "1098765-12.2025.8.26.0100",
"relatedProcesses": null,
"link": "https://www.jusbrasil.com.br/consulta-pro/processos/1098765-12.2025.8.26.0100"
}
]
}
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
{
"cursor": "ChsSFWoNZX5zdGFyay1pbmZyYXIMCxIFQ2l2aWwYAQw=",
"civil": [
{
"processType": "Civil",
"latestUpdateDate": "2026-05-22",
"associationConfidence": "ALTA",
"status": {
"date": "2026-05-22",
"inferred": "Ativo",
"normalized": "Em andamento",
"court": null
},
"identifiedTypification": null,
"typification": [],
"occurrenceType": "Execução de Título Extrajudicial",
"occurrenceDescription": "Execução de Título Extrajudicial",
"legislation": "Lei nº 13.105/2015",
"nature": "EXECUÇÃO DE TÍTULO EXTRAJUDICIAL",
"proceduralClass": "OUTROS",
"subject": "DIREITO CIVIL (899) - Obrigações (10431) - Espécies de Títulos de Crédito (7707)",
"processYear": "2025",
"role": "Exequente",
"processNumber": "1098765-12.2025.8.26.0100",
"relatedProcesses": null,
"link": "https://www.jusbrasil.com.br/consulta-pro/processos/1098765-12.2025.8.26.0100"
}
]
}
Criminal Lawsuits
Same JusBrasil source as civil. Returns a list of processes with the same shape, but the typification field is populated with the criminal codes invoked.
Parameters
Python
import starkinfra
result = starkinfra.businessholmes.get(
tax_id="20018183000180",
type="criminal",
limit=50,
)
print(result)
Javascript
const starkinfra = require('starkinfra')
const result = await starkinfra.businessHolmes.get({
taxId: "20018183000180",
type: "criminal",
limit: 50
})
console.log(result)
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
curl --location --request GET '{{baseUrl}}/business-holmes/20018183000180/criminal?limit=50' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
Python
{
"cursor": null,
"criminal": [
{
"processType": "Criminal",
"latestUpdateDate": "2026-03-18",
"associationConfidence": "MEDIA",
"status": {
"date": "2026-03-18",
"inferred": "Arquivado",
"normalized": "Extinto",
"court": "Extinto"
},
"identifiedTypification": "Crime tributário",
"typification": [
{
"occurrenceCode": "1",
"occurrenceType": "Sonegação Fiscal",
"occurrenceDescription": "Suprimir ou reduzir tributo mediante condutas descritas em lei",
"legislation": [
{"lei": "Art. 1º da Lei nº 8.137/1990", "pena_prevista": "Reclusão, de 2 a 5 anos, e multa"}
]
}
],
"occurrenceType": "Ação Penal",
"occurrenceDescription": "Ação Penal - Procedimento Ordinário",
"legislation": "Lei nº 8.137/1990",
"nature": "Ação Penal de Competência do Juiz Singular",
"proceduralClass": "PROCEDIMENTO COMUM CRIMINAL",
"subject": "DIREITO PENAL (287) - Crimes contra a Ordem Tributária (3603)",
"processYear": "2022",
"role": "Ré",
"processNumber": "0054321-09.2022.4.03.6100",
"relatedProcesses": null,
"link": "https://www.jusbrasil.com.br/consulta-pro/processos/0054321-09.2022.4.03.6100"
}
]
}
Javascript
{
"cursor": null,
"criminal": [
{
"processType": "Criminal",
"latestUpdateDate": "2026-03-18",
"associationConfidence": "MEDIA",
"status": {
"date": "2026-03-18",
"inferred": "Arquivado",
"normalized": "Extinto",
"court": "Extinto"
},
"identifiedTypification": "Crime tributário",
"typification": [
{
"occurrenceCode": "1",
"occurrenceType": "Sonegação Fiscal",
"occurrenceDescription": "Suprimir ou reduzir tributo mediante condutas descritas em lei",
"legislation": [
{"lei": "Art. 1º da Lei nº 8.137/1990", "pena_prevista": "Reclusão, de 2 a 5 anos, e multa"}
]
}
],
"occurrenceType": "Ação Penal",
"occurrenceDescription": "Ação Penal - Procedimento Ordinário",
"legislation": "Lei nº 8.137/1990",
"nature": "Ação Penal de Competência do Juiz Singular",
"proceduralClass": "PROCEDIMENTO COMUM CRIMINAL",
"subject": "DIREITO PENAL (287) - Crimes contra a Ordem Tributária (3603)",
"processYear": "2022",
"role": "Ré",
"processNumber": "0054321-09.2022.4.03.6100",
"relatedProcesses": null,
"link": "https://www.jusbrasil.com.br/consulta-pro/processos/0054321-09.2022.4.03.6100"
}
]
}
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
{
"cursor": null,
"criminal": [
{
"processType": "Criminal",
"latestUpdateDate": "2026-03-18",
"associationConfidence": "MEDIA",
"status": {
"date": "2026-03-18",
"inferred": "Arquivado",
"normalized": "Extinto",
"court": "Extinto"
},
"identifiedTypification": "Crime tributário",
"typification": [
{
"occurrenceCode": "1",
"occurrenceType": "Sonegação Fiscal",
"occurrenceDescription": "Suprimir ou reduzir tributo mediante condutas descritas em lei",
"legislation": [
{"lei": "Art. 1º da Lei nº 8.137/1990", "pena_prevista": "Reclusão, de 2 a 5 anos, e multa"}
]
}
],
"occurrenceType": "Ação Penal",
"occurrenceDescription": "Ação Penal - Procedimento Ordinário",
"legislation": "Lei nº 8.137/1990",
"nature": "Ação Penal de Competência do Juiz Singular",
"proceduralClass": "PROCEDIMENTO COMUM CRIMINAL",
"subject": "DIREITO PENAL (287) - Crimes contra a Ordem Tributária (3603)",
"processYear": "2022",
"role": "Ré",
"processNumber": "0054321-09.2022.4.03.6100",
"relatedProcesses": null,
"link": "https://www.jusbrasil.com.br/consulta-pro/processos/0054321-09.2022.4.03.6100"
}
]
}
KYC
BigDataCorp empresas/kyc dataset. Not paginated. Empty result returns {}. The history[] is filtered to entries with matchRate >= 80.
Note: the legacy sanctions bureau is an alias for this one and returns the same payload. Prefer kyc in new integrations.
Parameters
Python
import starkinfra
result = starkinfra.businessholmes.get(
tax_id="20018183000180",
type="kyc",
)
print(result)
Javascript
const starkinfra = require('starkinfra')
const result = await starkinfra.businessHolmes.get({
taxId: "20018183000180",
type: "kyc"
})
console.log(result)
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
curl --location --request GET '{{baseUrl}}/business-holmes/20018183000180/kyc' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
Python
{
"cursor": null,
"kyc": {
"wasPreviouslySanctioned": false,
"isCurrentlySanctioned": false,
"history": [
{
"matchRate": 88,
"source": "cgu",
"standardizedSanctionType": "ADMINISTRATIVE SANCTIONS",
"type": "Compliance",
"creationDate": "2021-05-10T00:00:00",
"endDate": "2024-05-10T00:00:00",
"charges": "irregularities in public procurement",
"sanctionName": "STARK BANK S.A."
}
]
}
}
Javascript
{
"cursor": null,
"kyc": {
"wasPreviouslySanctioned": false,
"isCurrentlySanctioned": false,
"history": [
{
"matchRate": 88,
"source": "cgu",
"standardizedSanctionType": "ADMINISTRATIVE SANCTIONS",
"type": "Compliance",
"creationDate": "2021-05-10T00:00:00",
"endDate": "2024-05-10T00:00:00",
"charges": "irregularities in public procurement",
"sanctionName": "STARK BANK S.A."
}
]
}
}
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
{
"cursor": null,
"kyc": {
"wasPreviouslySanctioned": false,
"isCurrentlySanctioned": false,
"history": [
{
"matchRate": 88,
"source": "cgu",
"standardizedSanctionType": "ADMINISTRATIVE SANCTIONS",
"type": "Compliance",
"creationDate": "2021-05-10T00:00:00",
"endDate": "2024-05-10T00:00:00",
"charges": "irregularities in public procurement",
"sanctionName": "STARK BANK S.A."
}
]
}
}
Fraud Score
Quod anti-fraud score for the CNPJ. Not paginated.
Parameters
Python
import starkinfra
result = starkinfra.businessholmes.get(
tax_id="20018183000180",
type="frauds",
)
print(result)
Javascript
const starkinfra = require('starkinfra')
const result = await starkinfra.businessHolmes.get({
taxId: "20018183000180",
type: "frauds"
})
console.log(result)
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
curl --location --request GET '{{baseUrl}}/business-holmes/20018183000180/frauds' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
Python
{
"cursor": null,
"frauds": {
"type": "normal",
"reason": "no-confirmed-fraud",
"risk": "low",
"totalConfirmedFrauds": 0,
"frauds": [
{"reason": "fake-merchant", "date": "2025-11-03", "channel": "pix", "isConfirmed": "SIM"}
]
}
}
Javascript
{
"cursor": null,
"frauds": {
"type": "normal",
"reason": "no-confirmed-fraud",
"risk": "low",
"totalConfirmedFrauds": 0,
"frauds": [
{"reason": "fake-merchant", "date": "2025-11-03", "channel": "pix", "isConfirmed": "SIM"}
]
}
}
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
{
"cursor": null,
"frauds": {
"type": "normal",
"reason": "no-confirmed-fraud",
"risk": "low",
"totalConfirmedFrauds": 0,
"frauds": [
{"reason": "fake-merchant", "date": "2025-11-03", "channel": "pix", "isConfirmed": "SIM"}
]
}
}
Business Data
BigDataCorp business profile, assembled from ondemand, empresas/relationships and (conditionally) empresas/basic_data when the legal nature matches MEI. Not paginated. Empty result returns {}.
Note: the legacy activity bureau is an alias for this one and returns the same payload. Prefer data in new integrations.
Parameters
Python
import starkinfra
result = starkinfra.businessholmes.get(
tax_id="20018183000180",
type="data",
)
print(result)
Javascript
const starkinfra = require('starkinfra')
const result = await starkinfra.businessHolmes.get({
taxId: "20018183000180",
type: "data"
})
console.log(result)
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
curl --location --request GET '{{baseUrl}}/business-holmes/20018183000180/data' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
Python
{
"cursor": null,
"data": {
"officialName": "STARK BANK S.A.",
"businessName": "STARK BANK",
"status": "ATIVA",
"legalNature": "Sociedade Anônima Fechada",
"legalNatureCode": "2054",
"founded": "2017-02-15",
"activity": "Bancos múltiplos, com carteira comercial",
"secondaryActivities": ["Atividades de intermediação e agenciamento de serviços e negócios em geral"],
"companyType": "MATRIZ",
"emails": ["contato@example.com"],
"phones": ["+551133224455"],
"address": [
{
"street": "Avenida Brigadeiro Faria Lima",
"number": "1811",
"complement": "Conjunto 81",
"neighborhood": "Jardim Paulistano",
"city": "São Paulo",
"state": "SP",
"zipCode": "01452-001"
}
],
"relationships": [
{
"taxId": "012.345.678-90",
"taxIdType": "CPF",
"taxIdCountry": "BRAZIL",
"name": "Daenerys Targaryen Stormborn",
"type": "naturalPerson",
"role": "Diretor Presidente",
"level": 1,
"startDate": "2017-02-15",
"endDate": null
}
],
"isFamilyCompany": false,
"isFamilyOperated": false,
"totalRelationships": 1,
"totalOwners": 1,
"taxRegime": "LUCRO REAL"
}
}
Javascript
{
"cursor": null,
"data": {
"officialName": "STARK BANK S.A.",
"businessName": "STARK BANK",
"status": "ATIVA",
"legalNature": "Sociedade Anônima Fechada",
"legalNatureCode": "2054",
"founded": "2017-02-15",
"activity": "Bancos múltiplos, com carteira comercial",
"secondaryActivities": ["Atividades de intermediação e agenciamento de serviços e negócios em geral"],
"companyType": "MATRIZ",
"emails": ["contato@example.com"],
"phones": ["+551133224455"],
"address": [
{
"street": "Avenida Brigadeiro Faria Lima",
"number": "1811",
"complement": "Conjunto 81",
"neighborhood": "Jardim Paulistano",
"city": "São Paulo",
"state": "SP",
"zipCode": "01452-001"
}
],
"relationships": [
{
"taxId": "012.345.678-90",
"taxIdType": "CPF",
"taxIdCountry": "BRAZIL",
"name": "Daenerys Targaryen Stormborn",
"type": "naturalPerson",
"role": "Diretor Presidente",
"level": 1,
"startDate": "2017-02-15",
"endDate": null
}
],
"isFamilyCompany": false,
"isFamilyOperated": false,
"totalRelationships": 1,
"totalOwners": 1,
"taxRegime": "LUCRO REAL"
}
}
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
{
"cursor": null,
"data": {
"officialName": "STARK BANK S.A.",
"businessName": "STARK BANK",
"status": "ATIVA",
"legalNature": "Sociedade Anônima Fechada",
"legalNatureCode": "2054",
"founded": "2017-02-15",
"activity": "Bancos múltiplos, com carteira comercial",
"secondaryActivities": ["Atividades de intermediação e agenciamento de serviços e negócios em geral"],
"companyType": "MATRIZ",
"emails": ["contato@example.com"],
"phones": ["+551133224455"],
"address": [
{
"street": "Avenida Brigadeiro Faria Lima",
"number": "1811",
"complement": "Conjunto 81",
"neighborhood": "Jardim Paulistano",
"city": "São Paulo",
"state": "SP",
"zipCode": "01452-001"
}
],
"relationships": [
{
"taxId": "012.345.678-90",
"taxIdType": "CPF",
"taxIdCountry": "BRAZIL",
"name": "Daenerys Targaryen Stormborn",
"type": "naturalPerson",
"role": "Diretor Presidente",
"level": 1,
"startDate": "2017-02-15",
"endDate": null
}
],
"isFamilyCompany": false,
"isFamilyOperated": false,
"totalRelationships": 1,
"totalOwners": 1,
"taxRegime": "LUCRO REAL"
}
}
Pix User
Looks the CNPJ up on Stark Infra's internal Dict (Pix directory) microservice. Returns the raw user object on success.
Parameters
Python
import starkinfra
result = starkinfra.businessholmes.get(
tax_id="20018183000180",
type="dict",
)
print(result)
Javascript
const starkinfra = require('starkinfra')
const result = await starkinfra.businessHolmes.get({
taxId: "20018183000180",
type: "dict"
})
console.log(result)
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
curl --location --request GET '{{baseUrl}}/business-holmes/20018183000180/dict' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
Python
{
"cursor": null,
"dict": {
"name": "STARK BANK S.A.",
"taxIdNumber": "20.018.183/0001-80",
"personType": "legalPerson",
"keys": [
{"key": "contato@example.com", "type": "email", "status": "registered"},
{"key": "20.018.183/0001-80", "type": "taxId", "status": "registered"}
]
}
}
Javascript
{
"cursor": null,
"dict": {
"name": "STARK BANK S.A.",
"taxIdNumber": "20.018.183/0001-80",
"personType": "legalPerson",
"keys": [
{"key": "contato@example.com", "type": "email", "status": "registered"},
{"key": "20.018.183/0001-80", "type": "taxId", "status": "registered"}
]
}
}
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
{
"cursor": null,
"dict": {
"name": "STARK BANK S.A.",
"taxIdNumber": "20.018.183/0001-80",
"personType": "legalPerson",
"keys": [
{"key": "contato@example.com", "type": "email", "status": "registered"},
{"key": "20.018.183/0001-80", "type": "taxId", "status": "registered"}
]
}
}
Joint Resolution 6
Quod's RUFRA block, used to comply with Brazilian Joint Resolution 6 (BCB/CMN). Not paginated.
Parameters
Python
import starkinfra
result = starkinfra.businessholmes.get(
tax_id="20018183000180",
type="jointResolution6",
)
print(result)
Javascript
const starkinfra = require('starkinfra')
const result = await starkinfra.businessHolmes.get({
taxId: "20018183000180",
type: "jointResolution6"
})
console.log(result)
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
curl --location --request GET '{{baseUrl}}/business-holmes/20018183000180/jointResolution6' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
Python
{
"cursor": null,
"jointResolution6": {
"rufra": {
"isPresent": false,
"lastUpdate": "2026-06-10T00:00:00",
"occurrences": []
}
}
}
Javascript
{
"cursor": null,
"jointResolution6": {
"rufra": {
"isPresent": false,
"lastUpdate": "2026-06-10T00:00:00",
"occurrences": []
}
}
}
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
{
"cursor": null,
"jointResolution6": {
"rufra": {
"isPresent": false,
"lastUpdate": "2026-06-10T00:00:00",
"occurrences": []
}
}
}
Federal Revenue Registry
BigDataCorp empresas/basic_data dataset, used to confirm the CNPJ's status with the Receita Federal. Not paginated.
Parameters
Python
import starkinfra
result = starkinfra.businessholmes.get(
tax_id="20018183000180",
type="federalRevenueRegistry",
)
print(result)
Javascript
const starkinfra = require('starkinfra')
const result = await starkinfra.businessHolmes.get({
taxId: "20018183000180",
type: "federalRevenueRegistry"
})
console.log(result)
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
curl --location --request GET '{{baseUrl}}/business-holmes/20018183000180/federalRevenueRegistry' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
Python
{
"cursor": null,
"federalRevenueRegistry": {
"taxIdStatus": "ATIVA"
}
}
Javascript
{
"cursor": null,
"federalRevenueRegistry": {
"taxIdStatus": "ATIVA"
}
}
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
{
"cursor": null,
"federalRevenueRegistry": {
"taxIdStatus": "ATIVA"
}
}
Negative Media
BigDataCorp empresas/media_profile_and_exposure dataset. Not paginated. Empty result returns {}.
Parameters
Python
import starkinfra
result = starkinfra.businessholmes.get(
tax_id="20018183000180",
type="negativeMedia",
)
print(result)
Javascript
const starkinfra = require('starkinfra')
const result = await starkinfra.businessHolmes.get({
taxId: "20018183000180",
type: "negativeMedia"
})
console.log(result)
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
curl --location --request GET '{{baseUrl}}/business-holmes/20018183000180/negativeMedia' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
Python
{
"cursor": null,
"negativeMedia": {
"mediaProfileAndExposure": {
"totalMatches": 0,
"lastUpdate": "2026-06-12T00:00:00",
"matches": []
}
}
}
Javascript
{
"cursor": null,
"negativeMedia": {
"mediaProfileAndExposure": {
"totalMatches": 0,
"lastUpdate": "2026-06-12T00:00:00",
"matches": []
}
}
}
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
{
"cursor": null,
"negativeMedia": {
"mediaProfileAndExposure": {
"totalMatches": 0,
"lastUpdate": "2026-06-12T00:00:00",
"matches": []
}
}
}
Corporate Structure / QSA
BigDataCorp empresas/dynamic_qsa_data dataset, exposing the company's QSA — the list of partners and administrators (Quadro de Sócios e Administradores). Not paginated. Empty result returns {}.
Parameters
Python
import starkinfra
result = starkinfra.businessholmes.get(
tax_id="20018183000180",
type="qsa",
)
print(result)
Javascript
const starkinfra = require('starkinfra')
const result = await starkinfra.businessHolmes.get({
taxId: "20018183000180",
type: "qsa"
})
console.log(result)
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
curl --location --request GET '{{baseUrl}}/business-holmes/20018183000180/qsa' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
Python
{
"cursor": null,
"qsa": {
"relationships": [
{
"taxId": "012.345.678-90",
"taxIdType": "CPF",
"taxIdCountry": "BRAZIL",
"name": "Daenerys Targaryen Stormborn",
"type": "naturalPerson",
"role": "Diretor Presidente",
"level": 1,
"startDate": "2017-02-15",
"endDate": null
},
{
"taxId": "098.765.432-10",
"taxIdType": "CPF",
"taxIdCountry": "BRAZIL",
"name": "Jon Snow",
"type": "naturalPerson",
"role": "Diretor de Riscos e Compliance",
"level": 1,
"startDate": "2018-06-20",
"endDate": null
}
]
}
}
Javascript
{
"cursor": null,
"qsa": {
"relationships": [
{
"taxId": "012.345.678-90",
"taxIdType": "CPF",
"taxIdCountry": "BRAZIL",
"name": "Daenerys Targaryen Stormborn",
"type": "naturalPerson",
"role": "Diretor Presidente",
"level": 1,
"startDate": "2017-02-15",
"endDate": null
},
{
"taxId": "098.765.432-10",
"taxIdType": "CPF",
"taxIdCountry": "BRAZIL",
"name": "Jon Snow",
"type": "naturalPerson",
"role": "Diretor de Riscos e Compliance",
"level": 1,
"startDate": "2018-06-20",
"endDate": null
}
]
}
}
PHP
Java
Ruby
Elixir
C#
Go
Clojure
Curl
{
"cursor": null,
"qsa": {
"relationships": [
{
"taxId": "012.345.678-90",
"taxIdType": "CPF",
"taxIdCountry": "BRAZIL",
"name": "Daenerys Targaryen Stormborn",
"type": "naturalPerson",
"role": "Diretor Presidente",
"level": 1,
"startDate": "2017-02-15",
"endDate": null
},
{
"taxId": "098.765.432-10",
"taxIdType": "CPF",
"taxIdCountry": "BRAZIL",
"name": "Jon Snow",
"type": "naturalPerson",
"role": "Diretor de Riscos e Compliance",
"level": 1,
"startDate": "2018-06-20",
"endDate": null
}
]
}
}