Colombia Medicine Price Benchmarks — SISMED avatar

Colombia Medicine Price Benchmarks — SISMED

Pricing

from $33.50 / 1,000 medicine price records

Go to Apify Store
Colombia Medicine Price Benchmarks — SISMED

Colombia Medicine Price Benchmarks — SISMED

Colombia SISMED reported medicine prices (Jan 2017 - Jun 2019): search by ATC code, active ingredient, presentation, CUM, sale/purchase/reimbursement and reporting entity type, or by period - min/max/average price and units. CC BY-SA 4.0. Pay per record.

Pricing

from $33.50 / 1,000 medicine price records

Rating

0.0

(0)

Developer

NexGen Signal

NexGen Signal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 days ago

Last modified

Share

Official source. No API key. Pay per record.

Question: What sale prices were reported in Colombia's SISMED data for long-acting insulins (ATC A10AE)?

{"atcCodes": ["A10AE"], "reportTypes": ["VENTA"], "maxRecords": 10}

Run on 30 Sep 2026 this returned 10 records (10 × $0.05 = $0.50 on Apify's Free plan), for example:

CutATCIngredientEntityAvg price (COP)
2019/06/01A10AE04INSULINA GLARGINAINSTITUCIÓN PRESTADORA DE SALUD119142.32
2019/06/01A10AE04INSULINA GLARGINAINSTITUCIÓN PRESTADORA DE SALUD120.34
2019/06/01A10AE04INSULINA GLARGINAINSTITUCIÓN PRESTADORA DE SALUD115648.21
2019/06/01A10AE04INSULINA GLARGINAMAYORISTA104404
2019/06/01A10AE04INSULINA GLARGINAINSTITUCIÓN PRESTADORA DE SALUD106797

Search options (all optional; a record must match every option you set, and several values in one option match any of them):

  • ATC codes (starting with) (atcCodes) — WHO ATC code or its start, e.g. A10AE (long-acting insulins), C09, J01.
  • Active ingredient (contains) (atcNames) — As in the ATC description, Spanish, e.g. INSULINA, ATORVASTATINA, METFORMINA.
  • Presentation (contains) (products) — Words in the commercial description, e.g. TABLETAS, VIAL.
  • CUM file numbers (cums) — Exact expediente CUM numbers, e.g. 19947958.
  • Report type (reportTypes) — VENTA (sale), COMPRA (purchase), RECOBRO (reimbursement claim).
  • Reporting entity type (contains) (entityTypes) — e.g. LABORATORIO, MAYORISTA (wholesaler), PRESTADORA (hospital/clinic), PROMOTORA (health insurer).
  • Period (period) — SISMED cut date prefix such as 2019/06 (this input existed before but was not shown in the form).

Options go into the datos.gov.co query, so only matching rows are read and billed. SISMED is large (23 million rows): an ATC code (matched by its start) or a CUM number is fastest; broad word searches can be slow, and if the source times out the run says so and charges nothing. The dataset covers January 2017 to June 2019. With no option set the actor returns rows exactly as before (newest cut first).

Who this is for and the decision it supports

Pharma market-access, health-economics and procurement teams who need historical Colombian price benchmarks: what manufacturers and importers reported selling and buying medicines for, by channel, month by month from January 2017 to June 2019 (SISMED). It is not a current price list; see When to run it again.

One record answers: for this product/presentation and reporting channel/period, what were the minimum, maximum and average reported prices and volumes — a market-access and pricing benchmark.

Buyers usually search for this as "colombia drug prices" or "sismed medicine prices".

Sample output

Sample output — Colombia Medicine Price Benchmarks — SISMED

Real rows from a live run of this actor (first 5 rows, selected columns).

One full record from the same run, exactly as delivered:

{
"record_id": "2019/06/01:ELABORA O IMPORTA EL MEDICAMENTO:VENTA:TRANSACCION PRIMARIA INSTITUCIONAL:1:NO DEFINIDO:19947958:CAJAS EN CARTULINA POR 3 PLAQUETAS POR 10 TABLETAS EN BLISTER PVDC BLANCO/ALUMINIO.:TABLETA CUBIERTA CON PELICULA:A02BA02:RANITIDINA:ORAL:LABORATORIO:NO DEFINIDO:0.00000:0.00000:0.00000:0.00000:0.0000000000",
"fechacorte": "2019/06/01",
"rolactordesc": "ELABORA O IMPORTA EL MEDICAMENTO",
"tiporeportepreciodesc": "VENTA",
"transaccionsismeddesc": "TRANSACCION PRIMARIA INSTITUCIONAL",
"codigoium": "1",
"nombreium": "NO DEFINIDO",
"expedientecum": "19947958",
"descripcioncomercial": "CAJAS EN CARTULINA POR 3 PLAQUETAS POR 10 TABLETAS EN BLISTER PVDC BLANCO/ALUMINIO.",
"formafarmaceutica": "TABLETA CUBIERTA CON PELICULA",
"atc": "A02BA02",
"descripcion_atc": "RANITIDINA",
"via_administracion": "ORAL",
"tipoentidaddesc": "LABORATORIO",
"unidadfacturadesc": "NO DEFINIDO",
"valorminimo": 0,
"valormaximo": 0,
"valorpromedio": 0,
"unidades": 0,
"valortotal": 0,
"source": "MinSalud SISMED - Colombia open data (datos.gov.co)",
"source_dataset": "3he6-m866",
"licence": "Colombia MinSalud / SISMED (datos.gov.co), CC BY-SA 4.0. Reproduced unchanged with attribution; ShareAlike applies to any redistributed database. Reported medicine prices only (not regulated ceilings); no personal data (rolactordesc is a role type, not a person).",
"attribution": "Ministerio de Salud y Proteccion Social - SISMED, Colombia",
"caveat": "Reported medicine prices (SISMED): product x presentation x channel/role x period, with minimum, maximum, average price, units and total value. rolactordesc is a supply-chain role type (e.g. laboratory, wholesaler), not a person. Values are reported prices in Colombian pesos.",
"observed_at": "2026-09-25T17:19:00Z"
}

What one record is

Each record is one SISMED report row: product (IUM/CUM, commercial name, ATC), pharmaceutical form, channel/role, reporting period, min/max/average price, units and total value.

Your first run

Paste this input and run it:

{
"maxRecords": 10
}

Run it and get clean per-report price rows immediately. Here is a real record from that exact input:

{
"record_id": "1:1:2017/01/01:ELABORA O IMPORTA EL MEDICAMENTO:CAJA DE COMPENSACIÓN FAMILIAR :COMPRA",
"fechacorte": "2017/01/01",
"rolactordesc": "ELABORA O IMPORTA EL MEDICAMENTO",
"tiporeportepreciodesc": "COMPRA",
"transaccionsismeddesc": "TRANSACCION PRIMARIA INSTITUCIONAL",
"codigoium": "1",
"nombreium": "NO DEFINIDO",
"expedientecum": "1",
"descripcioncomercial": "NO DEFINIDO",
"formafarmaceutica": "NO DEFINIDO",
"atc": "1",
"descripcion_atc": "SIN DATO"
}

What the sample costs: $0.05 per record. The sample above delivers 10 records, so it costs at most $0.50.

Pulling in bulk

Raise Maximum records to pull the full historical SISMED panel. A buyer pulls the full SISMED panel to track price ranges by product, channel and period across the market.

To expand from the sample: raise Maximum records, and widen any filters shown in the input. You are billed only for records actually delivered, so a sample stays cheap and a full pull is predictable.

When to run it again

The SISMED dataset on datos.gov.co covers cut dates from January 2017 to June 2019 (checked 30 Sep 2026; the portal shows the dataset was last updated in June 2022). The actor returns the newest cut first.

Update schedule: none visible - the dataset has not been updated since June 2022, so treat it as a historical 2017-2019 price panel. Records carry a fechacorte (reporting cut date).

June 2019 looks incomplete in the source. On 30 Sep 2026 the dataset held exactly 23,050,000 rows; every month from January 2017 to May 2019 has between about 530,000 and 1.3 million rows, but June 2019 has 206,051. Treat June 2019 figures as partial.

Newer official price data exists elsewhere, in different forms: MinSalud's regulated maximum sale prices by commercial presentation (datos.gov.co nauz-qkjw, updated August 2026) and the Clicsalud price thermometer with 2024 prices per tablet (n4dj-8r7k). They are not SISMED reports and this actor does not read them.

How this is different

Colombia SISMED reported medicine prices — distinct from the US CMS reimbursement actor; different country, source and grain.

Limitations (source coverage vs product coverage)

  • These are REPORTED prices (min/max/average) by channel, not a single transaction or a regulated ceiling.
  • Records come newest cut first; period narrows to one year, month or cut date, and the search options narrow by ATC code, ingredient, presentation, CUM, report type or entity type (added 30 Sep 2026).
  • Coverage is what SISMED reporters submit.

FAQ

Are these regulated maximum prices?

No. They are reported min/max/average prices by channel from SISMED.

Can I pull only the latest corte?

Yes: records already come newest cut first, and period (e.g. 2019/06) returns only that cut.

What does an empty run mean?

No row in the dataset matched your options (for example a period outside January 2017 - June 2019). Nothing is charged.

How much does it cost? You pay $0.05 per medicine price record delivered to your dataset (less on higher Apify plans). Set the record limit in the input to cap what a run can cost. Records that are not delivered are never charged.

How do I get the data out? Every run saves its records to an Apify dataset. You can download it as JSON, CSV, Excel, XML or HTML from the run page, or read it through the Apify API.

Can I run it on a schedule? You can, but it is not useful: the dataset has not changed since June 2022, so a scheduled run returns the same records and charges for them again.

Can I call it from my own code? Yes. Call nexgensignal/co-medicine-price-records through the Apify API or the Apify Python and JavaScript clients, pass the same JSON input as the form, and read the dataset when the run finishes.

What happens if the source is down? The run ends with a clear status message, and nothing is charged for records that were not delivered.

Input fields

Every input this actor accepts, read from its input schema:

FieldTypeDefaultDescription
maxRecordsinteger10Maximum records delivered and billed. You are billed only for records actually delivered. Raise it to pull the full set.

Default changed on 30 Sep 2026: if you leave maxRecords out, a run now returns up to 10 records (it was 500). Set maxRecords yourself to get more — the maximum is unchanged.

Output fields

Every field in each delivered record, read from its output schema:

FieldTypeMeaning
record_idstringComposite source-native key.
fechacortestringReport cut-off date.
rolactordescstringSupply-chain role type (not a person).
tiporeportepreciodescstringPrice report type.
transaccionsismeddescstringSISMED transaction type.
codigoiumstringIUM medicine code.
nombreiumstringIUM medicine name.
expedientecumstringCUM registration file.
descripcioncomercialstringCommercial description (product).
formafarmaceuticastringPharmaceutical form.
atcstringATC code.
descripcion_atcstringATC description.
via_administracionstringRoute of administration.
tipoentidaddescstringReporting entity type.
unidadfacturadescstringBilling unit.
valorminimonumberMinimum reported price.
valormaximonumberMaximum reported price.
valorpromedionumberAverage reported price.
unidadesnumberUnits.
valortotalnumberTotal value.
sourcestringData source.
source_datasetstringSocrata resource id.
licencestringLicence / public-domain notice.
attributionstringRequired attribution string.
caveatstringInterpretation caveat.
observed_atstringUTC timestamp the record was retrieved.
  • cms-procedure-reimbursement-records — US Medicare reimbursement benchmarks
  • eu-regulatory-change-records — regulatory monitoring
  • company-data-enrichment-api — resolve manufacturers to legal entities

Source, licence and how it is built

Source and licence are carried on every record (source, licence, attribution, observed_at). The actor reads only the official public endpoint, honours the source's robots and licence terms, and emits values unmodified with full provenance. Records are keyed on a stable id so re-runs upsert cleanly into a table you keep. Row delivery and billing are exactly equal: you are charged once per record delivered (push-then-charge), so an empty run costs nothing.

Part of NexGen Signal — official-source data products.