{
  "openapi": "3.0.1",
  "info": {
    "title": "Development Project Tenders & Procurement Notices Monitor",
    "description": "Invitations for bids, requests for expressions of interest and contract awards from the World Bank's open Procurement Notices dataset (CC BY 4.0) - filter by country (MENA included), notice type, method, keyword and dates; only new notices on a schedule. Not affiliated with the World Bank.",
    "version": "0.1",
    "x-build-id": "K3PdUrlbs0ow5PdiF"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abdulwhab95~development-tenders-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abdulwhab95-development-tenders-monitor",
        "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/abdulwhab95~development-tenders-monitor/runs": {
      "post": {
        "operationId": "runs-sync-abdulwhab95-development-tenders-monitor",
        "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/abdulwhab95~development-tenders-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-abdulwhab95-development-tenders-monitor",
        "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": {
          "countryCodes": {
            "title": "Country codes",
            "type": "array",
            "description": "World Bank project country codes, one per line (for example EG Egypt, JO Jordan, MA Morocco, LB Lebanon, TN Tunisia, IQ Iraq, DJ Djibouti, RY Yemen, GZ West Bank and Gaza, PK Pakistan). Note Yemen is RY and West Bank and Gaza is GZ. Leave empty for all countries.",
            "items": {
              "type": "string"
            }
          },
          "regions": {
            "title": "Regions",
            "type": "array",
            "description": "World Bank regions. MENA notices are under 'Mid East, North Africa, Afghanistan, Pakistan'.",
            "items": {
              "type": "string",
              "enum": [
                "Mid East,North Africa,Afg,Pak",
                "Middle East And North Africa",
                "Eastern And Southern Africa",
                "Western And Central Africa",
                "South Asia",
                "Latin America And Caribbean",
                "Europe And Central Asia",
                "East Asia And Pacific"
              ],
              "enumTitles": [
                "Middle East, North Africa, Afghanistan, Pakistan",
                "Middle East and North Africa (older notices)",
                "Eastern and Southern Africa",
                "Western and Central Africa",
                "South Asia",
                "Latin America and Caribbean",
                "Europe and Central Asia",
                "East Asia and Pacific"
              ]
            }
          },
          "noticeTypes": {
            "title": "Notice types",
            "type": "array",
            "description": "Leave empty for all types.",
            "items": {
              "type": "string",
              "enum": [
                "Invitation for Bids",
                "Request for Expression of Interest",
                "Contract Award",
                "General Procurement Notice",
                "Invitation for Prequalification"
              ]
            }
          },
          "procurementGroups": {
            "title": "Procurement groups",
            "type": "array",
            "description": "Goods, works, consultant services or non-consulting services. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "GO",
                "CW",
                "CS",
                "NC"
              ],
              "enumTitles": [
                "Goods",
                "Works",
                "Consultant services",
                "Non-consulting services"
              ]
            }
          },
          "procurementMethods": {
            "title": "Procurement method codes",
            "type": "array",
            "description": "Method codes, one per line - for example RFB (Request for Bids), RFQ (Request for Quotations), QCBS (Quality and Cost-Based Selection), CQS, LCS, INDV (Individual Consultant Selection), DIR (Direct Selection). Leave empty for all.",
            "items": {
              "type": "string"
            }
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Full-text search across the notice, for example 'solar' or 'water'."
          },
          "daysBack": {
            "title": "Published in the last N days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Used when 'Published from' is empty. 0 means no date limit (newest first, up to the result and scan caps).",
            "default": 7
          },
          "publishedFrom": {
            "title": "Published from",
            "type": "string",
            "description": "YYYY-MM-DD or 'today'. Overrides 'Published in the last N days'."
          },
          "publishedTo": {
            "title": "Published to",
            "type": "string",
            "description": "YYYY-MM-DD or 'today'."
          },
          "deadlineFrom": {
            "title": "Deadline from",
            "type": "string",
            "description": "YYYY-MM-DD or 'today'. Set 'today' to keep only notices still open for submissions. Notices without a deadline (awards) are left out when a deadline filter is set."
          },
          "deadlineTo": {
            "title": "Deadline to",
            "type": "string",
            "description": "YYYY-MM-DD or 'today'."
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Stop after delivering this many notices.",
            "default": 100
          },
          "includeDescription": {
            "title": "Include notice text",
            "type": "boolean",
            "description": "Plain-text notice body (first 2,000 characters), with e-mail addresses, phone numbers and the contact person's name removed. Contract award notices never carry it, because their text lists bidders who may be individuals.",
            "default": true
          },
          "onlyNew": {
            "title": "Only new notices since the last run",
            "type": "boolean",
            "description": "Deliver only notices not delivered before (changeType NEW), or re-published under a higher version (UPDATED). The first run delivers everything as NEW.",
            "default": false
          },
          "stateStoreName": {
            "title": "State store name",
            "type": "string",
            "description": "Named key-value store that remembers delivered notice ids for 'Only new notices'. Use a different name for each separate monitor.",
            "default": "worldbank-procurement-state"
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}