---
title: "DIAN Company Trade Profile"
method: POST
path: "/co/dian-trade/profile/v1"
tags: ["Colombia", "DIAN Importers and Exporters"]
---

# DIAN Company Trade Profile

`POST /co/dian-trade/profile/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/co/dian-trade/profile/v1`
- Auth: HTTP bearer

A Colombian company's foreign trade history by NIT, from DIAN's yearly directories of importers and exporters since 2017: its row in each year's importers directory (rank, CIF value in US dollars, net weight, declarations, main subpartidas arancelarias) and in each year's exporters directory (rank, FOB value, net weight, declaration items, main subpartidas), newest first. `found: false` when the NIT appears in no directory. Served by Croma (`as_of` says how current the data is), brought up to date weekly.

**Dataset endpoint**: answers from the whole source in milliseconds and carries `as_of`.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `document_number` string, required: Colombian NIT (numeric, no verification digit). 4-15 digits.

## Response `200`

Successful response

- DianTradeProfileResponse
  - `data` DianTradeProfileData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `found` boolean, required: False when the NIT appears in no importers or exporters directory since 2017.
    - `document_number` string, required: Echoes the request's `document_number`.
    - `name` string, nullable, required: The name in the most recent directory the company appears in.
    - `years` number[], required: Every year the company appears in either directory, newest first.
    - `imports` object[], required: The company's row in each year's importers directory, newest first.
      - `id` string, required: Stable identifier: flow, year and NIT, e.g. `import-2025-899999068`. A natural person, whom DIAN publishes without a NIT, is identified by its rank instead: `import-2025-pn-34409`.
      - `flow` 'import' | 'export', required: `import` (the directorio de importadores) or `export` (the directorio de exportadores).
      - `year` integer, required: Year the directory covers, 2017 or later.
      - `through_month` integer, nullable, required: Last month the figures accumulate to (1-12). `12` for a closed year; the current year's directory is cumulative and republished as months close. Null when the directory does not state it.
      - `rank` integer, required: Position in that year's directory (Consecutivo), 1 for the largest value.
      - `document_number` string, nullable, required: The company's NIT, numeric, no verification digit. Null for a natural person, whose identification DIAN does not publish.
      - `name` string, nullable, required: Razón social as DIAN prints it that year. `PERSONA NATURAL` for a natural person.
      - `natural_person` boolean, required: True when DIAN recategorized the row as a natural person and published neither the identification nor the name.
      - `value_usd` number, required: Total value in US dollars for the year to `through_month`: CIF for imports, FOB for exports.
      - `value_basis` 'CIF' | 'FOB', required: How `value_usd` is valued: `CIF` for imports, `FOB` for exports.
      - `net_weight_kg` number, required: Total net weight in kilograms.
      - `declarations` integer, nullable, required: Imports only: number of import declarations filed. Null on exports.
      - `declaration_items` integer, nullable, required: Exports only: number of registros, the series or items listed across the export declarations (not the number of declarations). Null on imports.
      - `top_tariff_codes` string[], required: The main subpartidas arancelarias imported or exported, up to five, in DIAN's order (Primera to Quinta), as 10-digit codes.
      - `top_tariff_headings` string[], required: The 4-digit headings (partidas) of `top_tariff_codes`, in order, without repeats.
      - `top_tariff_subheadings` string[], required: The 6-digit HS subheadings of `top_tariff_codes`, in order, without repeats.
      - `updated_at` string, nullable, required: `yyyy-mm-dd` DIAN last updated that year's directory, as the directory states it. Null when it does not.
    - `exports` object[], required: The company's row in each year's exporters directory, newest first.
      - `id` string, required: Stable identifier: flow, year and NIT, e.g. `import-2025-899999068`. A natural person, whom DIAN publishes without a NIT, is identified by its rank instead: `import-2025-pn-34409`.
      - `flow` 'import' | 'export', required: `import` (the directorio de importadores) or `export` (the directorio de exportadores).
      - `year` integer, required: Year the directory covers, 2017 or later.
      - `through_month` integer, nullable, required: Last month the figures accumulate to (1-12). `12` for a closed year; the current year's directory is cumulative and republished as months close. Null when the directory does not state it.
      - `rank` integer, required: Position in that year's directory (Consecutivo), 1 for the largest value.
      - `document_number` string, nullable, required: The company's NIT, numeric, no verification digit. Null for a natural person, whose identification DIAN does not publish.
      - `name` string, nullable, required: Razón social as DIAN prints it that year. `PERSONA NATURAL` for a natural person.
      - `natural_person` boolean, required: True when DIAN recategorized the row as a natural person and published neither the identification nor the name.
      - `value_usd` number, required: Total value in US dollars for the year to `through_month`: CIF for imports, FOB for exports.
      - `value_basis` 'CIF' | 'FOB', required: How `value_usd` is valued: `CIF` for imports, `FOB` for exports.
      - `net_weight_kg` number, required: Total net weight in kilograms.
      - `declarations` integer, nullable, required: Imports only: number of import declarations filed. Null on exports.
      - `declaration_items` integer, nullable, required: Exports only: number of registros, the series or items listed across the export declarations (not the number of declarations). Null on imports.
      - `top_tariff_codes` string[], required: The main subpartidas arancelarias imported or exported, up to five, in DIAN's order (Primera to Quinta), as 10-digit codes.
      - `top_tariff_headings` string[], required: The 4-digit headings (partidas) of `top_tariff_codes`, in order, without repeats.
      - `top_tariff_subheadings` string[], required: The 6-digit HS subheadings of `top_tariff_codes`, in order, without repeats.
      - `updated_at` string, nullable, required: `yyyy-mm-dd` DIAN last updated that year's directory, as the directory states it. Null when it does not.

## Other responses

- `400`: Invalid request body
- `401`: Missing or invalid API key
- `429`: Rate limit exceeded
- `500`: Internal error
- `502`: Upstream source returned an error

---

[API](https://skmtc.dev/usecroma/apis/croma-marketplace-api.md) · [All operations](https://skmtc.dev/usecroma/apis/croma-marketplace-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usecroma/apis/croma-marketplace-api/revisions/df016cdb29d7?raw)
