Get aggregated BRF data
curl --request GET \
--url https://lens-api.tic.io/brf/{companyId} \
--header 'x-api-key: <api-key>'import requests
url = "https://lens-api.tic.io/brf/{companyId}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://lens-api.tic.io/brf/{companyId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://lens-api.tic.io/brf/{companyId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://lens-api.tic.io/brf/{companyId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://lens-api.tic.io/brf/{companyId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://lens-api.tic.io/brf/{companyId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"companyId": 123,
"registrationNumber": "<string>",
"legalName": "<string>",
"purpose": "<string>",
"registrationDate": "2023-11-07T05:31:56Z",
"isCeased": true,
"ceasedDate": "2023-11-07T05:31:56Z",
"registeredOfficeMunicipalityCode": "<string>",
"registeredOfficeCountyCode": "<string>",
"sniCodes2007": "<string>",
"sniCodes2025": "<string>",
"isRegisteredForVAT": true,
"isRegisteredForFTax": true,
"isRegisteredForPayroll": true,
"hasAuditor": true,
"debtBalanceKr": 123,
"paymentDefaultsCount": 123,
"lastActivityStatus": "reorganizationOfBusinessCommenced",
"lastStatusType": "reorganizationOfBusinessCommenced",
"lastStatusDate": "2023-11-07T05:31:56Z",
"lastStatusDescription": "<string>",
"mailingAddress": {
"street": "<string>",
"postalCode": "<string>",
"city": "<string>",
"countryCodeAlpha3": "<string>",
"careOf": "<string>"
},
"visitingAddress": {
"street": "<string>",
"postalCode": "<string>",
"city": "<string>",
"countryCodeAlpha3": "<string>",
"careOf": "<string>"
},
"properties": [
{
"propertyObjectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"propertyDesignation": "<string>",
"registerArea": "<string>",
"trakt": "<string>",
"block": "<string>",
"countyCode": "<string>",
"municipalityCode": "<string>",
"totalArea": 123,
"registrationDate": "2023-11-07T05:31:56Z",
"grantedShareNumerator": 123,
"grantedShareDenominator": 123,
"landTenureType": "lagfart",
"mortgageSumKr": 123,
"mortgageCount": 123,
"latestTaxationValueKr": 123,
"latestTaxationYear": 123,
"propertyTypeCode": 123,
"propertyTypeDescription": "<string>",
"isJointlyTaxed": true
}
],
"addresses": [
{
"propertyObjectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"addressObjectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"addressPlaceObjectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"buildingObjectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"buildingHouseNumber": "<string>",
"streetName": "<string>",
"streetType": "gatuadressomrade",
"streetNumber": "<string>",
"streetLetterSuffix": "<string>",
"streetPositionSuffix": "<string>",
"streetPositionSuffixNumber": 123,
"postalCode": 123,
"postalCity": "<string>",
"municipalityCode": "<string>",
"municipalityName": "<string>",
"buildingPartsArea": 123,
"buildingPartsResidentialArea": 123,
"registeredResidentsCount": 123,
"latitude": 123,
"longitude": 123,
"formattedAddress": "<string>",
"apartments": [
{
"apartmentNumber": "<string>",
"numberOfRooms": 123
}
]
}
],
"financials": [
{
"report": {
"arrivalDate": "2023-11-07T05:31:56Z",
"ruleset": "<string>",
"code": "<string>",
"periodStart": "2023-11-07T05:31:56Z",
"periodEnd": "2023-11-07T05:31:56Z",
"annualGeneralMeetingDate": "2023-11-07T05:31:56Z",
"lastSignatureDate": "2023-11-07T05:31:56Z",
"auditorFullName": "<string>",
"auditCompanyName": "<string>",
"hasAuditorRemark": true,
"createdFromComparativeFigures": true,
"isInterimReport": true,
"isConsolidatedAccounts": true,
"isExchange": true
},
"incomeStatement": {
"netSales": 123,
"changeInInventoriesAndWorkInProgress": 123,
"workPerformedAndCapitalized": 123,
"otherOperatingIncome": 123,
"sumOperatingIncome": 123,
"rawMaterialsAndConsumables": 123,
"goodsForResale": 123,
"otherExternalCosts": 123,
"personnelCosts": 123,
"depreciationAmortisationIntangibleTangible": 123,
"depreciationAssetsBeyondNormal": 123,
"otherOperatingExpenses": 123,
"sumOperatingExpenses": 123,
"operatingProfitOrLoss": 123,
"profitOrLossParticipationsInGroup": 123,
"profitOrLossAssociatedCompanies": 123,
"profitOrLossCompaniesOwnershipInterest": 123,
"profitOrLossOtherFinancialFixedAssets": 123,
"otherInterestIncomeAndSimilar": 123,
"amortisationFinancialFixedAssetsAndCurrentInvestments": 123,
"interestExpensesAndSimilar": 123,
"sumFinancialItems": 123,
"profitAfterFinancialItems": 123,
"madeGroupContributions": 123,
"receivedGroupContributions": 123,
"changeAccrualFundReversal": 123,
"changeAccrualFundDeposition": 123,
"changeExcessDepreciation": 123,
"appropriations": 123,
"resultBeforeTaxes": 123,
"tax": 123,
"profitOrLoss": 123
},
"balanceSheet": {
"concessionsPatentRights": 123,
"goodwill": 123,
"sumIntangibleFixedAssets": 123,
"plantMachineryAndEquipment": 123,
"equipmentToolsFixturesAndFittings": 123,
"landsAndBuildings": 123,
"improvementExpensesElseProperty": 123,
"ongoingNewFacilitiesAndAdvancesTangibleFixedAssets": 123,
"otherTangibleFixedAssets": 123,
"sumTangibleFixedAssets": 123,
"participationsInGroup": 123,
"participationsInAssociatedCompanies": 123,
"ownershipInterestInOtherCompanies": 123,
"otherLongTermSecurities": 123,
"loansToPartnersOrRelatedParties": 123,
"sumFinancialFixedAssets": 123,
"sumTotalFixedAssets": 123,
"inventoriesRawMaterialsAndSupplies": 123,
"stockReadyFinishedGoods": 123,
"advancePaymentsSuppliers": 123,
"sumInventoriesWorkInProgressAdvancePayments": 123,
"accruedExpensesPrepaidIncome": 123,
"accountsReceivable": 123,
"groupCompaniesReceivable": 123,
"associatedCompaniesReceivable": 123,
"earnedNotInvoicedRevenue": 123,
"otherCurrentReceivables": 123,
"sumCurrentReceivables": 123,
"longTermGroupReceivables": 123,
"longTermAssociatedCompaniesReceivables": 123,
"otherLongTermReceivables": 123,
"otherCurrentInvestments": 123,
"sumCurrentInvestments": 123,
"cashAndCashEquivalents": 123,
"cashAndCashEquivalentsExcl": 123,
"totalCurrentAssets": 123,
"totalAssets": 123,
"shareCapital": 123,
"sharePremiumReserve": 123,
"revaluationReserve": 123,
"accrualFund": 123,
"sumUntaxedReserves": 123,
"sumRestrictedEquity": 123,
"accumulatedProfit": 123,
"profitForTheYear": 123,
"sumTotalUnrestrictedEquity": 123,
"sumEquity": 123,
"longTermLiabilitiesGroup": 123,
"longTermLiabilitiesBondLoan": 123,
"longTermLiabilitiesOverdraftFacility": 123,
"longTermLiabilitiesToCreditInstitutions": 123,
"otherLongTermLiabilities": 123,
"sumLongTermLiabilities": 123,
"totalEquityAndLiabilities": 123,
"shortTermLiabilitiesOverdraftFacility": 123,
"shortTermLiabilitiesToCreditInstitutions": 123,
"accountsPayable": 123,
"advancePaymentsFromCustomers": 123,
"shortTermLiabilitiesGroup": 123,
"shortTermLiabilitiesTaxes": 123,
"otherShortTermLiabilities": 123,
"sumShortTermLiabilities": 123
},
"notes": {
"numberOfEmployees": 123,
"numberOfEmployeesMen": 123,
"numberOfEmployeesFemale": 123,
"interestExpenses": 123,
"floatingCharges": 123,
"propertyMortgages": 123,
"sumSecurities": 123,
"bankOverdraftFacilityGranted": 123,
"contingentLiabilities": 123,
"securitiesWithReservationOfOwnership": 123,
"securitiesOther": 123
},
"changeOfEquity": {
"changeEquityDividend": 123,
"proposalForDividend": 123,
"proposalBalanceToBeCarriedForward": 123,
"changeEquityToBeCarriedForward": 123,
"changeEquity": 123,
"changeEquityBalanceToBeCarriedForward": 123,
"changeEquityProfitForTheYearToBeCarriedForward": 123,
"changeEquityBalanceDividend": 123,
"changeEquityThisYearProfitOrLoss": 123
},
"keyRatios": {
"operatingMargin": 123,
"returnOnEquity": 123,
"returnOnAssets": 123,
"debtEquityRatio": 123,
"quickRatio": 123,
"grossMargin": 123,
"netProfitMargin": 123,
"equityAssetsRatio": 123,
"netSalesChange": 123
},
"groupKeyRatios": {
"returnOnEquity": 123,
"returnOnAssets": 123,
"operatingMargin": 123,
"equityAssetsRatio": 123,
"quickRatio": 123
},
"brfMetrics": {
"annualFeePerSqm": 123,
"annualFeeShareOfIncome": 123,
"debtPerSqmResidential": 123,
"debtPerSqmTotal": 123,
"savingsPerSqmTotal": 123,
"electricityCostPerSqm": 123,
"heatingCostPerSqm": 123,
"waterCostPerSqm": 123,
"energyCostPerSqm": 123,
"averageDebtInterestRate": 123,
"interestRateSensitivity": 123,
"numberOfApartments": 123,
"isQualifyingCooperative": true
},
"flags": {
"hasMultiYearOverview": true,
"hasChangeOfEquity": true,
"hasNumberOfEmployees": true,
"hasProfitOrResultNotAccountedFor": true,
"hasSrfMentions": true,
"hasFarMentions": true
},
"software": {
"reportSoftwareMetaTag": "<string>",
"reportSoftwareVersionMetaTag": "<string>",
"reportApplicationName": "<string>",
"reportAuditReportHashMetaTag": "<string>",
"reportOriginatorMetaTag": "<string>",
"reportAuditorMetaTag": "<string>",
"auditorSoftwareMetaTag": "<string>",
"auditorSoftwareVersionMetaTag": "<string>",
"auditorApplicationName": "<string>",
"auditorReportHashMetaTag": "<string>",
"auditorOriginatorMetaTag": "<string>"
},
"extendedDetails": {
"forvaltningsberattelseSummary": "<string>",
"property": {
"fastighetsbeteckning": "<string>",
"byggar": 123,
"markInnehav": "<string>",
"tomtrattsavgald": 123,
"bostadsyta": 123,
"lokalyta": 123,
"totalYta": 123,
"antalLokaler": 123,
"antalParkeringsplatser": 123,
"antalGaragePlatser": 123,
"antalForrad": 123
},
"board": {
"styrelseOrdforande": "<string>",
"antalStyrelseledamoter": 123,
"antalSuppleanter": 123
},
"auditor": {
"revisorForetag": "<string>",
"revisorNamn": "<string>",
"revisionOpinion": "<string>"
},
"forvaltning": {
"teknisk": "<string>",
"ekonomisk": "<string>"
},
"laneportfolj": {
"antalLan": 123,
"totalSkuld": 123,
"viktatSnittranta": 123,
"bundetDelProcent": 123,
"lanForAterbetalningInom1Ar": 123
},
"avgiftsforandringar": {
"senasteForandringDatum": "2023-11-07T05:31:56Z",
"senasteForandringProcent": 123,
"planeradeForandringar": "<string>"
},
"energi": {
"energiklass": "<string>",
"energiprestanda": 123,
"energideklarationDatum": "2023-11-07T05:31:56Z"
},
"keyRatios": {
"soliditet": 123,
"belaningsgrad": 123,
"underhallsfondBalans": 123,
"arligAvsattningUnderhallsfond": 123
},
"vasentligaHandelser": [
"<string>"
],
"planerade": [
"<string>"
]
}
}
],
"annualReports": [
{
"periodStart": "2023-11-07T05:31:56Z",
"periodEnd": "2023-11-07T05:31:56Z",
"arrivalDate": "2023-11-07T05:31:56Z",
"registrationDate": "2023-11-07T05:31:56Z",
"ruleset": "<string>",
"files": [
{
"fileId": 123,
"fileType": "xbrl",
"firstSeenAtUtc": "2023-11-07T05:31:56Z",
"lastUpdatedAtUtc": "2023-11-07T05:31:56Z"
}
]
}
]
}BRF
Get aggregated BRF data
Returns a BRF-tailored aggregate for a housing cooperative (bostadsrättsförening): core identity, owned properties, historical financial reports (with raw-LLM extract), and available annual-report files. Only returns data when the company is registered as a BRF.
GET
/
brf
/
{companyId}
Get aggregated BRF data
curl --request GET \
--url https://lens-api.tic.io/brf/{companyId} \
--header 'x-api-key: <api-key>'import requests
url = "https://lens-api.tic.io/brf/{companyId}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://lens-api.tic.io/brf/{companyId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://lens-api.tic.io/brf/{companyId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://lens-api.tic.io/brf/{companyId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://lens-api.tic.io/brf/{companyId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://lens-api.tic.io/brf/{companyId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"companyId": 123,
"registrationNumber": "<string>",
"legalName": "<string>",
"purpose": "<string>",
"registrationDate": "2023-11-07T05:31:56Z",
"isCeased": true,
"ceasedDate": "2023-11-07T05:31:56Z",
"registeredOfficeMunicipalityCode": "<string>",
"registeredOfficeCountyCode": "<string>",
"sniCodes2007": "<string>",
"sniCodes2025": "<string>",
"isRegisteredForVAT": true,
"isRegisteredForFTax": true,
"isRegisteredForPayroll": true,
"hasAuditor": true,
"debtBalanceKr": 123,
"paymentDefaultsCount": 123,
"lastActivityStatus": "reorganizationOfBusinessCommenced",
"lastStatusType": "reorganizationOfBusinessCommenced",
"lastStatusDate": "2023-11-07T05:31:56Z",
"lastStatusDescription": "<string>",
"mailingAddress": {
"street": "<string>",
"postalCode": "<string>",
"city": "<string>",
"countryCodeAlpha3": "<string>",
"careOf": "<string>"
},
"visitingAddress": {
"street": "<string>",
"postalCode": "<string>",
"city": "<string>",
"countryCodeAlpha3": "<string>",
"careOf": "<string>"
},
"properties": [
{
"propertyObjectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"propertyDesignation": "<string>",
"registerArea": "<string>",
"trakt": "<string>",
"block": "<string>",
"countyCode": "<string>",
"municipalityCode": "<string>",
"totalArea": 123,
"registrationDate": "2023-11-07T05:31:56Z",
"grantedShareNumerator": 123,
"grantedShareDenominator": 123,
"landTenureType": "lagfart",
"mortgageSumKr": 123,
"mortgageCount": 123,
"latestTaxationValueKr": 123,
"latestTaxationYear": 123,
"propertyTypeCode": 123,
"propertyTypeDescription": "<string>",
"isJointlyTaxed": true
}
],
"addresses": [
{
"propertyObjectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"addressObjectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"addressPlaceObjectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"buildingObjectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"buildingHouseNumber": "<string>",
"streetName": "<string>",
"streetType": "gatuadressomrade",
"streetNumber": "<string>",
"streetLetterSuffix": "<string>",
"streetPositionSuffix": "<string>",
"streetPositionSuffixNumber": 123,
"postalCode": 123,
"postalCity": "<string>",
"municipalityCode": "<string>",
"municipalityName": "<string>",
"buildingPartsArea": 123,
"buildingPartsResidentialArea": 123,
"registeredResidentsCount": 123,
"latitude": 123,
"longitude": 123,
"formattedAddress": "<string>",
"apartments": [
{
"apartmentNumber": "<string>",
"numberOfRooms": 123
}
]
}
],
"financials": [
{
"report": {
"arrivalDate": "2023-11-07T05:31:56Z",
"ruleset": "<string>",
"code": "<string>",
"periodStart": "2023-11-07T05:31:56Z",
"periodEnd": "2023-11-07T05:31:56Z",
"annualGeneralMeetingDate": "2023-11-07T05:31:56Z",
"lastSignatureDate": "2023-11-07T05:31:56Z",
"auditorFullName": "<string>",
"auditCompanyName": "<string>",
"hasAuditorRemark": true,
"createdFromComparativeFigures": true,
"isInterimReport": true,
"isConsolidatedAccounts": true,
"isExchange": true
},
"incomeStatement": {
"netSales": 123,
"changeInInventoriesAndWorkInProgress": 123,
"workPerformedAndCapitalized": 123,
"otherOperatingIncome": 123,
"sumOperatingIncome": 123,
"rawMaterialsAndConsumables": 123,
"goodsForResale": 123,
"otherExternalCosts": 123,
"personnelCosts": 123,
"depreciationAmortisationIntangibleTangible": 123,
"depreciationAssetsBeyondNormal": 123,
"otherOperatingExpenses": 123,
"sumOperatingExpenses": 123,
"operatingProfitOrLoss": 123,
"profitOrLossParticipationsInGroup": 123,
"profitOrLossAssociatedCompanies": 123,
"profitOrLossCompaniesOwnershipInterest": 123,
"profitOrLossOtherFinancialFixedAssets": 123,
"otherInterestIncomeAndSimilar": 123,
"amortisationFinancialFixedAssetsAndCurrentInvestments": 123,
"interestExpensesAndSimilar": 123,
"sumFinancialItems": 123,
"profitAfterFinancialItems": 123,
"madeGroupContributions": 123,
"receivedGroupContributions": 123,
"changeAccrualFundReversal": 123,
"changeAccrualFundDeposition": 123,
"changeExcessDepreciation": 123,
"appropriations": 123,
"resultBeforeTaxes": 123,
"tax": 123,
"profitOrLoss": 123
},
"balanceSheet": {
"concessionsPatentRights": 123,
"goodwill": 123,
"sumIntangibleFixedAssets": 123,
"plantMachineryAndEquipment": 123,
"equipmentToolsFixturesAndFittings": 123,
"landsAndBuildings": 123,
"improvementExpensesElseProperty": 123,
"ongoingNewFacilitiesAndAdvancesTangibleFixedAssets": 123,
"otherTangibleFixedAssets": 123,
"sumTangibleFixedAssets": 123,
"participationsInGroup": 123,
"participationsInAssociatedCompanies": 123,
"ownershipInterestInOtherCompanies": 123,
"otherLongTermSecurities": 123,
"loansToPartnersOrRelatedParties": 123,
"sumFinancialFixedAssets": 123,
"sumTotalFixedAssets": 123,
"inventoriesRawMaterialsAndSupplies": 123,
"stockReadyFinishedGoods": 123,
"advancePaymentsSuppliers": 123,
"sumInventoriesWorkInProgressAdvancePayments": 123,
"accruedExpensesPrepaidIncome": 123,
"accountsReceivable": 123,
"groupCompaniesReceivable": 123,
"associatedCompaniesReceivable": 123,
"earnedNotInvoicedRevenue": 123,
"otherCurrentReceivables": 123,
"sumCurrentReceivables": 123,
"longTermGroupReceivables": 123,
"longTermAssociatedCompaniesReceivables": 123,
"otherLongTermReceivables": 123,
"otherCurrentInvestments": 123,
"sumCurrentInvestments": 123,
"cashAndCashEquivalents": 123,
"cashAndCashEquivalentsExcl": 123,
"totalCurrentAssets": 123,
"totalAssets": 123,
"shareCapital": 123,
"sharePremiumReserve": 123,
"revaluationReserve": 123,
"accrualFund": 123,
"sumUntaxedReserves": 123,
"sumRestrictedEquity": 123,
"accumulatedProfit": 123,
"profitForTheYear": 123,
"sumTotalUnrestrictedEquity": 123,
"sumEquity": 123,
"longTermLiabilitiesGroup": 123,
"longTermLiabilitiesBondLoan": 123,
"longTermLiabilitiesOverdraftFacility": 123,
"longTermLiabilitiesToCreditInstitutions": 123,
"otherLongTermLiabilities": 123,
"sumLongTermLiabilities": 123,
"totalEquityAndLiabilities": 123,
"shortTermLiabilitiesOverdraftFacility": 123,
"shortTermLiabilitiesToCreditInstitutions": 123,
"accountsPayable": 123,
"advancePaymentsFromCustomers": 123,
"shortTermLiabilitiesGroup": 123,
"shortTermLiabilitiesTaxes": 123,
"otherShortTermLiabilities": 123,
"sumShortTermLiabilities": 123
},
"notes": {
"numberOfEmployees": 123,
"numberOfEmployeesMen": 123,
"numberOfEmployeesFemale": 123,
"interestExpenses": 123,
"floatingCharges": 123,
"propertyMortgages": 123,
"sumSecurities": 123,
"bankOverdraftFacilityGranted": 123,
"contingentLiabilities": 123,
"securitiesWithReservationOfOwnership": 123,
"securitiesOther": 123
},
"changeOfEquity": {
"changeEquityDividend": 123,
"proposalForDividend": 123,
"proposalBalanceToBeCarriedForward": 123,
"changeEquityToBeCarriedForward": 123,
"changeEquity": 123,
"changeEquityBalanceToBeCarriedForward": 123,
"changeEquityProfitForTheYearToBeCarriedForward": 123,
"changeEquityBalanceDividend": 123,
"changeEquityThisYearProfitOrLoss": 123
},
"keyRatios": {
"operatingMargin": 123,
"returnOnEquity": 123,
"returnOnAssets": 123,
"debtEquityRatio": 123,
"quickRatio": 123,
"grossMargin": 123,
"netProfitMargin": 123,
"equityAssetsRatio": 123,
"netSalesChange": 123
},
"groupKeyRatios": {
"returnOnEquity": 123,
"returnOnAssets": 123,
"operatingMargin": 123,
"equityAssetsRatio": 123,
"quickRatio": 123
},
"brfMetrics": {
"annualFeePerSqm": 123,
"annualFeeShareOfIncome": 123,
"debtPerSqmResidential": 123,
"debtPerSqmTotal": 123,
"savingsPerSqmTotal": 123,
"electricityCostPerSqm": 123,
"heatingCostPerSqm": 123,
"waterCostPerSqm": 123,
"energyCostPerSqm": 123,
"averageDebtInterestRate": 123,
"interestRateSensitivity": 123,
"numberOfApartments": 123,
"isQualifyingCooperative": true
},
"flags": {
"hasMultiYearOverview": true,
"hasChangeOfEquity": true,
"hasNumberOfEmployees": true,
"hasProfitOrResultNotAccountedFor": true,
"hasSrfMentions": true,
"hasFarMentions": true
},
"software": {
"reportSoftwareMetaTag": "<string>",
"reportSoftwareVersionMetaTag": "<string>",
"reportApplicationName": "<string>",
"reportAuditReportHashMetaTag": "<string>",
"reportOriginatorMetaTag": "<string>",
"reportAuditorMetaTag": "<string>",
"auditorSoftwareMetaTag": "<string>",
"auditorSoftwareVersionMetaTag": "<string>",
"auditorApplicationName": "<string>",
"auditorReportHashMetaTag": "<string>",
"auditorOriginatorMetaTag": "<string>"
},
"extendedDetails": {
"forvaltningsberattelseSummary": "<string>",
"property": {
"fastighetsbeteckning": "<string>",
"byggar": 123,
"markInnehav": "<string>",
"tomtrattsavgald": 123,
"bostadsyta": 123,
"lokalyta": 123,
"totalYta": 123,
"antalLokaler": 123,
"antalParkeringsplatser": 123,
"antalGaragePlatser": 123,
"antalForrad": 123
},
"board": {
"styrelseOrdforande": "<string>",
"antalStyrelseledamoter": 123,
"antalSuppleanter": 123
},
"auditor": {
"revisorForetag": "<string>",
"revisorNamn": "<string>",
"revisionOpinion": "<string>"
},
"forvaltning": {
"teknisk": "<string>",
"ekonomisk": "<string>"
},
"laneportfolj": {
"antalLan": 123,
"totalSkuld": 123,
"viktatSnittranta": 123,
"bundetDelProcent": 123,
"lanForAterbetalningInom1Ar": 123
},
"avgiftsforandringar": {
"senasteForandringDatum": "2023-11-07T05:31:56Z",
"senasteForandringProcent": 123,
"planeradeForandringar": "<string>"
},
"energi": {
"energiklass": "<string>",
"energiprestanda": 123,
"energideklarationDatum": "2023-11-07T05:31:56Z"
},
"keyRatios": {
"soliditet": 123,
"belaningsgrad": 123,
"underhallsfondBalans": 123,
"arligAvsattningUnderhallsfond": 123
},
"vasentligaHandelser": [
"<string>"
],
"planerade": [
"<string>"
]
}
}
],
"annualReports": [
{
"periodStart": "2023-11-07T05:31:56Z",
"periodEnd": "2023-11-07T05:31:56Z",
"arrivalDate": "2023-11-07T05:31:56Z",
"registrationDate": "2023-11-07T05:31:56Z",
"ruleset": "<string>",
"files": [
{
"fileId": 123,
"fileType": "xbrl",
"firstSeenAtUtc": "2023-11-07T05:31:56Z",
"lastUpdatedAtUtc": "2023-11-07T05:31:56Z"
}
]
}
]
}BRF add-on
Understanding
Each entry in
Rules an integrator should know
Understanding extendedDetails
Each entry in financials[] may include an extendedDetails object - content
extracted by an agent system that runs a sequence of steps:
- PDF / TIFFs are deskewed, cleaned and we run a layout analysis through custom CUDA-kernels
- Customed trained SVTRv2 model runs on the rectangles to identify the text / numbers
- Data is spot-checked against a fast VLM (currentley local hosted GPU Qwen3-VL)
- The full first 15 pages including the full text and spot-corrected data is sent to larger VLM (subject to loading times the agent system chooses among a range of the state of the art high resolution market VLMs)
extendedDetails as a best-effort, evolving block.
What’s in it today
| Field | Description |
|---|---|
managementReportSummary | Free-text summary of the förvaltningsberättelse. |
property | propertyDesignation, constructionYear, landTenure, tomtrattsavgald, residential / commercial / total area in m², counts of commercial units, parking, garage, storage. |
board | Chairman, board-member count, deputy count. |
auditor | Auditor company, auditor name, audit opinion (e.g. "ren"). |
management | Technical / financial property management providers. |
loanPortfolio | Loan count, total debt, weighted-average interest rate, fixed-rate share, loans maturing within 12 months. |
feeChanges | Latest fee-change date and percent, free-text description of planned changes. |
energy | Energy class, energy performance (kWh/m²), energy-declaration date. |
extendedKeyRatios | Equity ratio, loan-to-value, maintenance-fund balance, annual maintenance-fund contribution. |
significantEvents | Array of strings - the väsentliga händelser noted in the report. |
plannedMaintenance | Array of strings - line items from the underhållsplan. |
Only the primary period carries
extendedDetails. When a financial row’s
report.createdFromComparativeFigures is true, the row intentionally omits
extendedDetails - the narrative belongs to the year the annual report was
filed, not to its prior-year comparatives. The same BRF will therefore have
exactly one extendedDetails block per filed annual report, attached to the
primary-period row only.- Missing fields are dropped, not nulled. If the annual report doesn’t
state something or the agent system couldn’t extract it confidently, the field - or
the entire sub-object - is absent from the response. Always treat
extendedDetailsand every property under it as optional. - Prefer typed siblings when they exist. A value that appears in both
extendedDetails.*and a structured field on the samefinancials[]row (brfMetrics,keyRatios,report,notes) is authoritative under the typed name. UseextendedDetailsfor fields that have no typed equivalent today, and re-check when you upgrade integrations - fields move out as the schema matures. - The schema is intentionally fluid. New top-level keys can appear under
extendedDetailswithout an API version bump, and existing keys can disappear (graduating to typed columns) the same way. Don’t hardcode exhaustive type definitions against this object - model it asRecord<string, unknown>orMap<string, any>and access fields defensively. - Some values carry Swedish terminology where the concept doesn’t
translate cleanly - e.g.
property.landTenurereturns"agandeRatt"(freehold) or"tomtratt"(site leasehold),auditor.auditOpinionreturns"ren"(clean),"oren", etc.
Authorizations
Path Parameters
Internal company ID
Response
Aggregated BRF data
Available options:
reorganizationOfBusinessCommenced, bankruptcyTerminatedWithSurplus, dissolvedByCompanyDemerger, liquidationTerminated, mergerProcedureCommenced, acquisitionByCompanyDemerger, acquisitionByMerger, dissolvedByMergerProcedure, liquidationDecided, bankruptcyProceedingsCommenced, bankruptcyProceedingsTerminated, mergerPermitted, unused1, unused2, unused3, liquidationContinues, struckOffRegisterCrossBorderMerger, bankruptcyRepealedByCourt, liquidationEnds, liquidationRepealedByCourt, companyStruckOff, reorganizationOfBusinessEnded, reorganizationOfBusinessRepealedByCourt, resolutionCommenced, resolutionTerminated, resolutionRepealedByCourt, companyStruckOffTradeRegisterAct, deregisteredNewHolder, deregistered, reintroduced, companyStruckOffOwnRequest, companyStruckOffByRegistrationOffice, companyStruckOffReenteredAsJointStock, branchStruckOffForeignLiquidationOrBankruptcy, branchStruckOffOperationsCeased, branchStruckOffMissingCEO, branchStruckOffCourtOrder, branchStruckOffAnnualReportMissing, isActive, isNoLongerActive, hasNeverBeenActive, taxAuthorityStatus, companyDemergerCommenced, settlementNegotiationsCommenced, settlementNegotiationsTerminated, settlementNegotiationsRepealedByCourt, acquisitionExpired, acquisitionTerminated, acquisitionByMultipleMergers, acquisitionRepealedByCourt, mergerExpired, mergerRepealedByCourt, other Available options:
reorganizationOfBusinessCommenced, bankruptcyTerminatedWithSurplus, dissolvedByCompanyDemerger, liquidationTerminated, mergerProcedureCommenced, acquisitionByCompanyDemerger, acquisitionByMerger, dissolvedByMergerProcedure, liquidationDecided, bankruptcyProceedingsCommenced, bankruptcyProceedingsTerminated, mergerPermitted, unused1, unused2, unused3, liquidationContinues, struckOffRegisterCrossBorderMerger, bankruptcyRepealedByCourt, liquidationEnds, liquidationRepealedByCourt, companyStruckOff, reorganizationOfBusinessEnded, reorganizationOfBusinessRepealedByCourt, resolutionCommenced, resolutionTerminated, resolutionRepealedByCourt, companyStruckOffTradeRegisterAct, deregisteredNewHolder, deregistered, reintroduced, companyStruckOffOwnRequest, companyStruckOffByRegistrationOffice, companyStruckOffReenteredAsJointStock, branchStruckOffForeignLiquidationOrBankruptcy, branchStruckOffOperationsCeased, branchStruckOffMissingCEO, branchStruckOffCourtOrder, branchStruckOffAnnualReportMissing, isActive, isNoLongerActive, hasNeverBeenActive, taxAuthorityStatus, companyDemergerCommenced, settlementNegotiationsCommenced, settlementNegotiationsTerminated, settlementNegotiationsRepealedByCourt, acquisitionExpired, acquisitionTerminated, acquisitionByMultipleMergers, acquisitionRepealedByCourt, mergerExpired, mergerRepealedByCourt, other Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes