{
  "openapi": "3.0.1",
  "info": {
    "title": "GeM India Tenders Scraper",
    "description": "Search India's Government e-Marketplace (GeM) bids: bid number, items, quantity, ministry, department, start and end dates, status and the bid document link. Filter by keyword, ministry, organisation, state, type and end date; optional EMD, estimated value and organisation details.",
    "version": "0.1",
    "x-build-id": "SxpmFHJbGNdsuZQTA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/barefoot_grade~gem-tenders-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-barefoot_grade-gem-tenders-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/barefoot_grade~gem-tenders-scraper/runs": {
      "post": {
        "operationId": "runs-sync-barefoot_grade-gem-tenders-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/barefoot_grade~gem-tenders-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-barefoot_grade-gem-tenders-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": {
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Text searched across the bid (items, bid number, buyer), as in the keyword box on the GeM all-bids page, e.g. 'laptop' or 'CCTV'. 3 to 100 characters. GeM matches loosely: 'Ministry of Railways' as a keyword finds about 31,000 open bids, against about 1,300 with the Ministry filter.",
            "default": ""
          },
          "keywordMatch": {
            "title": "Keyword match",
            "enum": [
              "contains",
              "exact"
            ],
            "type": "string",
            "description": "'Contains' is GeM's default full-text search; 'Exact' asks for the exact phrase.",
            "default": "contains"
          },
          "status": {
            "title": "Status",
            "enum": [
              "open",
              "cancelled",
              "results",
              "technicalEvaluation",
              "financialEvaluation",
              "awarded"
            ],
            "type": "string",
            "description": "Which bids to read. 'Open' (accepting offers) is the usual choice for alerts; the result stages cover bids already closed.",
            "default": "open"
          },
          "bidType": {
            "title": "Bid type",
            "enum": [
              "all",
              "product",
              "service",
              "bidToRA",
              "customProduct",
              "boq",
              "rateContract",
              "globalTender",
              "limitedTender",
              "singleTender"
            ],
            "type": "string",
            "description": "GeM's 'By Type' filter.",
            "default": "all"
          },
          "highValueOnly": {
            "title": "High-value bids only",
            "type": "boolean",
            "description": "Only bids whose buyer declared an estimated value of Rs 2 crore or more.",
            "default": false
          },
          "bidEndFrom": {
            "title": "Bid end date from",
            "type": "string",
            "description": "Only bids closing on or after this date (India time), YYYY-MM-DD.",
            "default": ""
          },
          "bidEndTo": {
            "title": "Bid end date to",
            "type": "string",
            "description": "Only bids closing on or before this date (India time), YYYY-MM-DD.",
            "default": ""
          },
          "startedWithinDays": {
            "title": "Started in the last N days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Only bids published (bid start date) in the last N days, counting today in India time. Handy for daily alerts. Do not combine with 'Started from'."
          },
          "startedFrom": {
            "title": "Started from",
            "type": "string",
            "description": "Earliest bid start date, YYYY-MM-DD (inclusive).",
            "default": ""
          },
          "startedTo": {
            "title": "Started to",
            "type": "string",
            "description": "Latest bid start date, YYYY-MM-DD (inclusive).",
            "default": ""
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "default",
              "endingSoonest",
              "endingLatest",
              "newest",
              "oldest"
            ],
            "type": "string",
            "description": "Order of the results. 'Default' is GeM's own order for the chosen status (open bids closing soonest first), or newest first when a start-date filter is set.",
            "default": "default"
          },
          "ministry": {
            "title": "Ministry",
            "type": "string",
            "description": "Central ministry of the buyer, e.g. 'Ministry of Railways' or 'railways' (any unique part of the name). Uses GeM's advanced search, which covers open bids only and cannot be combined with keyword, bid type, status or sort.",
            "default": ""
          },
          "buyerState": {
            "title": "Buyer state",
            "type": "string",
            "description": "State government buyer, e.g. 'Karnataka'. Use ministry or buyer state, not both. Open bids only.",
            "default": ""
          },
          "organization": {
            "title": "Organisation",
            "type": "string",
            "description": "Organisation under the ministry or state, e.g. 'Central Railway'. Needs a ministry or buyer state.",
            "default": ""
          },
          "department": {
            "title": "Department",
            "type": "string",
            "description": "Department under the organisation. Needs an organisation.",
            "default": ""
          },
          "consigneeState": {
            "title": "Consignee state",
            "type": "string",
            "description": "State where the goods or services are delivered, e.g. 'Maharashtra'. Open bids only; cannot be combined with the ministry filters.",
            "default": ""
          },
          "consigneeCity": {
            "title": "Consignee city",
            "type": "string",
            "description": "Delivery city within the consignee state, e.g. 'Pune'.",
            "default": ""
          },
          "bidNumber": {
            "title": "Bid number",
            "type": "string",
            "description": "One bid or RA by its number, e.g. 'GEM/2026/B/8123845'. Searched in open, result and cancelled bids.",
            "default": ""
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Stop after this many bids. With 'Include details' on, at most 750 bids per run.",
            "default": 100
          },
          "includeDetails": {
            "title": "Include details",
            "type": "boolean",
            "description": "Also read each bid's document (PDF): organisation and office, bid opening time, offer validity, estimated bid value, EMD and ePBG, minimum turnover, experience and past-performance criteria, type of bid and evaluation method. Slower: one 100-180 KB document per bid.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "GeM only accepts connections from India, so the default is Apify residential proxy in India. Datacenter proxy and non-Indian exits are refused.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "IN"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}