Companies

/companies

Search companies with filters.

By default only active companies are returned. When lat and lng are provided, results are sorted by distance from the center point and include distance_meters.

The industry and type filters accept multiple comma-separated values and match any of them.

Pagination without lat/lng: pagination.total_is_exact indicates whether total is an exact count. When false, total is a lower bound (counts are capped at 1,000 or may be incomplete after a query timeout), and pages is derived from that lower bound.

Filter-only browsing (for example, industry=561110 without a name query) still returns data beyond row 1,000: page=11&limit=100 is supported even when pages is 10. Do not treat pages as an end marker when total_is_exact is false. An incomplete empty response is not proof that no companies match; retry or narrow the filters if a query times out.

Name searches rank at most 1,000 candidates. Refine q or add filters when their count is incomplete; deeper pages cannot extend this ranked window. Query time budgets and rate limits apply to all pages.

Examples:

  • Text search: /v1/companies?q=Copenhagen
  • Location search: /v1/companies?lat=55.6761&lng=12.5683&radius=2000
  • Combined: /v1/companies?q=cafe&lat=55.6761&lng=12.5683&radius=1000&type=APS
  • Multiple industries near a point: /v1/companies?industry=561110,563000,551110&lat=55.6761&lng=12.5683&radius=2000
get/v1/companies

Request

  • Base URL: https://api.companydata.dk (the document declares no server; this is the origin it was published from)
  • URL: https://api.companydata.dk/v1/companies
  • Auth: HTTP bearer

Query parameters

qstring nullable

Search query

statusstring nullable

Filter by status (active, dissolved)

include_inactiveboolean

Include inactive/dissolved companies

typestring nullable

Filter by company type (APS, AS, etc.). Accepts multiple comma-separated values.

industrystring nullable

Filter by industry code. Accepts multiple comma-separated codes, e.g. 561110,563000 (matches any of them).

municipalitystring nullable

Filter by municipality code. Accepts multiple comma-separated codes, e.g. 101,147 (matches any of them).

postal_codestring nullable

Filter by postal code (4 digits)

latnumber nullable

Latitude for location-based search

lngnumber nullable

Longitude for location-based search

radiusinteger

Search radius in meters (min 50m, max 50km)

pageinteger

Page number

limitinteger

Results per page

Response

Successful Response

metaobject

Response metadata including radius_meters for location searches

paginationobject

Pagination info: page, limit, total, pages, total_is_exact. When total_is_exact is false, total and pages are lower bounds. Filter-only browsing can return data beyond pages; name searches have a ranked window of at most 1,000 results. See the endpoint pagination documentation.

Example response

{
  "data": [
    {
      "cvr": "12345678",
      "status": "active",
      "company_type": "A/S",
      "address": {
        "postal_code": "1000",
        "postal_district": "København K",
        "municipality_code": "101",
        "municipality_name": "København",
        "street": "Rådhuspladsen 1"
      },
      "industry": {
        "primary_code": "620100",
        "primary_text": "Computerprogrammering",
        "secondary": [
          {
            "code": "620100"
          }
        ]
      },
      "employees": {
        "count": 25,
        "interval": "10-19",
        "year": 2024,
        "month": 7
      },
      "latest_financials": {
        "year": 2024
      },
      "location": {
        "coordinates": [
          12.5683,
          55.6761
        ]
      },
      "phone": "70277383",
      "phone_source": "cvr"
    }
  ]
}

Changes

No recorded changes to this operation across all 2 revisions of this API.