Colombian company and procurement data by NIT, each field with its official source. Free checks.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer rduno_… key for the six data tools (Business plan). Not needed to connect, for radicadouno_comprobar (free, 10/day) or to buy a key or a report from within the server.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Busca en las 9,3M matrículas del RUES por prefijo de razón social o por NIT exacto. Devuelve candidatos con NIT para usar en las demás tools.
Prefijo de la razón social (ej. 'BANCOLOMBIA') o NIT exacto
Tool list last changed Oct 25, 2026.
Busca en las 9,3M matrículas del RUES por prefijo de razón social o por NIT exacto. Devuelve candidatos con NIT para usar en las demás tools.
| Argument | Type | Description |
|---|---|---|
| texto* | string | Prefijo de la razón social (ej. 'BANCOLOMBIA') o NIT exacto |
| limite | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"texto"
],
"properties": {
"texto": {
"type": "string",
"minLength": 3,
"description": "Prefijo de la razón social (ej. 'BANCOLOMBIA') o NIT exacto"
},
"limite": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
}
}
}Busca por nombre o razón social, también parcial, entre TODAS las sociedades con matrícula activa del registro mercantil (RUES), tengan o no contratos con el Estado o ficha pública. Sin distinguir tildes ni mayúsculas e ignorando la forma societaria (S.A.S., LTDA…): «avancys» encuentra AVANCYS SAS. Ordena exacta > prefijo > palabra > contiene > parecida (erratas) y luego matrícula activa; `coincidencia` de cada resultado dice cuál. Con coincidencia='literal' solo devuelve exacta, prefijo o palabra completa (sin erratas ni trozos de palabra): úsalo para crear perfiles sin confirmar. Devuelve razón social, NIT (y DV si consta), cámara, estado de la matrícula, último año renovado, ficha_url si tiene ficha pública y la fuente. Una fila por NIT. Nunca devuelve personas naturales. Fuera del universo quedan también los números sin forma de NIT de sociedad, las formas jurídicas fuera de la lista blanca, las matrículas canceladas o inactivas y todo NIT que aparezca alguna vez con cédula (cobertura.nota; recuentos por motivo en radicadouno_matriz_fuentes). Mínimo 3 letras sin contar la forma societaria. Con un NIT, búsqueda exacta. Sirve los 1.000 primeros resultados (pagina × por_pagina): para más, afina la consulta. Para el detalle de las matrículas de un NIT, la API /v1/registro/{nit}.
| Argument | Type | Description |
|---|---|---|
| q* | string | Razón social o parte de ella (p. ej. 'avancys'), o un NIT |
| pagina | integer | |
| por_pagina | integer | |
| coincidencia | string | aproximada (por defecto): todos los niveles, también erratas. literal: solo exacta, prefijo o palabra completa |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"maxLength": 120,
"minLength": 3,
"description": "Razón social o parte de ella (p. ej. 'avancys'), o un NIT"
},
"pagina": {
"type": "integer",
"default": 1,
"maximum": 9007199254740991,
"minimum": 1
},
"por_pagina": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"coincidencia": {
"enum": [
"aproximada",
"literal"
],
"type": "string",
"description": "aproximada (por defecto): todos los niveles, también erratas. literal: solo exacta, prefijo o palabra completa"
}
}
}Lo esencial de una empresa por NIT, SIN CLAVE y gratis: identidad registral (si está activa, quién la representa, desde cuándo), si contrata con el Estado, si tiene sanciones y si aparece en listas restrictivas. Tope de 10 al día. Para el detalle completo hace falta clave (radicadouno_contratar); para el documento sellado que sirve ante un tercero, radicadouno_informe.
| Argument | Type | Description |
|---|---|---|
| nit* | string | NIT sin dígito de verificación, solo dígitos |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nit"
],
"properties": {
"nit": {
"type": "string",
"description": "NIT sin dígito de verificación, solo dígitos"
}
}
}Consorcios y uniones temporales de SECOP II de los que forma parte una empresa, con su porcentaje de participación, si lidera, los demás integrantes y los contratos del grupo. Sirve para atribuir experiencia de consorcios.
| Argument | Type | Description |
|---|---|---|
| nit* | string | NIT, solo dígitos, sin dígito de verificación |
| pagina | integer | |
| por_pagina | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nit"
],
"properties": {
"nit": {
"type": "string",
"pattern": "^[0-9]{5,15}$",
"description": "NIT, solo dígitos, sin dígito de verificación"
},
"pagina": {
"type": "integer",
"default": 1,
"maximum": 9007199254740991,
"minimum": 1
},
"por_pagina": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
}
}
}Abre una caja de pago del plan Business (619.900 COP al mes, los primeros 7 días gratis; incluye las 24 herramientas de datos de este servidor, todas las que piden clave) y devuelve la URL de alta y una referencia. No hace falta clave para llamar a esta herramienta. Después se consulta el estado con radicadouno_estado_contratacion para recoger la clave.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Contratos SECOP II donde el NIT es el proveedor adjudicado, con el enlace oficial al expediente de cada contrato (url_proceso). Filtrable por año y estado.
| Argument | Type | Description |
|---|---|---|
| nit* | string | NIT del proveedor, solo dígitos |
| anio | integer | |
| estado | string | ej. 'En ejecución', 'Cerrado' |
| limite | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nit"
],
"properties": {
"nit": {
"type": "string",
"description": "NIT del proveedor, solo dígitos"
},
"anio": {
"type": "integer",
"maximum": 2100,
"minimum": 2000
},
"estado": {
"type": "string",
"description": "ej. 'En ejecución', 'Cerrado'"
},
"limite": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
}
}
}Enlaces oficiales de descarga de los documentos de un proceso de SECOP II: pliego, estudios previos, evaluación, adjudicación, oferta económica, contrato, modificaciones. Solo tipos de una lista blanca y nunca documentos de personas naturales.
| Argument | Type | Description |
|---|---|---|
| portafolio* | string | Identificador de portafolio de SECOP II, CO1.BDOS.<número> (campo id_portafolio) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"portafolio"
],
"properties": {
"portafolio": {
"type": "string",
"pattern": "^CO1\\.BDOS\\.[0-9]{1,12}$",
"description": "Identificador de portafolio de SECOP II, CO1.BDOS.<número> (campo id_portafolio)"
}
}
}Estado de una compra, con la referencia que devolvió radicadouno_contratar o radicadouno_informe. Si era una clave: la ENTREGA UNA SOLA VEZ cuando el pago está confirmado (guárdala, no se puede volver a consultar) y se envía como 'Authorization: Bearer <clave>'. Si era un informe: devuelve el enlace de descarga del PDF y el de comprobación pública de su huella, tantas veces como haga falta.
| Argument | Type | Description |
|---|---|---|
| referencia* | string | La referencia de radicadouno_contratar o de radicadouno_informe |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"referencia"
],
"properties": {
"referencia": {
"type": "string",
"minLength": 16,
"description": "La referencia de radicadouno_contratar o de radicadouno_informe"
}
}
}Qué fuentes están cargadas, cuántas filas (estimación del planificador) y fecha de última captura. Útil para citar la frescura del dato.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Cómo evaluó la entidad a cada proponente de un proceso de SECOP II (CO1.BDOS.n): habilitación jurídica, técnica y financiera, rechazo y su causa (código de una taxonomía cerrada: experiencia, capacidad_financiera, supera_presupuesto…), retiro, puntaje por criterio y total, orden de elegibilidad y lote, leídos del informe de evaluación o de la resolución de adjudicación. Solo se publica un documento si su aritmética cuadra, el orden es coherente con los puntajes, cada proponente casa con los que registra SECOP y, en los definitivos, el primero es el adjudicatario. Solo sociedades y consorcios. FILAS: una por proponente, por lote y por documento leído (preliminar, definitivo o consolidado, resolución de adjudicación): el mismo proponente sale una vez por cada documento que lo evalúa. clave_proponente (opaca) dice qué filas son del mismo proponente. vigente=true en la del documento más firme de ese proponente y lote (documento.firmeza: adjudicacion > definitivo > sin_etapa > preliminar; a igualdad, el más reciente); las demás son la historia (p. ej. el preliminar ya superado). solo_vigentes=true deja una fila por proponente y lote; conteo dice filas, filas_vigentes y proponentes del proceso. `extraccion` dice cuántos documentos de evaluación hay y por qué no se leyeron los demás. extraccion.estado: 'nunca' = aún no se ha consultado la fuente; 'sin_documentos' = se consultó (ultima_revision dice cuándo) y SECOP II no publica ningún documento de evaluación del proceso (por ahora no hay nada que leer); 'pendiente' = hay documentos sin leer; 'hecha' = todos leídos. documento_url es null si en el proceso hay proponentes que no se publican (la huella sha256 sí va).
| Argument | Type | Description |
|---|---|---|
| pagina | integer | |
| por_pagina | integer | |
| portafolio* |
Consulta fuentes adicionales con caché propia y procedencia: estados financieros de Supersolidaria por NIT; capacidad histórica de IPS (REPS, no habilitación actual); registros Invima de dispositivos, vacunas y medicamentos vigentes, vencidos u otros estados. fuente=todas devuelve el catálogo; elige una fuente para consultar datos. Invima no trae NIT: solo coincidencias LITERALES de razón social, que NO acreditan identidad del titular; verificar el expediente. Capturado_en es nuestra consulta, no el corte de los datos. Hasta 500 registros por fuente, con paginación de 100 como máximo. Solo sociedades activas verificadas en RUES y clave Business del cliente. Sin recargo por esta función; se aplica la cuota de consultas del plan.
| Argument | Type | Description |
|---|---|---|
| nit* | string | NIT, solo dígitos, sin dígito de verificación |
| fuente | string | |
| pagina | integer | |
| por_pagina | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nit"
],
"properties": {
"nit": {
"type": "string",
"pattern": "^[0-9]{5,15}$",
"description": "NIT, solo dígitos, sin dígito de verificación"
},
"fuente": {
"enum": [
"todas",
"supersolidaria",
"reps_historico",
"invima_dispositivos",
"invima_vacunas",
"invima_medicamentos_vigentes",
"invima_medicamentos_vencidos",
"invima_medicamentos_otros"
],
"type": "string",
"default": "todas"
},
"pagina": {
"type": "integer",
"default": 1,
"maximum": 9007199254740991,
"minimum": 1
},
"por_pagina": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
}
}
}Todos los contratos con el Estado de una empresa colombiana, SECOP II (desde 2015) y SECOP I (desde 2000) sin duplicar, paginados con el total exacto. Cada contrato trae entidad, objeto, fechas, estado, UNSPSC, lugar de ejecución, valores y valor_calidad. Suma solo valor_confiable (NULL si el valor de la fuente no es fiable: 0, 1, desproporcionado o repetido entre adjudicatarios). valor_inicial, valor_adiciones y valor_final llevan su *_calidad: null y 'no_recuperable' cuando no se puede saber, 0 solo si la fuente publica 0 ('cero_en_fuente') o no consta ninguna modificación ('sin_modificaciones_publicadas'). Cada contrato lleva entidad_id, identificador estable de la entidad compradora también cuando SECOP I no publica su NIT (Ecopetrol): úsalo en entidad_id para filtrar. nombre_entidad es el de la fuente tal cual. entidad_equivalente: la misma entidad con NIT cuando SECOP I la publica sin NIT y se puede acreditar (mismo nombre normalizado, departamento y municipio, un único NIT de entidad en SECOP II para ese nombre y lugar, usado en un solo departamento): {entidad_id, nit, metodo, confianza}; null si no se acredita (varios candidatos, municipio sin definir…). Para totales usa radicadouno_resumen_contratacion. unspsc_principal es siempre un código OFICIAL y unspsc_fuente dice de quién: 'oficial_secop2' (el contrato o proceso de SECOP II) u 'oficial_secop1' (lo que SECOP I publica para la constancia: el segmento siempre, la clase cuando la entidad la puso). unspsc_principal_detalle (y unspsc_adicionales_detalle) dan la jerarquía segmento → familia → clase → producto con los nombres de los datos abiertos de SECOP I (CC BY-SA 4.0; los productos no tienen nombre: null); unspsc_catalogo, licencia y origen. unspsc_documentales contiene códigos oficiales del objeto leídos en pliegos definitivos revisados, con URL, SHA256, páginas, fecha y alcance. No identifica un principal ni sustituye unspsc/unspsc_principal. En detalle también va a nivel de portafolio con SU id_proceso. [] significa sin evidencia revisada, no ausencia de códigos. El filtro unspsc sigue consultando el código estructurado, no esta lista documental. cobertura.fuentes[] dice por fuente ultima_sincronizacion y corte (hasta cuándo está completa; null = no consta, con nota_corte): una lista vacía con alcance completo es «no consta hasta el corte», no un error.
| Argument |
|---|
El informe de debida diligencia de una empresa en PDF, con la huella del fichero, sello de tiempo y cada dato enlazado a su publicación oficial. Con clave Pro o Business se DESCUENTA de los 20 informes incluidos al mes, sin pagar nada. Sin clave, o agotados los incluidos, se compra suelto: 89.900 COP, sin suscripción, y devuelve una URL de pago. En los dos casos, radicadouno_estado_contratacion con la referencia devuelve el enlace de descarga.
| Argument | Type | Description |
|---|---|---|
| nit* | string | NIT sin dígito de verificación, solo dígitos |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nit"
],
"properties": {
"nit": {
"type": "string",
"description": "NIT sin dígito de verificación, solo dígitos"
}
}
}Por cada dataset de datos.gov.co del que salen las herramientas de licitaciones y del registro: nombre y uso, período cubierto en la base (fecha mínima y máxima del dato de negocio), corte (hasta cuándo la base refleja la fuente entera; null con nota_corte si no se puede verificar, nunca una fecha supuesta), última sincronización correcta, modo (delta, ventana, completa, carga_unica, bajo_demanda, incremental_por_id, foto_diaria), frecuencia (el cron real, en UTC), retraso actual (ahora − corte) y retraso máximo esperado, y cobertura (completa o parcial, con nota). Incluye universo_registral: cuántas matrículas hay y cuántas quedan fuera de la búsqueda registral por cada motivo. Todo instante en UTC, ISO 8601 con «Z». Úsala para decir al usuario hasta qué fecha está al día un dato.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Modificaciones publicadas de un contrato de SECOP II (CO1.PCCNTR.n, campo id_contrato del historial): valor tras cada modificación, días extendidos, liquidación, y el resumen valor inicial → adiciones → valor final, cada uno con su *_calidad (null y 'no_recuperable' si no consta: el valor inicial solo se publica desde junio de 2026).
| Argument | Type | Description |
|---|---|---|
| id_contrato* | string | CO1.PCCNTR.<número> |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id_contrato"
],
"properties": {
"id_contrato": {
"type": "string",
"pattern": "^CO1\\.PCCNTR\\.[0-9]{1,12}$",
"description": "CO1.PCCNTR.<número>"
}
}
}Lo que ha cambiado en los procesos de SECOP II y SECOP I desde un cursor, en orden. SECOP II: nuevo (entra en la lista de abiertos: motivo primera_vez o pasa_a_abierto), cierre_cambiado (prórroga o adelanto, antes → después), estado_cambiado (estado o fase), presupuesto_cambiado y ya_no_abierto (motivo cierre_vencido, estado_cerrado o desaparece_de_la_fuente); salen de comparar la foto de cada día con la anterior: se fechan el día en que se ven (detectado_en), no cuando los hizo la entidad, y una adenda que no cambie cierre, estado, fase ni presupuesto no se ve (la fuente no publica las adendas). SECOP I: cierre_cambiado (con la hora, antes → después) y estado_cambiado al releer la ficha, documento_nuevo y documento_version_nueva (del inventario de documentos: adendas, pliegos…) y modificacion_publicada (lo que registra la plataforma, con su fecha); novedad_origen dice de dónde sale y la primera lectura de una constancia no genera novedades (una constancia nueva sale en radicadouno_procesos_abiertos). El cursor es UNO para las dos fuentes: empieza con desde=0 (o con ultimo_cursor para ver solo lo que llegue a partir de ahora), guarda siguiente_cursor y vuelve a pedir con él, con la fuente que quieras; si hay_mas es true, pide otra vez enseguida. Los cursores guardados antes de SECOP I siguen valiendo. Cada fila lleva el proceso tal como está ahora y abierto_ahora (no recomiendes uno con abierto_ahora false o null). cierre es la FECHA de cierre de ofertas (AAAA-MM-DD, día de Bogotá). SECOP II no publica la hora de cierre en datos abiertos (cierre_hora null): un proceso de SECOP II que cierra hoy puede cerrar a primera hora, confírmalo en url (la ficha oficial). SECOP I sí la publica: cierre_hora en ISO 8601 con −05:00 (America/Bogota; la ficha no escribe la zona) y cierre_utc, y un proceso de SECOP I cuyo cierre ya pasó no sale como abierto. Frecuencia: SECOP II, una foto al día (10:30 UTC, y otra a las 19:30 UTC si la fuente se ha republicado); datos.gov.co publica lo de SECOP II con un día de retraso, así que un proceso publicado hoy sale como pronto mañana (cobertura.foto). SECOP I, la ficha pública de cada proceso en contratos.gov.co, releída cada día si cierra en menos de 72 h y como mucho a los 7 días si no (capturado_en de cada fila). Sin contratación directa en ninguna. fuente: ambas (por defecto en esta herramienta), secop2 o secop1 (la ruta de la API, sin fuente, da solo SECOP II por compatibilidad: esta herramienta manda ambas). Cada fila lleva su fuente y las de las dos tienen los mismos campos (campos_sin_dato dice cuáles no publica cada una). SECOP I está en carga inicial mientras cobertura.secop1.estado sea 'carga_inicial'; la cohorte inicial y las incorporaciones posteriores se separan y exigen el 100 % de primeras lecturas. Con 'incorporaciones_pendientes' también es parcial. El objeto contractual oficial lleva objeto_origen; un nombre oficial ausente no se inventa. El fin es una estimación. El alcance es 'parcial'. En SECOP I, departamento y municipio son los de ejecución, y entidad y entidad_id no encuentran nada (la ficha no publica el NIT). unspsc_documentales contiene códigos oficiales del objeto leídos en pliegos definitivos revisados, con URL, SHA256, páginas, fecha y alcance. No identifica un principal ni sustituye unspsc/unspsc_principal. En detalle también va a nivel de portafolio con SU id_proceso. [] significa sin evidencia revisada, no ausencia de códigos. El filtro unspsc sigue consultando el código estructurado, no esta lista documental.UNSPSC: desde ~15-09-2026 SECOP II publica casi todos los procesos como 'UNSPECIFIED' (unspsc null; cobertura.foto.pct_sin_unspsc da el porcentaje medido): el filtro unspsc solo encuentra los pocos que traen código, y la respuesta lo marca con alcance 'parcial'. SECOP I lo publica hasta la clase (6 dígitos). Para buscar por actividad, filtra mejor por modalidad, entidad, región o presupuesto.
Procesos de contratación pública en los que una empresa se presentó (directamente o en consorcio), con el resultado (ganada, perdida, desierto, cancelado, sin_adjudicar, sin_dato, no_aplica), cuántos proponentes hubo y quién ganó (adjudicatarios: todos, también en procesos por lotes; adjudicatario: el primero). tipo dice si es un proceso de selección o una solicitud de información (sondeo de mercado, resultado no_aplica): las solicitudes salen en la lista pero NO cuentan en por_resultado ni en por_resultado_total salvo incluir_solicitudes_informacion; por_tipo las cuenta. por_resultado y por_tipo respetan los mismos filtros que la lista; por_resultado_total, ninguno. El resultado se deduce de la adjudicación y de los contratos del proceso. puntaje_total, habilitado y causal_rechazo salen del informe de evaluación cuando ya se ha leído y validado (detalle por criterio: radicadouno_evaluacion_proceso); null si no. unspsc_principal_detalle: la jerarquía UNSPSC oficial del proceso, con nombres (unspsc_catalogo). cobertura.fuentes[] dice por fuente ultima_sincronizacion y corte (hasta cuándo está completa; null = no consta, con nota_corte): una lista vacía con alcance completo es «no consta hasta el corte», no un error.
| Argument | Type | Description |
|---|---|---|
| nit* | string | NIT, solo dígitos, sin dígito de verificación |
| tipo | string | proceso_seleccion para ver solo licitaciones y demás procesos competitivos |
| desde | string | AAAA-MM-DD |
| hasta | string | AAAA-MM-DD |
| fuente |
Cruce completo por NIT: matrículas RUES (registro mercantil), expediente enriquecido si existe, registro de proveedor estatal y agregados de contratación pública SECOP II. Cada bloque lleva su provenance.
| Argument | Type | Description |
|---|---|---|
| nit* | string | NIT sin dígito de verificación, solo dígitos |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nit"
],
"properties": {
"nit": {
"type": "string",
"description": "NIT sin dígito de verificación, solo dígitos"
}
}
}Precio por ítem de un proceso de SECOP II (CO1.BDOS.n): descripción, cantidad, unidad, valor unitario, IVA y total de cada línea, leídos del documento de oferta económica y publicados solo si su aritmética cuadra y su total casa al peso con la oferta del proponente (una sociedad), con el contrato o con el presupuesto oficial (tipo_precio 'referencia'). Cada línea lleva el enlace oficial del documento y su huella sha256. El IVA que el documento no trae sale null, nunca 0. iva_calidad (de la línea): 'publicado', 'cero_en_documento' (exento: el documento escribe 0) o 'no_publicado'. iva_tarifa (0.19 = 19 %) y valor_iva_unitario: solo si el documento los escribe. valor_iva_linea, el IVA de la línea entera, con valor_iva_linea_calidad: 'publicado' (el documento lo escribe), 'calculado' (valor_iva_unitario × cantidad, al céntimo, cuando el documento da el unitario y la cantidad pero no el de la línea) o 'no_publicado' (null; nunca se calcula desde la tarifa). `extraccion` dice cuántos documentos de oferta hay, cuántos se leyeron y por qué no los demás (no descargables, plantillas en blanco, no cuadran…).
| Argument | Type | Description |
|---|---|---|
| pagina | integer | |
| por_pagina | integer | |
| portafolio* | string | Identificador de portafolio de SECOP II, CO1.BDOS.<número> (campo id_portafolio) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"portafolio"
],
"properties": {
"pagina": {
"type": "integer",
"default": 1,
"maximum": 9007199254740991,
"minimum": 1
},
"por_pagina": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"portafolio": {
"type": "string",
"pattern": "^CO1\\.BDOS\\.[0-9]{1,12}$",
"description": "Identificador de portafolio de SECOP II, CO1.BDOS.<número> (campo id_portafolio)"
}
}
}Líneas de las órdenes de compra de la Tienda Virtual del Estado (acuerdos marco) de una empresa: ítem, cantidad, unidad, precio unitario, total, entidad y fecha. Sirve para comparar precios de compras equivalentes. Filtro de texto por ítem (q).
| Argument | Type | Description |
|---|---|---|
| q | string | Texto del ítem, p. ej. 'archivador' |
| nit* | string | NIT, solo dígitos, sin dígito de verificación |
| desde | string | AAAA-MM-DD |
| hasta | string | AAAA-MM-DD |
| pagina | integer | |
| por_pagina | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nit"
],
"properties": {
"q": {
"type": "string",
"minLength": 3,
"description": "Texto del ítem, p. ej. 'archivador'"
},
"nit": {
"type": "string",
"pattern": "^[0-9]{5,15}$",
"description": "NIT, solo dígitos, sin dígito de verificación"
},
"desde": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "AAAA-MM-DD"
},
"hasta": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "AAAA-MM-DD"
},
"pagina": {
"type": "integer",
"default": 1,
"maximum": 9007199254740991,
"minimum": 1
},
"por_pagina": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
}
}
}Un proceso de SECOP II por su portafolio (CO1.BDOS.n): datos del proceso, lista de proponentes, adjudicatarios (todos, también por lotes) y contratos firmados. unspsc_principal es siempre un código OFICIAL y unspsc_fuente dice de quién: 'oficial_secop2' (el contrato o proceso de SECOP II) u 'oficial_secop1' (lo que SECOP I publica para la constancia: el segmento siempre, la clase cuando la entidad la puso). unspsc_principal_detalle (y unspsc_adicionales_detalle) dan la jerarquía segmento → familia → clase → producto con los nombres de los datos abiertos de SECOP I (CC BY-SA 4.0; los productos no tienen nombre: null); unspsc_catalogo, licencia y origen. unspsc_documentales contiene códigos oficiales del objeto leídos en pliegos definitivos revisados, con URL, SHA256, páginas, fecha y alcance. No identifica un principal ni sustituye unspsc/unspsc_principal. En detalle también va a nivel de portafolio con SU id_proceso. [] significa sin evidencia revisada, no ausencia de códigos. El filtro unspsc sigue consultando el código estructurado, no esta lista documental.
| Argument | Type | Description |
|---|---|---|
| portafolio* | string | Identificador de portafolio de SECOP II, CO1.BDOS.<número> (campo id_portafolio) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"portafolio"
],
"properties": {
"portafolio": {
"type": "string",
"pattern": "^CO1\\.BDOS\\.[0-9]{1,12}$",
"description": "Identificador de portafolio de SECOP II, CO1.BDOS.<número> (campo id_portafolio)"
}
}
}Busca procesos de SECOP II por entidad compradora (NIT) o por código UNSPSC (al menos 4 dígitos), con filtros de departamento, modalidad, estado y fechas. Devuelve presupuesto, valor adjudicado, número de proponentes y adjudicatarios. Para saber qué compra una entidad o quién compite en un tipo de compra. unspsc_principal es siempre un código OFICIAL y unspsc_fuente dice de quién: 'oficial_secop2' (el contrato o proceso de SECOP II) u 'oficial_secop1' (lo que SECOP I publica para la constancia: el segmento siempre, la clase cuando la entidad la puso). unspsc_principal_detalle (y unspsc_adicionales_detalle) dan la jerarquía segmento → familia → clase → producto con los nombres de los datos abiertos de SECOP I (CC BY-SA 4.0; los productos no tienen nombre: null); unspsc_catalogo, licencia y origen. unspsc_documentales contiene códigos oficiales del objeto leídos en pliegos definitivos revisados, con URL, SHA256, páginas, fecha y alcance. No identifica un principal ni sustituye unspsc/unspsc_principal. En detalle también va a nivel de portafolio con SU id_proceso. [] significa sin evidencia revisada, no ausencia de códigos. El filtro unspsc sigue consultando el código estructurado, no esta lista documental.
| Argument | Type | Description |
|---|---|---|
| desde | string | AAAA-MM-DD |
| hasta | string | AAAA-MM-DD |
| estado | string | |
| pagina | integer | |
| unspsc | string | Prefijo UNSPSC de 2 a 8 dígitos |
Procesos de contratación de SECOP II y SECOP I con el plazo de ofertas abierto (cierre desde hoy, hora de Bogotá; nunca vencidos, cancelados ni suspendidos), ordenados por el cierre más próximo, con entidad, modalidad, presupuesto, UNSPSC si consta, estado (y fase en SECOP II), enlace oficial (url) y provenance (fuente_url, capturado_en). Filtra por fuente, departamento, municipio, unspsc, presupuesto_min/max, entidad, modalidad y fechas de cierre. cierre es la FECHA de cierre de ofertas (AAAA-MM-DD, día de Bogotá). SECOP II no publica la hora de cierre en datos abiertos (cierre_hora null): un proceso de SECOP II que cierra hoy puede cerrar a primera hora, confírmalo en url (la ficha oficial). SECOP I sí la publica: cierre_hora en ISO 8601 con −05:00 (America/Bogota; la ficha no escribe la zona) y cierre_utc, y un proceso de SECOP I cuyo cierre ya pasó no sale como abierto. Frecuencia: SECOP II, una foto al día (10:30 UTC, y otra a las 19:30 UTC si la fuente se ha republicado); datos.gov.co publica lo de SECOP II con un día de retraso, así que un proceso publicado hoy sale como pronto mañana (cobertura.foto). SECOP I, la ficha pública de cada proceso en contratos.gov.co, releída cada día si cierra en menos de 72 h y como mucho a los 7 días si no (capturado_en de cada fila). Sin contratación directa en ninguna. fuente: ambas (por defecto en esta herramienta), secop2 o secop1 (la ruta de la API, sin fuente, da solo SECOP II por compatibilidad: esta herramienta manda ambas). Cada fila lleva su fuente y las de las dos tienen los mismos campos (campos_sin_dato dice cuáles no publica cada una). SECOP I está en carga inicial mientras cobertura.secop1.estado sea 'carga_inicial'; la cohorte inicial y las incorporaciones posteriores se separan y exigen el 100 % de primeras lecturas. Con 'incorporaciones_pendientes' también es parcial. El objeto contractual oficial lleva objeto_origen; un nombre oficial ausente no se inventa. El fin es una estimación. El alcance es 'parcial'. En SECOP I, departamento y municipio son los de ejecución, y entidad y entidad_id no encuentran nada (la ficha no publica el NIT). unspsc_documentales contiene códigos oficiales del objeto leídos en pliegos definitivos revisados, con URL, SHA256, páginas, fecha y alcance. No identifica un principal ni sustituye unspsc/unspsc_principal. En detalle también va a nivel de portafolio con SU id_proceso. [] significa sin evidencia revisada, no ausencia de códigos. El filtro unspsc sigue consultando el código estructurado, no esta lista documental.UNSPSC: desde ~15-09-2026 SECOP II publica casi todos los procesos como 'UNSPECIFIED' (unspsc null; cobertura.foto.pct_sin_unspsc da el porcentaje medido): el filtro unspsc solo encuentra los pocos que traen código, y la respuesta lo marca con alcance 'parcial'. SECOP I lo publica hasta la clase (6 dígitos). Para buscar por actividad, filtra mejor por modalidad, entidad, región o presupuesto. Para enterarte de cambios (nuevos, prórrogas, cancelaciones, adendas) usa radicadouno_novedades_procesos con un cursor; el detalle de un proceso de SECOP I (cronograma, documentos), radicadouno_secop1_proceso.
Recorre el grafo de contratación a dos saltos (empresa → entidad pública → otra empresa) y devuelve quién concurre ante los mismos compradores. La similitud está normalizada por el tamaño de cada cartera: sin eso el resultado lo copan las aseguradoras y la papelería, que venden a todas las entidades del país y no compiten con nadie en particular. No mide calidad ni solvencia: mide coincidencia de clientes.
| Argument | Type | Description |
|---|---|---|
| nit* | string | NIT sin dígito de verificación, solo dígitos |
| limite | integer | cuántas empresas devolver |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nit"
],
"properties": {
"nit": {
"type": "string",
"description": "NIT sin dígito de verificación, solo dígitos"
},
"limite": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "cuántas empresas devolver"
}
}
}Totales de contratación de una empresa agrupados por año, UNSPSC (segmento, familia, clase o producto), modalidad, entidad o fuente. Suma solo valores confiables y dice cuántos contratos se excluyeron de la suma y por qué. Úsala para histogramas y preguntas tipo «cuánto contrató cada año». Con por='entidad' agrupa por entidad_id (también las entidades sin NIT de SECOP I, cada una aparte) y da su nombre, el normalizado, el NIT si consta y las escrituras de la fuente; entidad_id filtra por una entidad. entidad_equivalente: la misma entidad con NIT cuando SECOP I la publica sin NIT y se puede acreditar (mismo nombre normalizado, departamento y municipio, un único NIT de entidad en SECOP II para ese nombre y lugar, usado en un solo departamento): {entidad_id, nit, metodo, confianza}; null si no se acredita (varios candidatos, municipio sin definir…). Con agrupar_equivalentes=true y por='entidad', los grupos equivalentes se suman en uno (clave = el entidad_id con NIT; entidad_ids_agrupados dice cuáles). Con por=unspsc, cada grupo lleva unspsc_detalle: su código de 8 dígitos, su nivel real y el nombre de cada nivel (segmento, familia, clase). Agrupa el UNSPSC oficial de SECOP II y el de SECOP I (contratos_unspsc_secop2 y contratos_unspsc_secop1 por grupo) y nunca más fino de lo publicado: un contrato de SECOP I con solo el segmento queda en su segmento.
| Argument | Type | Description |
|---|---|---|
| nit* | string | NIT, solo dígitos, sin dígito de verificación |
| por | string | |
| desde | string | AAAA-MM-DD |
| hasta | string | AAAA-MM-DD |
El último certificado del Registro Único de Proponentes (RUP) de una sociedad que TU cuenta aportó (la carga es por la API: POST /v1/empresa/{nit}/rup con el certificado electrónico de la cámara), leído de su capa de texto y validado: vigencia (inscripción, renovación, publicación en el RUES y firmeza), tamaño, información financiera e indicadores por fecha de corte (liquidez, endeudamiento, cobertura de intereses, rentabilidad del patrimonio y del activo, capital de trabajo), clasificación UNSPSC inscrita y la experiencia separada en propia, en consorcio o unión temporal (con smmlv_atribuible = valor × porcentaje) y de socios. Cada dato lleva la página del certificado. No es dato abierto ni se ha verificado contra la cámara: certificado.fuente_url y el código de verificación sirven para comprobarlo. Solo ve los RUP que aportó la cuenta que llama; nunca datos de personas. Un certificado escaneado no se lee: la carga queda rechazada. Si no hay ninguno, error con la indicación de subirlo.
| Argument | Type | Description |
|---|---|---|
| nit* | string | NIT de la sociedad (9 dígitos, o 10 con el de verificación) |
| pagina | integer | |
| por_pagina | integer | contratos por página |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nit"
],
"properties": {
"nit": {
"type": "string",
"pattern": "^[89][0-9]{8,9}$",
"description": "NIT de la sociedad (9 dígitos, o 10 con el de verificación)"
},
"pagina": {
"type": "integer",
"default": 1,
"maximum": 9007199254740991,
"minimum": 1
},
"por_pagina": {
"type": "integer",
"default": 100,
"maximum": 500,
"minimum": 1,
"description": "contratos por página"
}
}
}Un proceso de SECOP I por número de constancia, leído de su ficha pública en contratos.gov.co (como mucho una vez al día; verificado_en dice cuándo): estado vigente, publicación, cierre de recepción de ofertas con hora y zona (cierre.fecha_hora en America/Bogota, UTC−5, y cierre.utc; zona_publicada=false porque la ficha no la escribe; cierre.criterio dice de qué fila del cronograma sale y nunca se deduce de las fechas del contrato: null si la ficha no lo publica), cronograma e hitos, abierto (Convocado y cierre futuro), documentos (identificador estable, tipo inferido de una lista cerrada: pliego, adenda, cronograma, evaluacion, adjudicacion, acta, otro; versión, hora de publicación; descripción solo si no puede nombrar a una persona), modificaciones que registra la plataforma (con su fecha) y cambios entre lecturas (cierre_cambiado = prórroga vista al releer, estado_cambiado, documento_nuevo, documento_version_nueva, modificacion_publicada; detectado_en es nuestra lectura). Si la constancia no se ha leído nunca, se pide en el acto y la respuesta dice lectura='en_cola' (estado null): vuelve a consultar en unos minutos. Solo modalidades competitivas (nunca contratación directa) y nunca datos de contratistas ni funcionarios. Para listar los procesos abiertos de SECOP I y sus cambios, radicadouno_procesos_abiertos y radicadouno_novedades_procesos (fuente secop1).
| Argument | Type | Description |
|---|---|---|
| constancia* | string | Número de constancia de SECOP I, p. ej. 26-13-14818099 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"constancia"
],
"properties": {
"constancia": {
"type": "string",
"pattern": "^[0-9]{2}-[0-9]{1,2}-[0-9]{1,10}$",
"description": "Número de constancia de SECOP I, p. ej. 26-13-14818099"
}
}
}Indicadores verificables por NIT: presencia física, contratación pública (volumen, clientes, concentración con su mayor cliente), procesos ganados con oferta única, sanciones, compras por acuerdos marco y últimas cifras financieras. NO es un score crediticio (Ley 1266/2008): son hechos con fuente, la interpretación es de quien consulta.
| Argument | Type | Description |
|---|---|---|
| nit* | string | NIT sin dígito de verificación, solo dígitos |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nit"
],
"properties": {
"nit": {
"type": "string",
"description": "NIT sin dígito de verificación, solo dígitos"
}
}
}| string |
| Identificador de portafolio de SECOP II, CO1.BDOS.<número> (campo id_portafolio) |
| solo_vigentes | boolean | true: solo la fila vigente de cada proponente y lote |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"portafolio"
],
"properties": {
"pagina": {
"type": "integer",
"default": 1,
"maximum": 9007199254740991,
"minimum": 1
},
"por_pagina": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"portafolio": {
"type": "string",
"pattern": "^CO1\\.BDOS\\.[0-9]{1,12}$",
"description": "Identificador de portafolio de SECOP II, CO1.BDOS.<número> (campo id_portafolio)"
},
"solo_vigentes": {
"type": "boolean",
"default": false,
"description": "true: solo la fila vigente de cada proponente y lote"
}
}
}| Type |
|---|
| Description |
|---|
| nit* | string | NIT, solo dígitos, sin dígito de verificación |
| desde | string | AAAA-MM-DD |
| hasta | string | AAAA-MM-DD |
| orden | string | |
| fuente | string | |
| pagina | integer | |
| unspsc | string | Prefijo UNSPSC de 2 a 8 dígitos |
| entidad | string | NIT de la entidad compradora |
| entidad_id | string | entidad_id tal como lo devuelven el historial o el resumen por entidad (ent-…) |
| por_pagina | integer | |
| entidad_nombre | string | Parte del nombre de la entidad (SECOP I trae algunas sin NIT, p. ej. Ecopetrol) |
| agrupar_equivalentes | boolean | true: con entidad_id, incluye también sus equivalentes (la entidad sin NIT de SECOP I y la misma con NIT de SECOP II); con por='entidad', los suma en un grupo |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nit"
],
"properties": {
"nit": {
"type": "string",
"pattern": "^[0-9]{5,15}$",
"description": "NIT, solo dígitos, sin dígito de verificación"
},
"desde": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "AAAA-MM-DD"
},
"hasta": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "AAAA-MM-DD"
},
"orden": {
"enum": [
"fecha",
"valor"
],
"type": "string",
"default": "fecha"
},
"fuente": {
"enum": [
"secop1",
"secop2",
"todas"
],
"type": "string",
"default": "todas"
},
"pagina": {
"type": "integer",
"default": 1,
"maximum": 9007199254740991,
"minimum": 1
},
"unspsc": {
"type": "string",
"pattern": "^[0-9]{2,8}$",
"description": "Prefijo UNSPSC de 2 a 8 dígitos"
},
"entidad": {
"type": "string",
"pattern": "^[0-9]{5,15}$",
"description": "NIT de la entidad compradora"
},
"entidad_id": {
"type": "string",
"pattern": "^ent-[0-9a-f]{16}$",
"description": "entidad_id tal como lo devuelven el historial o el resumen por entidad (ent-…)"
},
"por_pagina": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"entidad_nombre": {
"type": "string",
"minLength": 4,
"description": "Parte del nombre de la entidad (SECOP I trae algunas sin NIT, p. ej. Ecopetrol)"
},
"agrupar_equivalentes": {
"type": "boolean",
"default": false,
"description": "true: con entidad_id, incluye también sus equivalentes (la entidad sin NIT de SECOP I y la misma con NIT de SECOP II); con por='entidad', los suma en un grupo"
}
}
}| Argument | Type | Description |
|---|---|---|
| tipo | string | proceso_seleccion (por defecto): sin las solicitudes de información (sondeos) |
| desde | integer | El cursor: siguiente_cursor de la llamada anterior |
| fuente | string | ambas (por defecto en la herramienta; la API sin fuente da solo secop2), secop2 o secop1 |
| unspsc | string | Prefijo UNSPSC de 2 a 8 dígitos |
| entidad | string | NIT de la entidad compradora (solo SECOP II: la ficha de SECOP I no lo publica) |
| novedad | string | Solo un tipo de novedad |
| modalidad | string | Parte del nombre de la modalidad: 'subasta', 'mínima cuantía', 'licitación'… |
| municipio | string | Municipio (SECOP II: de la entidad, a menudo 'No Definido'; SECOP I: de ejecución) |
| entidad_id | string | entidad_id tal como lo devuelven el historial o el resumen por entidad (ent-…) |
| por_pagina | integer | |
| departamento | string | Departamento, sin importar tildes ('bogota' = Distrito Capital): el de la entidad en SECOP II y el de ejecución en SECOP I |
| presupuesto_max | number | Presupuesto máximo en pesos |
| presupuesto_min | number | Presupuesto mínimo en pesos |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"tipo": {
"enum": [
"proceso_seleccion",
"solicitud_informacion",
"todos"
],
"type": "string",
"default": "proceso_seleccion",
"description": "proceso_seleccion (por defecto): sin las solicitudes de información (sondeos)"
},
"desde": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "El cursor: siguiente_cursor de la llamada anterior"
},
"fuente": {
"enum": [
"ambas",
"secop2",
"secop1"
],
"type": "string",
"default": "ambas",
"description": "ambas (por defecto en la herramienta; la API sin fuente da solo secop2), secop2 o secop1"
},
"unspsc": {
"type": "string",
"pattern": "^[0-9]{2,8}$",
"description": "Prefijo UNSPSC de 2 a 8 dígitos"
},
"entidad": {
"type": "string",
"pattern": "^[0-9]{5,15}$",
"description": "NIT de la entidad compradora (solo SECOP II: la ficha de SECOP I no lo publica)"
},
"novedad": {
"enum": [
"nuevo",
"cierre_cambiado",
"estado_cambiado",
"presupuesto_cambiado",
"ya_no_abierto",
"documento_nuevo",
"documento_version_nueva",
"modificacion_publicada"
],
"type": "string",
"description": "Solo un tipo de novedad"
},
"modalidad": {
"type": "string",
"maxLength": 80,
"minLength": 3,
"description": "Parte del nombre de la modalidad: 'subasta', 'mínima cuantía', 'licitación'…"
},
"municipio": {
"type": "string",
"maxLength": 60,
"minLength": 2,
"description": "Municipio (SECOP II: de la entidad, a menudo 'No Definido'; SECOP I: de ejecución)"
},
"entidad_id": {
"type": "string",
"pattern": "^ent-[0-9a-f]{16}$",
"description": "entidad_id tal como lo devuelven el historial o el resumen por entidad (ent-…)"
},
"por_pagina": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"departamento": {
"type": "string",
"maxLength": 60,
"minLength": 2,
"description": "Departamento, sin importar tildes ('bogota' = Distrito Capital): el de la entidad en SECOP II y el de ejecución en SECOP I"
},
"presupuesto_max": {
"type": "number",
"minimum": 0,
"description": "Presupuesto máximo en pesos"
},
"presupuesto_min": {
"type": "number",
"minimum": 0,
"description": "Presupuesto mínimo en pesos"
}
}
}| string |
| pagina | integer |
| entidad | string | NIT de la entidad compradora |
| resultado | string |
| por_pagina | integer |
| incluir_solicitudes_informacion | boolean | true: las solicitudes de información cuentan en por_resultado (como no_aplica) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nit"
],
"properties": {
"nit": {
"type": "string",
"pattern": "^[0-9]{5,15}$",
"description": "NIT, solo dígitos, sin dígito de verificación"
},
"tipo": {
"enum": [
"proceso_seleccion",
"solicitud_informacion",
"sin_dato"
],
"type": "string",
"description": "proceso_seleccion para ver solo licitaciones y demás procesos competitivos"
},
"desde": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "AAAA-MM-DD"
},
"hasta": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "AAAA-MM-DD"
},
"fuente": {
"enum": [
"secop1",
"secop2",
"todas"
],
"type": "string",
"default": "todas"
},
"pagina": {
"type": "integer",
"default": 1,
"maximum": 9007199254740991,
"minimum": 1
},
"entidad": {
"type": "string",
"pattern": "^[0-9]{5,15}$",
"description": "NIT de la entidad compradora"
},
"resultado": {
"enum": [
"ganada",
"perdida",
"desierto",
"cancelado",
"sin_adjudicar",
"sin_dato",
"no_aplica"
],
"type": "string"
},
"por_pagina": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"incluir_solicitudes_informacion": {
"type": "boolean",
"default": false,
"description": "true: las solicitudes de información cuentan en por_resultado (como no_aplica)"
}
}
}| entidad |
| string |
| NIT de la entidad compradora |
| modalidad | string |
| por_pagina | integer |
| departamento | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"desde": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "AAAA-MM-DD"
},
"hasta": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "AAAA-MM-DD"
},
"estado": {
"type": "string"
},
"pagina": {
"type": "integer",
"default": 1,
"maximum": 9007199254740991,
"minimum": 1
},
"unspsc": {
"type": "string",
"pattern": "^[0-9]{2,8}$",
"description": "Prefijo UNSPSC de 2 a 8 dígitos"
},
"entidad": {
"type": "string",
"pattern": "^[0-9]{5,15}$",
"description": "NIT de la entidad compradora"
},
"modalidad": {
"type": "string"
},
"por_pagina": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"departamento": {
"type": "string"
}
}
}| Argument | Type | Description |
|---|---|---|
| tipo | string | proceso_seleccion (por defecto): sin las solicitudes de información (sondeos) |
| orden | string | |
| estado | string | Estado de la fuente: 'Publicado', 'Evaluación' (SECOP II), 'Convocado' (SECOP I)… |
| fuente | string | ambas (por defecto en la herramienta; la API sin fuente da solo secop2), secop2 o secop1 |
| pagina | integer | |
| unspsc | string | Prefijo UNSPSC de 2 a 8 dígitos |
| entidad | string | NIT de la entidad compradora (solo SECOP II: la ficha de SECOP I no lo publica) |
| modalidad | string | Parte del nombre de la modalidad: 'subasta', 'mínima cuantía', 'licitación'… |
| municipio | string | Municipio (SECOP II: de la entidad, a menudo 'No Definido'; SECOP I: de ejecución) |
| entidad_id | string | entidad_id tal como lo devuelven el historial o el resumen por entidad (ent-…) |
| por_pagina | integer | |
| cierre_desde | string | AAAA-MM-DD, desde hoy (nunca antes) |
| cierre_hasta | string | AAAA-MM-DD |
| departamento | string | Departamento, sin importar tildes ('bogota' = Distrito Capital): el de la entidad en SECOP II y el de ejecución en SECOP I |
| presupuesto_max | number | Presupuesto máximo en pesos |
| presupuesto_min | number | Presupuesto mínimo en pesos |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"tipo": {
"enum": [
"proceso_seleccion",
"solicitud_informacion",
"todos"
],
"type": "string",
"default": "proceso_seleccion",
"description": "proceso_seleccion (por defecto): sin las solicitudes de información (sondeos)"
},
"orden": {
"enum": [
"cierre",
"presupuesto",
"publicacion"
],
"type": "string",
"default": "cierre"
},
"estado": {
"type": "string",
"maxLength": 40,
"description": "Estado de la fuente: 'Publicado', 'Evaluación' (SECOP II), 'Convocado' (SECOP I)…"
},
"fuente": {
"enum": [
"ambas",
"secop2",
"secop1"
],
"type": "string",
"default": "ambas",
"description": "ambas (por defecto en la herramienta; la API sin fuente da solo secop2), secop2 o secop1"
},
"pagina": {
"type": "integer",
"default": 1,
"maximum": 9007199254740991,
"minimum": 1
},
"unspsc": {
"type": "string",
"pattern": "^[0-9]{2,8}$",
"description": "Prefijo UNSPSC de 2 a 8 dígitos"
},
"entidad": {
"type": "string",
"pattern": "^[0-9]{5,15}$",
"description": "NIT de la entidad compradora (solo SECOP II: la ficha de SECOP I no lo publica)"
},
"modalidad": {
"type": "string",
"maxLength": 80,
"minLength": 3,
"description": "Parte del nombre de la modalidad: 'subasta', 'mínima cuantía', 'licitación'…"
},
"municipio": {
"type": "string",
"maxLength": 60,
"minLength": 2,
"description": "Municipio (SECOP II: de la entidad, a menudo 'No Definido'; SECOP I: de ejecución)"
},
"entidad_id": {
"type": "string",
"pattern": "^ent-[0-9a-f]{16}$",
"description": "entidad_id tal como lo devuelven el historial o el resumen por entidad (ent-…)"
},
"por_pagina": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"cierre_desde": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "AAAA-MM-DD, desde hoy (nunca antes)"
},
"cierre_hasta": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "AAAA-MM-DD"
},
"departamento": {
"type": "string",
"maxLength": 60,
"minLength": 2,
"description": "Departamento, sin importar tildes ('bogota' = Distrito Capital): el de la entidad en SECOP II y el de ejecución en SECOP I"
},
"presupuesto_max": {
"type": "number",
"minimum": 0,
"description": "Presupuesto máximo en pesos"
},
"presupuesto_min": {
"type": "number",
"minimum": 0,
"description": "Presupuesto mínimo en pesos"
}
}
}| nivel | string |
| fuente | string |
| entidad_id | string | entidad_id tal como lo devuelven el historial o el resumen por entidad (ent-…) |
| agrupar_equivalentes | boolean | true: con entidad_id, incluye también sus equivalentes (la entidad sin NIT de SECOP I y la misma con NIT de SECOP II); con por='entidad', los suma en un grupo |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nit"
],
"properties": {
"nit": {
"type": "string",
"pattern": "^[0-9]{5,15}$",
"description": "NIT, solo dígitos, sin dígito de verificación"
},
"por": {
"enum": [
"anio",
"unspsc",
"modalidad",
"entidad",
"fuente"
],
"type": "string",
"default": "anio"
},
"desde": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "AAAA-MM-DD"
},
"hasta": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "AAAA-MM-DD"
},
"nivel": {
"enum": [
"segmento",
"familia",
"clase",
"producto"
],
"type": "string",
"default": "segmento"
},
"fuente": {
"enum": [
"secop1",
"secop2",
"todas"
],
"type": "string",
"default": "todas"
},
"entidad_id": {
"type": "string",
"pattern": "^ent-[0-9a-f]{16}$",
"description": "entidad_id tal como lo devuelven el historial o el resumen por entidad (ent-…)"
},
"agrupar_equivalentes": {
"type": "boolean",
"default": false,
"description": "true: con entidad_id, incluye también sus equivalentes (la entidad sin NIT de SECOP I y la misma con NIT de SECOP II); con por='entidad', los suma en un grupo"
}
}
}