{
  "openapi": "3.0.1",
  "info": {
    "title": "SECOP II Colombia Procurement Scraper - 9M+ Public Contracts",
    "description": "Scrape Colombia's SECOP II public procurement data from datos.gov.co: entity, NIT, process, base price, modality, status and awarded supplier with value. Filter by entity, department, status or date. Export CSV, Excel, JSON. No login or API key. 9.2M+ records.",
    "version": "0.1",
    "x-build-id": "VlUXzgnuoyXfcPUKp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~secop-colombia-procurement-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-secop-colombia-procurement-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/recordsdata~secop-colombia-procurement-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-secop-colombia-procurement-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/recordsdata~secop-colombia-procurement-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-secop-colombia-procurement-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "dataset": {
            "title": "Dataset",
            "enum": [
              "processes",
              "contracts"
            ],
            "type": "string",
            "description": "Which SECOP II dataset to search. \"Procurement processes\" (default) returns the tenders and direct awards published by public entities. \"Signed contracts\" returns the contracts, with supplier, value, payments, supervisor and funding. Filters that exist for only one dataset (marked in their description) return a clear input error if used with the other one.",
            "default": "processes"
          },
          "keywords": {
            "title": "Keywords (optional)",
            "type": "string",
            "description": "Full-text search over the whole record (name, description, object, entity, supplier). All words must appear, for example \"hospital ambulancia\". Combine with the filters below.",
            "default": ""
          },
          "entityNameContains": {
            "title": "Entity name contains (optional)",
            "type": "string",
            "description": "Case-insensitive substring match on the contracting entity name, for example \"universidad\" or \"alcaldia\". Leave empty to search all entities.",
            "default": ""
          },
          "entityNit": {
            "title": "Entity NIT (optional)",
            "type": "string",
            "description": "Tax ID (NIT) of the contracting entity, digits only, for example 890399029. Dots and a trailing check digit such as \"-1\" are accepted.",
            "default": ""
          },
          "department": {
            "title": "Department (optional)",
            "type": "string",
            "description": "Colombian department name as published by SECOP II, for example \"Antioquia\" or \"Distrito Capital de Bogotá\". Case and accents are ignored. Leave empty for all departments.",
            "default": ""
          },
          "processStatus": {
            "title": "Process status (optional, processes only)",
            "type": "string",
            "description": "Process status as published by SECOP II. Values: Publicado, Seleccionado, Evaluación, Cancelado, Abierto, Borrador, Aprobado, En aprobación, Suspendido. Case and accents are ignored. Leave empty for all statuses. Processes dataset only.",
            "default": ""
          },
          "contractStatus": {
            "title": "Contract status (optional, contracts only)",
            "enum": [
              "ANY",
              "En ejecución",
              "Cerrado",
              "Modificado",
              "terminado",
              "Aprobado",
              "enviado Proveedor",
              "cedido",
              "En aprobación",
              "Suspendido",
              "Prorrogado",
              "Cancelado",
              "Borrador"
            ],
            "type": "string",
            "description": "Contract status as published by SECOP II. Contracts dataset only.",
            "default": "ANY"
          },
          "phase": {
            "title": "Process phase (optional, processes only)",
            "enum": [
              "ANY",
              "Presentación de oferta",
              "Fase de ofertas",
              "Presentación de observaciones",
              "Manifestación de interés (Menor Cuantía)",
              "Fase de Selección (Presentación de ofertas)",
              "Clarification submission",
              "Estimate Phase",
              "Pré-Calificación de competidores",
              "Proceso de ofertas",
              "Selección de ofertas (borrador)",
              "Fase de Concurso"
            ],
            "type": "string",
            "description": "Phase the process is in, as published. Processes dataset only.",
            "default": "ANY"
          },
          "contractingModality": {
            "title": "Contracting modality (optional)",
            "enum": [
              "ANY",
              "Contratación directa",
              "Contratación régimen especial",
              "Mínima cuantía",
              "Contratación Directa (con ofertas)",
              "Selección Abreviada de Menor Cuantía",
              "Selección abreviada subasta inversa",
              "Contratación régimen especial (con ofertas)",
              "Concurso de méritos abierto",
              "Licitación pública",
              "Licitación pública Obra Publica",
              "Seleccion Abreviada Menor Cuantia Sin Manifestacion Interes",
              "Licitación Pública Acuerdo Marco de Precios",
              "Enajenación de bienes con sobre cerrado",
              "Enajenación de bienes con subasta",
              "Concurso de méritos con precalificación",
              "Solicitud de información a los Proveedores",
              "Subasta de prueba"
            ],
            "type": "string",
            "description": "How the entity buys: direct contracting, public tender, minimum amount, special regime and so on. Both datasets.",
            "default": "ANY"
          },
          "contractType": {
            "title": "Contract type (optional)",
            "enum": [
              "ANY",
              "Prestación de servicios",
              "Decreto 092 de 2017",
              "Suministros",
              "Otro",
              "Compraventa",
              "Obra",
              "Arrendamiento de inmuebles",
              "Seguros",
              "Interventoría",
              "Consultoría",
              "Comodato",
              "Acuerdo Marco de Precios",
              "Arrendamiento de muebles",
              "Servicios financieros",
              "Operaciones de Crédito Público",
              "Concesión",
              "Venta muebles",
              "Asociación Público Privada",
              "Negocio fiduciario",
              "Venta inmuebles",
              "Comisión",
              "Acuerdo de cooperación",
              "Empréstito"
            ],
            "type": "string",
            "description": "Type of contract: services, supplies, works, lease and so on. Both datasets.",
            "default": "ANY"
          },
          "supplierName": {
            "title": "Supplier name contains (optional)",
            "type": "string",
            "description": "Case-insensitive substring match on the awarded supplier name. Contracts dataset: every contract has one. Processes dataset: only awarded processes carry a supplier. Individual contractors appear under the name the dataset publishes.",
            "default": ""
          },
          "supplierNit": {
            "title": "Supplier NIT or document (optional)",
            "type": "string",
            "description": "Tax ID or document number of the awarded supplier, digits only, for example 900113756. Dots and a trailing check digit are accepted.",
            "default": ""
          },
          "dateFrom": {
            "title": "From date (optional)",
            "type": "string",
            "description": "Processes: published on or after this date. Contracts: signed on or after this date. Format YYYY-MM-DD, for example 2026-01-01. Leave empty for no lower bound."
          },
          "dateTo": {
            "title": "To date (optional)",
            "type": "string",
            "description": "Processes: published on or before this date. Contracts: signed on or before this date. Format YYYY-MM-DD, for example 2026-06-30. Leave empty for no upper bound."
          },
          "minBasePrice": {
            "title": "Min base price in COP (optional, processes only)",
            "minimum": 0,
            "type": "integer",
            "description": "Only processes whose published base price is at least this many Colombian pesos. Processes dataset only."
          },
          "maxBasePrice": {
            "title": "Max base price in COP (optional, processes only)",
            "minimum": 0,
            "type": "integer",
            "description": "Only processes whose published base price is at most this many Colombian pesos. Processes dataset only."
          },
          "minContractValue": {
            "title": "Min contract value in COP (optional, contracts only)",
            "minimum": 0,
            "type": "integer",
            "description": "Only contracts worth at least this many Colombian pesos. Contracts dataset only."
          },
          "maxContractValue": {
            "title": "Max contract value in COP (optional, contracts only)",
            "minimum": 0,
            "type": "integer",
            "description": "Only contracts worth at most this many Colombian pesos. Contracts dataset only."
          },
          "awardedOnly": {
            "title": "Only awarded processes (processes only)",
            "type": "boolean",
            "description": "Return only processes that already have a supplier awarded. Processes dataset only.",
            "default": false
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "DEFAULT",
              "DATE_DESC",
              "DATE_ASC",
              "VALUE_DESC",
              "VALUE_ASC"
            ],
            "type": "string",
            "description": "DEFAULT keeps the source order (stable, fastest). DATE sorts by publication date (processes) or signature date (contracts); rows without a date are left out. VALUE sorts by base price (processes) or contract value (contracts); on very wide searches sorting can be slow.",
            "default": "DEFAULT"
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of records to return (each one is billed as one result for processes). The datasets hold millions of rows, so use at least one filter. Defaults to 10 so an empty input stays cheap. Free plan is limited to 10.",
            "default": 10
          },
          "whereClause": {
            "title": "Advanced: SoQL where clause (optional)",
            "type": "string",
            "description": "Extra SoQL condition added to the query with AND, using the source column names of the chosen dataset, for example estado_del_procedimiento = 'Publicado' AND precio_base > 5000000. Leave empty if you do not know SoQL.",
            "default": ""
          },
          "appToken": {
            "title": "Advanced: datos.gov.co app token (optional)",
            "type": "string",
            "description": "Your own free Socrata app token from datos.gov.co, sent as X-App-Token for a higher rate limit on large runs. Not required. An invalid token returns an input error."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}