{"openapi":"3.1.0","info":{"title":"CVR Tool Lookup API","version":"1.3.0","description":"Slå danske og svenske virksomheder, regnskabstal, nøgletal og årsrapporter op."},"servers":[{"url":"https://localhost:3000"}],"paths":{"/api/v1/lookup":{"get":{"summary":"Slå CVR-numre op via query parameter","security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"name":"cvr","in":"query","required":true,"description":"Ét CVR-nummer, kommaseparerede numre eller gentagne cvr-parametre.","schema":{"type":"string","example":"37676717"}}],"responses":{"200":{"description":"Opslaget blev gennemført.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"company":{"oneOf":[{"type":"object","description":"Virksomhedsobjekt fra CVR-registeret.","additionalProperties":true,"properties":{"cvrNummer":{"type":"integer","example":37676717},"sidstIndlaest":{"type":"string","format":"date-time"},"sidstOpdateret":{"type":"string","format":"date-time"},"virksomhedMetadata":{"type":"object","additionalProperties":true}}},{"type":"null"}]},"meta":{"$ref":"#/components/schemas/LookupMeta"},"requestId":{"type":"string","format":"uuid"}}},{"type":"object","properties":{"companies":{"type":"array","items":{"type":"object","description":"Virksomhedsobjekt fra CVR-registeret.","additionalProperties":true,"properties":{"cvrNummer":{"type":"integer","example":37676717},"sidstIndlaest":{"type":"string","format":"date-time"},"sidstOpdateret":{"type":"string","format":"date-time"},"virksomhedMetadata":{"type":"object","additionalProperties":true}}}},"meta":{"$ref":"#/components/schemas/LookupMeta"},"requestId":{"type":"string","format":"uuid"}}}]}}}},"400":{"description":"Ugyldig request."},"401":{"description":"Manglende eller ugyldig API-nøgle."},"403":{"description":"Nøglen er udløbet eller mangler rettighed til endpointet."},"429":{"description":"Rate limit overskredet."},"502":{"description":"CVR-registeret er utilgængeligt."}}},"post":{"summary":"Slå ét eller flere CVR-numre op","security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["cvr"],"properties":{"cvr":{"oneOf":[{"type":"string","pattern":"^[0-9]{8}$"},{"type":"integer","minimum":10000000,"maximum":99999999},{"type":"array","minItems":1,"maxItems":100,"items":{"oneOf":[{"type":"string","pattern":"^[0-9]{8}$"},{"type":"integer","minimum":10000000,"maximum":99999999}]}}]}}}}}},"responses":{"200":{"description":"Opslaget blev gennemført.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"company":{"oneOf":[{"type":"object","description":"Virksomhedsobjekt fra CVR-registeret.","additionalProperties":true,"properties":{"cvrNummer":{"type":"integer","example":37676717},"sidstIndlaest":{"type":"string","format":"date-time"},"sidstOpdateret":{"type":"string","format":"date-time"},"virksomhedMetadata":{"type":"object","additionalProperties":true}}},{"type":"null"}]},"meta":{"$ref":"#/components/schemas/LookupMeta"},"requestId":{"type":"string","format":"uuid"}}},{"type":"object","properties":{"companies":{"type":"array","items":{"type":"object","description":"Virksomhedsobjekt fra CVR-registeret.","additionalProperties":true,"properties":{"cvrNummer":{"type":"integer","example":37676717},"sidstIndlaest":{"type":"string","format":"date-time"},"sidstOpdateret":{"type":"string","format":"date-time"},"virksomhedMetadata":{"type":"object","additionalProperties":true}}}},"meta":{"$ref":"#/components/schemas/LookupMeta"},"requestId":{"type":"string","format":"uuid"}}}]}}}},"400":{"description":"Ugyldig request."},"401":{"description":"Manglende eller ugyldig API-nøgle."},"403":{"description":"Nøglen er udløbet eller mangler rettighed til endpointet."},"429":{"description":"Rate limit overskredet."},"502":{"description":"CVR-registeret er utilgængeligt."}}},"put":{"summary":"Bagudkompatibelt lookup","deprecated":true,"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"$ref":"#/paths/~1api~1v1~1lookup/post/requestBody"},"responses":{"200":{"description":"Opslaget blev gennemført.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"company":{"oneOf":[{"type":"object","description":"Virksomhedsobjekt fra CVR-registeret.","additionalProperties":true,"properties":{"cvrNummer":{"type":"integer","example":37676717},"sidstIndlaest":{"type":"string","format":"date-time"},"sidstOpdateret":{"type":"string","format":"date-time"},"virksomhedMetadata":{"type":"object","additionalProperties":true}}},{"type":"null"}]},"meta":{"$ref":"#/components/schemas/LookupMeta"},"requestId":{"type":"string","format":"uuid"}}},{"type":"object","properties":{"companies":{"type":"array","items":{"type":"object","description":"Virksomhedsobjekt fra CVR-registeret.","additionalProperties":true,"properties":{"cvrNummer":{"type":"integer","example":37676717},"sidstIndlaest":{"type":"string","format":"date-time"},"sidstOpdateret":{"type":"string","format":"date-time"},"virksomhedMetadata":{"type":"object","additionalProperties":true}}}},"meta":{"$ref":"#/components/schemas/LookupMeta"},"requestId":{"type":"string","format":"uuid"}}}]}}}},"400":{"description":"Ugyldig request."},"401":{"description":"Manglende eller ugyldig API-nøgle."},"403":{"description":"Nøglen er udløbet eller mangler rettighed til endpointet."},"429":{"description":"Rate limit overskredet."},"502":{"description":"CVR-registeret er utilgængeligt."}}}},"/api/v1/dk/financials":{"get":{"summary":"Hent danske regnskabstal og årsrapporter","description":"Normaliserer officielle XBRL/iXBRL-årsrapporter fra Virks offentliggørelsesindeks. Manglende tal er null og estimeres ikke.","security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"name":"cvr","in":"query","required":true,"schema":{"type":"string","pattern":"^[0-9]{8}$","example":"29403473"}}],"responses":{"200":{"description":"Historiske regnskaber og kilde-/cachemetadata.","content":{"application/json":{"schema":{"type":"object","required":["country","organisationNumber","reports","meta","requestId"],"properties":{"country":{"type":"string","enum":["DK","SE"]},"organisationNumber":{"type":"string"},"reports":{"type":"array","items":{"type":"object","required":["sourceId","periodEnd","currency","values","ratios","documents"],"properties":{"sourceId":{"type":"string"},"source":{"type":"string","enum":["Virk","Bolagsverket"]},"periodStart":{"type":["string","null"],"format":"date"},"periodEnd":{"type":"string","format":"date"},"publishedAt":{"type":["string","null"],"format":"date-time"},"currency":{"type":"string","example":"DKK"},"scope":{"type":"string","enum":["company","group","unknown"]},"values":{"type":"object","description":"Normaliserede kildetal. Ikke-offentliggjorte felter er null; de bliver aldrig estimeret.","properties":{"revenue":{"type":["number","null"]},"grossProfit":{"type":["number","null"]},"operatingProfit":{"type":["number","null"]},"depreciation":{"type":["number","null"]},"ebitda":{"type":["number","null"]},"profitBeforeTax":{"type":["number","null"]},"taxExpense":{"type":["number","null"]},"netProfit":{"type":["number","null"]},"totalAssets":{"type":["number","null"]},"equity":{"type":["number","null"]},"currentAssets":{"type":["number","null"]},"cash":{"type":["number","null"]},"currentLiabilities":{"type":["number","null"]},"liabilities":{"type":["number","null"]},"averageEmployees":{"type":["number","null"]}}},"ratios":{"type":"object","description":"Beregninger i procent på baggrund af de publicerede kildetal.","additionalProperties":{"type":["number","null"]}},"calculatedFields":{"type":"array","items":{"type":"string"}},"documents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"mimeType":{"type":"string"},"url":{"type":["string","null"],"format":"uri"}}}}}}},"meta":{"type":"object","properties":{"source":{"type":"string","enum":["Virk","Bolagsverket"]},"retrievedAt":{"type":"string","format":"date-time"},"cached":{"type":"boolean"},"parserVersion":{"type":"string"},"coverage":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"}}}},"requestId":{"type":"string","format":"uuid"}}}}}},"400":{"description":"Ugyldigt organisationsnummer."},"401":{"description":"Manglende eller ugyldig API-nøgle."},"403":{"description":"Nøglen mangler regnskabsrettigheden."},"429":{"description":"Rate limit overskredet."}}}},"/api/v1/se/lookup":{"get":{"summary":"Slå en svensk organisation op","description":"Returnerer Bolagsverket/SCB-data, årsrapportmetadata og EU VIES-momsstatus.","security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"name":"organisationNumber","in":"query","required":true,"description":"Svensk organisations- eller momsnummer, med/uden SE-prefix, bindestreg og 01-suffiks.","schema":{"type":"string","pattern":"^(?:[Ss][Ee])?[0-9]{6}-?[0-9]{4}(?:01)?$","example":"SE556703748501"}}],"responses":{"200":{"description":"Opslaget blev gennemført.","content":{"application/json":{"schema":{"type":"object","required":["organisations","annualReports","vatStatus","meta","requestId"],"properties":{"organisations":{"type":"array","items":{"type":"object","description":"Organisationsdata fra Bolagsverket og SCB. Felter følger kildens Värdefulla datamängder-schema.","additionalProperties":true,"properties":{"organisationsidentitet":{"type":"object","properties":{"identitetsbeteckning":{"type":"string","example":"5567037485"}}},"organisationsnamn":{"type":"object","additionalProperties":true},"organisationsform":{"type":"object","additionalProperties":true},"verksamOrganisation":{"type":"object","additionalProperties":true},"postadressOrganisation":{"type":"object","additionalProperties":true},"naringsgrenOrganisation":{"type":"object","additionalProperties":true}}}},"annualReports":{"type":"array","items":{"type":"object","properties":{"dokumentId":{"type":"string"},"filformat":{"type":"string","example":"application/zip"},"rapporteringsperiodTom":{"type":"string","format":"date"},"registreringstidpunkt":{"type":"string","format":"date"}}}},"vatStatus":{"type":"object","required":["vatNumber","status","valid","source","checkedAt"],"properties":{"vatNumber":{"type":"string","example":"SE556703748501"},"status":{"type":"string","enum":["valid","invalid","unavailable"]},"valid":{"type":["boolean","null"]},"source":{"type":"string","const":"EU VIES"},"checkedAt":{"type":"string","format":"date-time"},"message":{"type":"string"}}},"meta":{"type":"object","required":["country","source","environment","requested","found","retrievedAt","warnings"],"properties":{"country":{"type":"string","const":"SE"},"source":{"type":"string","const":"Bolagsverket"},"environment":{"type":"string","enum":["test","production"]},"requested":{"type":"integer","const":1},"found":{"type":"integer"},"retrievedAt":{"type":"string","format":"date-time"},"warnings":{"type":"array","items":{"type":"string"}}}},"requestId":{"type":"string","format":"uuid"}}}}}},"400":{"description":"Ugyldigt svensk organisationsnummer eller request."},"401":{"description":"Manglende eller ugyldig API-nøgle."},"403":{"description":"Nøglen er udløbet eller mangler rettighed til endpointet."},"429":{"description":"API- eller Bolagsverket-rate limit overskredet."},"502":{"description":"Bolagsverket er utilgængeligt."},"503":{"description":"Bolagsverket er ikke konfigureret."},"504":{"description":"Bolagsverket svarede ikke i tide."}}},"post":{"summary":"Slå en svensk organisation op","description":"Returnerer Bolagsverket/SCB-data, årsrapportmetadata og EU VIES-momsstatus.","security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["organisationNumber"],"properties":{"organisationNumber":{"type":"string","pattern":"^(?:[Ss][Ee])?[0-9]{6}-?[0-9]{4}(?:01)?$","example":"SE556703748501"}}}}}},"responses":{"200":{"description":"Opslaget blev gennemført.","content":{"application/json":{"schema":{"type":"object","required":["organisations","annualReports","vatStatus","meta","requestId"],"properties":{"organisations":{"type":"array","items":{"type":"object","description":"Organisationsdata fra Bolagsverket og SCB. Felter følger kildens Värdefulla datamängder-schema.","additionalProperties":true,"properties":{"organisationsidentitet":{"type":"object","properties":{"identitetsbeteckning":{"type":"string","example":"5567037485"}}},"organisationsnamn":{"type":"object","additionalProperties":true},"organisationsform":{"type":"object","additionalProperties":true},"verksamOrganisation":{"type":"object","additionalProperties":true},"postadressOrganisation":{"type":"object","additionalProperties":true},"naringsgrenOrganisation":{"type":"object","additionalProperties":true}}}},"annualReports":{"type":"array","items":{"type":"object","properties":{"dokumentId":{"type":"string"},"filformat":{"type":"string","example":"application/zip"},"rapporteringsperiodTom":{"type":"string","format":"date"},"registreringstidpunkt":{"type":"string","format":"date"}}}},"vatStatus":{"type":"object","required":["vatNumber","status","valid","source","checkedAt"],"properties":{"vatNumber":{"type":"string","example":"SE556703748501"},"status":{"type":"string","enum":["valid","invalid","unavailable"]},"valid":{"type":["boolean","null"]},"source":{"type":"string","const":"EU VIES"},"checkedAt":{"type":"string","format":"date-time"},"message":{"type":"string"}}},"meta":{"type":"object","required":["country","source","environment","requested","found","retrievedAt","warnings"],"properties":{"country":{"type":"string","const":"SE"},"source":{"type":"string","const":"Bolagsverket"},"environment":{"type":"string","enum":["test","production"]},"requested":{"type":"integer","const":1},"found":{"type":"integer"},"retrievedAt":{"type":"string","format":"date-time"},"warnings":{"type":"array","items":{"type":"string"}}}},"requestId":{"type":"string","format":"uuid"}}}}}},"400":{"description":"Ugyldigt svensk organisationsnummer eller request."},"401":{"description":"Manglende eller ugyldig API-nøgle."},"403":{"description":"Nøglen er udløbet eller mangler rettighed til endpointet."},"429":{"description":"API- eller Bolagsverket-rate limit overskredet."},"502":{"description":"Bolagsverket er utilgængeligt."},"503":{"description":"Bolagsverket er ikke konfigureret."},"504":{"description":"Bolagsverket svarede ikke i tide."}}}},"/api/v1/se/financials":{"get":{"summary":"Hent svenske regnskabstal og årsrapporter","description":"Normaliserer digitalt indsendte iXBRL-årsrapporter fra Bolagsverket. Dækningen starter i 2020 og omfatter ikke alle selskaber.","security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"name":"organisationNumber","in":"query","required":true,"description":"Med/uden SE-prefix, bindestreg og 01-suffiks.","schema":{"type":"string","example":"SE556703748501"}}],"responses":{"200":{"description":"Historiske regnskaber og kilde-/cachemetadata.","content":{"application/json":{"schema":{"type":"object","required":["country","organisationNumber","reports","meta","requestId"],"properties":{"country":{"type":"string","enum":["DK","SE"]},"organisationNumber":{"type":"string"},"reports":{"type":"array","items":{"type":"object","required":["sourceId","periodEnd","currency","values","ratios","documents"],"properties":{"sourceId":{"type":"string"},"source":{"type":"string","enum":["Virk","Bolagsverket"]},"periodStart":{"type":["string","null"],"format":"date"},"periodEnd":{"type":"string","format":"date"},"publishedAt":{"type":["string","null"],"format":"date-time"},"currency":{"type":"string","example":"DKK"},"scope":{"type":"string","enum":["company","group","unknown"]},"values":{"type":"object","description":"Normaliserede kildetal. Ikke-offentliggjorte felter er null; de bliver aldrig estimeret.","properties":{"revenue":{"type":["number","null"]},"grossProfit":{"type":["number","null"]},"operatingProfit":{"type":["number","null"]},"depreciation":{"type":["number","null"]},"ebitda":{"type":["number","null"]},"profitBeforeTax":{"type":["number","null"]},"taxExpense":{"type":["number","null"]},"netProfit":{"type":["number","null"]},"totalAssets":{"type":["number","null"]},"equity":{"type":["number","null"]},"currentAssets":{"type":["number","null"]},"cash":{"type":["number","null"]},"currentLiabilities":{"type":["number","null"]},"liabilities":{"type":["number","null"]},"averageEmployees":{"type":["number","null"]}}},"ratios":{"type":"object","description":"Beregninger i procent på baggrund af de publicerede kildetal.","additionalProperties":{"type":["number","null"]}},"calculatedFields":{"type":"array","items":{"type":"string"}},"documents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"mimeType":{"type":"string"},"url":{"type":["string","null"],"format":"uri"}}}}}}},"meta":{"type":"object","properties":{"source":{"type":"string","enum":["Virk","Bolagsverket"]},"retrievedAt":{"type":"string","format":"date-time"},"cached":{"type":"boolean"},"parserVersion":{"type":"string"},"coverage":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"}}}},"requestId":{"type":"string","format":"uuid"}}}}}},"400":{"description":"Ugyldigt organisationsnummer."},"401":{"description":"Manglende eller ugyldig API-nøgle."},"403":{"description":"Nøglen mangler regnskabsrettigheden."},"429":{"description":"Rate limit overskredet."}}}},"/api/v1/se/search":{"get":{"summary":"Søg i alle indekserede svenske organisationer","description":"Fritekstsøgning i det ugentligt opdaterede Bolagsverket/SCB-bulkindeks.","security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Navn, organisationsnummer, by eller SNI-kode.","schema":{"type":"string","example":"Volvo Göteborg"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"Svenske søgeresultater med pagineringsmetadata."},"401":{"description":"Manglende eller ugyldig API-nøgle."},"403":{"description":"Nøglen er udløbet eller mangler rettighed til endpointet."},"429":{"description":"Rate limit overskredet."},"503":{"description":"Det svenske søgeindeks er ikke indlæst."}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"},"apiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key"}},"schemas":{"LookupMeta":{"type":"object","required":["requested","found","missing"],"properties":{"requested":{"type":"integer"},"found":{"type":"integer"},"missing":{"type":"array","items":{"type":"integer"}}}}}}}