{
  "openapi": "3.0.1",
  "info": {
    "title": "Colombia Tenders Scraper: SECOP II Licitaciones to Excel",
    "description": "Scrape Colombian public tenders (licitaciones, selección abreviada, mínima cuantía) from SECOP II via the official datos.gov.co open-data API, no key. Filter by keyword, department, city, entity, NIT, modality, value in COP, open deadline. \"Only new\" daily alerts. Excel, CSV, JSON.",
    "version": "1.0",
    "x-build-id": "npT0toyNRU7G5iezn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tenderfeed~colombia-secop-tenders/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tenderfeed-colombia-secop-tenders",
        "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/tenderfeed~colombia-secop-tenders/runs": {
      "post": {
        "operationId": "runs-sync-tenderfeed-colombia-secop-tenders",
        "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/tenderfeed~colombia-secop-tenders/run-sync": {
      "post": {
        "operationId": "run-sync-tenderfeed-colombia-secop-tenders",
        "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": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Words to look for in the process name and description, accent-insensitive, e.g. [\"software\", \"vías\", \"alimentación escolar\"]. Empty = all processes.",
            "items": {
              "type": "string"
            }
          },
          "keywordMode": {
            "title": "Keyword match",
            "enum": [
              "any",
              "all"
            ],
            "type": "string",
            "description": "Match ANY or ALL keywords.",
            "default": "any"
          },
          "modalities": {
            "title": "Modalities (modalidad de contratación)",
            "type": "array",
            "description": "Empty = competitive procedures open to any supplier: Licitación pública (incl. obra pública), Selección abreviada (menor cuantía, subasta inversa), Concurso de méritos, Mínima cuantía and régimen especial / directa con ofertas. Add 'Contratación directa' or 'Contratación régimen especial' for direct awards (mostly individual service contracts).",
            "items": {
              "type": "string",
              "enum": [
                "Licitación pública",
                "Licitación pública Obra Publica",
                "Selección Abreviada de Menor Cuantía",
                "Selección abreviada subasta inversa",
                "Seleccion Abreviada Menor Cuantia Sin Manifestacion Interes",
                "Concurso de méritos abierto",
                "Concurso de méritos con precalificación",
                "Mínima cuantía",
                "Contratación régimen especial (con ofertas)",
                "Contratación Directa (con ofertas)",
                "Licitación Pública Acuerdo Marco de Precios",
                "Enajenación de bienes con sobre cerrado",
                "Enajenación de bienes con subasta",
                "Solicitud de información a los Proveedores",
                "Contratación régimen especial",
                "Contratación directa"
              ]
            }
          },
          "departments": {
            "title": "Departments",
            "type": "array",
            "description": "Buyer department, accent-insensitive, e.g. [\"Antioquia\", \"Bogotá\", \"Valle del Cauca\", \"Atlantico\"]. Empty = all of Colombia. Valid: Amazonas, Antioquia, Arauca, Atlántico, Bolívar, Boyacá, Caldas, Caquetá, Casanare, Cauca, Cesar, Chocó, Córdoba, Cundinamarca, Distrito Capital de Bogotá, Guainía, Guaviare, Huila, La Guajira, Magdalena, Meta, Nariño, Norte de Santander, Putumayo, Quindío, Risaralda, San Andrés, Providencia y Santa Catalina, Sucre, Tolima, Valle del Cauca, Vaupés, Vichada.",
            "items": {
              "type": "string"
            }
          },
          "cities": {
            "title": "Cities (municipios)",
            "type": "array",
            "description": "Exact buyer city names, accent-insensitive, e.g. [\"Medellín\", \"Cali\", \"Barranquilla\"].",
            "items": {
              "type": "string"
            }
          },
          "entityName": {
            "title": "Entity name contains",
            "type": "string",
            "description": "Buyer entity or unit name contains (accent-insensitive), e.g. \"alcaldía\", \"hospital\", \"universidad\"."
          },
          "entityNit": {
            "title": "Entity NIT",
            "type": "string",
            "description": "Only processes of one buyer entity: NIT without check digit, e.g. \"890905211\" (\"890905211-1\" also accepted)."
          },
          "publishedFrom": {
            "title": "Published from",
            "type": "string",
            "description": "YYYY-MM-DD or relative (\"30 days\"). Default: 7 days ago. Newest processes first. The open-data feed lags SECOP II by about 1-2 days."
          },
          "publishedTo": {
            "title": "Published to",
            "type": "string",
            "description": "YYYY-MM-DD. Default: today."
          },
          "onlyOpen": {
            "title": "Only open for offers",
            "type": "boolean",
            "description": "Keep only open, not awarded, not cancelled processes whose offer deadline (fecha de recepción de respuestas) is today or later. Turn off to include closed, awarded and cancelled processes.",
            "default": true
          },
          "minValue": {
            "title": "Minimum value (COP)",
            "minimum": 0,
            "type": "integer",
            "description": "Applied to the base price (precio base) in Colombian pesos."
          },
          "maxValue": {
            "title": "Maximum value (COP)",
            "minimum": 0,
            "type": "integer",
            "description": "Applied to the base price (precio base) in Colombian pesos."
          },
          "includeUnknownValue": {
            "title": "Include processes without a value",
            "type": "boolean",
            "description": "Keep processes that publish no base price when a value filter is set.",
            "default": true
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "0 = no limit. Default 50. SECOP II publishes ~3,000 competitive processes per week (plus ~30,000 direct contracts).",
            "default": 50
          },
          "includeBuyerContacts": {
            "title": "Include named individuals",
            "type": "boolean",
            "description": "Adds person names published by SECOP II: the official who awarded the process (buyerContactName) and the pre-selected supplier before award (proposedSupplier, often a natural person in direct contracting). Off = organization-level data only.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new processes (monitoring mode)",
            "type": "boolean",
            "description": "Remember what earlier runs delivered and return (and charge for) only processes you have not received yet. Ideal for scheduled daily alerts.",
            "default": false
          },
          "monitoringId": {
            "title": "Monitoring ID",
            "type": "string",
            "description": "Name of the watch-list memory used by 'Only new'. Use a different ID per saved search/schedule."
          },
          "includeRawData": {
            "title": "Include raw SECOP II row",
            "type": "boolean",
            "description": "Adds the full datos.gov.co row under `raw` (bigger output). Person names are removed unless named individuals are on.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}