Colombia Medicine Price Benchmarks — SISMED
Pricing
from $33.50 / 1,000 medicine price records
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 days ago
Last modified
Categories
Share
Official source. No API key. Pay per record.
Search
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:
| Cut | ATC | Ingredient | Entity | Avg price (COP) |
|---|---|---|---|---|
| 2019/06/01 | A10AE04 | INSULINA GLARGINA | INSTITUCIÓN PRESTADORA DE SALUD | 119142.32 |
| 2019/06/01 | A10AE04 | INSULINA GLARGINA | INSTITUCIÓN PRESTADORA DE SALUD | 120.34 |
| 2019/06/01 | A10AE04 | INSULINA GLARGINA | INSTITUCIÓN PRESTADORA DE SALUD | 115648.21 |
| 2019/06/01 | A10AE04 | INSULINA GLARGINA | MAYORISTA | 104404 |
| 2019/06/01 | A10AE04 | INSULINA GLARGINA | INSTITUCIÓN PRESTADORA DE SALUD | 106797 |
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 as2019/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

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;
periodnarrows 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:
| Field | Type | Default | Description |
|---|---|---|---|
maxRecords | integer | 10 | Maximum 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:
| Field | Type | Meaning |
|---|---|---|
record_id | string | Composite source-native key. |
fechacorte | string | Report cut-off date. |
rolactordesc | string | Supply-chain role type (not a person). |
tiporeportepreciodesc | string | Price report type. |
transaccionsismeddesc | string | SISMED transaction type. |
codigoium | string | IUM medicine code. |
nombreium | string | IUM medicine name. |
expedientecum | string | CUM registration file. |
descripcioncomercial | string | Commercial description (product). |
formafarmaceutica | string | Pharmaceutical form. |
atc | string | ATC code. |
descripcion_atc | string | ATC description. |
via_administracion | string | Route of administration. |
tipoentidaddesc | string | Reporting entity type. |
unidadfacturadesc | string | Billing unit. |
valorminimo | number | Minimum reported price. |
valormaximo | number | Maximum reported price. |
valorpromedio | number | Average reported price. |
unidades | number | Units. |
valortotal | number | Total value. |
source | string | Data source. |
source_dataset | string | Socrata resource id. |
licence | string | Licence / public-domain notice. |
attribution | string | Required attribution string. |
caveat | string | Interpretation caveat. |
observed_at | string | UTC timestamp the record was retrieved. |
Related actors
- 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.