{
  "openapi": "3.0.1",
  "info": {
    "title": "Gulf Tenders Radar: Oman, UAE, Jordan & Lebanon",
    "description": "Government tenders from Oman, the UAE, Jordan and Lebanon in one GCC and Middle East feed. Covers the Oman Tender Board, UAE federal, Jordan JONEPS and Lebanon PPA. Arabic and English titles, deadlines, days left and English sectors. Oman bid results list each bidder. Monitor mode sends new tenders.",
    "version": "0.4",
    "x-build-id": "TfJ2Q3SMgtcfphZDV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/maliksaid~gulf-tenders-radar/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-maliksaid-gulf-tenders-radar",
        "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/maliksaid~gulf-tenders-radar/runs": {
      "post": {
        "operationId": "runs-sync-maliksaid-gulf-tenders-radar",
        "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/maliksaid~gulf-tenders-radar/run-sync": {
      "post": {
        "operationId": "run-sync-maliksaid-gulf-tenders-radar",
        "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": {
          "sources": {
            "title": "Countries",
            "type": "array",
            "description": "Tender portals to collect from. Leave empty to collect from all of them.",
            "items": {
              "type": "string",
              "enum": [
                "OM",
                "JO",
                "AE",
                "LB"
              ],
              "enumTitles": [
                "Oman - Tender Board",
                "Jordan - JONEPS",
                "UAE - Ministry of Finance (federal)",
                "Lebanon - Public Procurement Authority"
              ]
            },
            "default": [
              "OM",
              "JO",
              "AE",
              "LB"
            ]
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Keep only tenders whose title, agency, category or reference contains at least one keyword. English keywords match whole words, so \"IT\" does not match \"facilities\". Arabic keywords match anywhere in a word and ignore diacritics and alef, ta marbuta and ya variants. Leave empty to keep every tender. Example: software, برمجيات, information technology.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sectors": {
            "title": "Sectors",
            "type": "array",
            "description": "Keep only tenders in these English sectors. The Actor sets the sector from the tender title and the portal category, in Arabic and English. Leave empty to keep every sector.",
            "items": {
              "type": "string",
              "enum": [
                "IT and Telecom",
                "Construction and Works",
                "Healthcare and Medical",
                "Energy and Utilities",
                "Security and Safety",
                "Transport and Vehicles",
                "Facilities and Cleaning",
                "Consulting and Studies",
                "Education and Training",
                "Events, Media and Printing",
                "Office Supplies and Furniture",
                "Food and Catering",
                "Agriculture and Environment",
                "Sales, Leases and Concessions",
                "Other"
              ]
            },
            "default": []
          },
          "agencies": {
            "title": "Issuing agencies",
            "type": "array",
            "description": "Keep only tenders whose issuing agency contains one of these words, in Arabic or English. Example: Ministry of Health, وزارة الصحة. Leave empty to keep every agency.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "onlyOpen": {
            "title": "Only open tenders",
            "type": "boolean",
            "description": "Skip tenders whose closing date has passed. The Oman portal also lists old tenders, back to 2016. Turn this off to receive them too.",
            "default": true
          },
          "closingWithinDays": {
            "title": "Closing within N days",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Keep only open tenders whose deadline is within this many days, counted in the local time of each country. Use 7 for a closing-soon list. 0 turns the filter off. Tenders without a deadline are skipped when the filter is on.",
            "default": 0
          },
          "publishedWithinDays": {
            "title": "Published within N days",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Keep only tenders published in the last N days, counted in the local time of each country. 0 turns the filter off. Tenders without a publish date are kept: Oman's portal does not list one.",
            "default": 0
          },
          "monitorMode": {
            "title": "Monitor mode (only new tenders)",
            "type": "boolean",
            "description": "Return only tenders that earlier monitor-mode runs with the same monitor name did not return. Schedule the Actor daily with this on to get a feed of new tenders.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Name of the memory that monitor mode uses. Use a different name for each separate watch list. Inputs that still send the old field `stateKey` keep working.",
            "default": "default"
          },
          "includeOmanBidResults": {
            "title": "Include Oman bid results",
            "type": "boolean",
            "description": "Also return Oman tenders whose bids were opened recently, with every bidder's company name, offer type, quoted value in OMR and status. Each tender with a bid report costs one extra bid-report event. Works on its own or with the open-tender countries above.",
            "default": false
          },
          "bidResultsDays": {
            "title": "Bid results from the last N days",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "How far back to read Oman bid-opening results. The portal opens about 50 tenders a day, so 7 days is roughly 350 reports and about 15 minutes.",
            "default": 7
          },
          "maxItems": {
            "title": "Maximum tenders",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after saving this many tenders. The default of 100 keeps test runs short and cheap. With several countries, the limit is shared: each country gets an equal part first, and any part a country does not use goes to the others. Oman bid results count as one more part. Set 0 for no limit, for example on a scheduled monitor-mode run. In monitor mode, tenders left over by the limit come in the next run.",
            "default": 100
          },
          "maxPagesPerSource": {
            "title": "Maximum list pages per country",
            "minimum": 0,
            "type": "integer",
            "description": "Limit how many list pages are read from each portal. 0 means all pages. Oman shows 50 tenders per page, Jordan 20 and the UAE 10.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. The portals currently work without a proxy.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}