{
  "openapi": "3.0.1",
  "info": {
    "title": "Government Tenders & Public Procurement Tracker",
    "description": "Government tenders, procurement opportunities and contract awards from UK Find a Tender, Contracts Finder, EU TED, AusTender and SAM.gov in one schema: keywords, CPV, NAICS and UNSPSC codes, deadlines, values in one currency and new-only alerts. Official feeds only.",
    "version": "0.1",
    "x-build-id": "vsB5Z7D4LF0w61top"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cleanpull~public-tenders-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cleanpull-public-tenders-tracker",
        "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/cleanpull~public-tenders-tracker/runs": {
      "post": {
        "operationId": "runs-sync-cleanpull-public-tenders-tracker",
        "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/cleanpull~public-tenders-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-cleanpull-public-tenders-tracker",
        "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": "Sources",
            "minItems": 1,
            "type": "array",
            "description": "Official sources to search: UK Find a Tender and Contracts Finder, EU TED, AusTender and SAM.gov. All public, official feeds.",
            "items": {
              "type": "string",
              "enum": [
                "uk-fts",
                "uk-cf",
                "eu-ted",
                "au-austender",
                "us-sam"
              ],
              "enumTitles": [
                "UK Find a Tender",
                "UK Contracts Finder",
                "EU TED (all EU and EEA countries)",
                "AusTender (Australia)",
                "US SAM.gov (federal)"
              ]
            },
            "default": [
              "uk-fts",
              "uk-cf",
              "eu-ted",
              "au-austender",
              "us-sam"
            ]
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Optional. Keep notices whose title or description contains any of these words or phrases (\"cyber security\", \"cleaning\"). TED searches its full text on its side.",
            "items": {
              "type": "string"
            }
          },
          "topics": {
            "title": "Topics",
            "type": "array",
            "description": "Optional. Topics matched through each source's own codes (CPV in the UK and EU, NAICS and PSC in the US, UNSPSC in Australia), so one topic finds the same kind of work everywhere: IT services, Software, Cyber security, Cloud and hosting, Data and analytics, Telecommunications, Computer hardware, Construction, Architecture and engineering, Facilities management, Cleaning, Security services, Catering and food, Consulting, Legal services, Accounting and audit, Financial and insurance, Marketing and advertising, Printing and publishing, Translation, Recruitment and HR, Training and education, Healthcare services, Medical equipment, Research and development, Transport and logistics, Vehicles, Energy and utilities, Environmental and waste, Furniture, Office supplies, Defence and security equipment, Real estate, Agriculture and forestry, Repair and maintenance, Water and sewerage.",
            "items": {
              "type": "string"
            }
          },
          "cpvCodes": {
            "title": "CPV codes",
            "type": "array",
            "description": "Optional. CPV codes or prefixes (72000000, 7221): UK and EU notices.",
            "items": {
              "type": "string"
            }
          },
          "naicsCodes": {
            "title": "NAICS codes",
            "type": "array",
            "description": "Optional. NAICS codes or prefixes (541512, 5415): US notices.",
            "items": {
              "type": "string"
            }
          },
          "unspscCodes": {
            "title": "UNSPSC codes",
            "type": "array",
            "description": "Optional. UNSPSC codes or prefixes (81112000, 8111): Australian notices.",
            "items": {
              "type": "string"
            }
          },
          "pscCodes": {
            "title": "PSC codes",
            "type": "array",
            "description": "Optional. US Product and Service Codes or prefixes (D3, R4).",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Optional. Buyer countries as two-letter codes (DE, FR, IE, GB, US, AU…). For TED this narrows the search to those EU and EEA countries.",
            "items": {
              "type": "string",
              "pattern": "^\\s*([A-Za-z]{2})?\\s*$"
            }
          },
          "buyerKeywords": {
            "title": "Buyer contains",
            "type": "array",
            "description": "Optional. Keep notices whose buyer name contains any of these (\"NHS\", \"Department of Defense\", \"Bundeswehr\").",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Optional. Leave out notices whose title or description contains any of these.",
            "items": {
              "type": "string"
            }
          },
          "stages": {
            "title": "Stages",
            "minItems": 1,
            "type": "array",
            "description": "Which notices to return. Open for bids is what bid teams want; add Awarded for award intelligence (who won, at what value).",
            "items": {
              "type": "string",
              "enum": [
                "planning",
                "tender",
                "award",
                "contract",
                "cancelled"
              ],
              "enumTitles": [
                "Planned (pipeline, prior information, sources sought)",
                "Open for bids",
                "Awarded",
                "Contract signed",
                "Cancelled"
              ]
            },
            "default": [
              "tender"
            ]
          },
          "publishedWithinDays": {
            "title": "Published in the last (days)",
            "minimum": 1,
            "maximum": 90,
            "type": "integer",
            "description": "Notices published in this many days, today included.",
            "default": 7
          },
          "publishedFrom": {
            "title": "Published from",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Optional. A start date (YYYY-MM-DD) instead of the number of days."
          },
          "openOnly": {
            "title": "Open tenders only",
            "type": "boolean",
            "description": "Leave out tenders whose deadline has passed.",
            "default": true
          },
          "deadlineWithinDays": {
            "title": "Closing within (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Optional. Only tenders closing within this many days."
          },
          "minDaysToDeadline": {
            "title": "At least days to bid",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Optional. Leave out tenders closing sooner than this, too soon to bid."
          },
          "minValue": {
            "title": "Minimum value",
            "minimum": 0,
            "type": "number",
            "description": "Optional. In the currency below, converted at the ECB rate of the day."
          },
          "maxValue": {
            "title": "Maximum value",
            "minimum": 0,
            "type": "number",
            "description": "Optional. In the currency below."
          },
          "valueCurrency": {
            "title": "Currency",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "AUD",
              "CHF",
              "SEK",
              "NOK",
              "DKK",
              "PLN",
              "CZK",
              "HUF",
              "RON",
              "CAD",
              "JPY"
            ],
            "type": "string",
            "description": "Values are converted to this currency (valueConverted) at the European Central Bank's daily rate; value filters use it.",
            "default": "USD"
          },
          "includeNoValue": {
            "title": "Keep notices without a value",
            "type": "boolean",
            "description": "Many notices publish no value. With a value filter, keep them (on) or leave them out (off).",
            "default": true
          },
          "smeOnly": {
            "title": "Suitable for SMEs only",
            "type": "boolean",
            "description": "Only notices marked suitable for small businesses (UK SME flag, US small-business set-asides).",
            "default": false
          },
          "setAsides": {
            "title": "US set-asides",
            "type": "array",
            "description": "Optional. US set-aside types to keep (\"Small Business\", \"8(a)\", \"SDVOSB\", \"HUBZone\", \"Women-Owned\").",
            "items": {
              "type": "string"
            }
          },
          "monitorMode": {
            "title": "Changes only (monitor)",
            "type": "boolean",
            "description": "Return only what changed since the last run under the same name: new notices, updated deadlines or values, cancellations, and awards of tenders you were watching. Schedule it daily.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Runs with the same name share one memory.",
            "default": "default"
          },
          "changeTypes": {
            "title": "Changes to report",
            "minItems": 1,
            "type": "array",
            "description": "Which changes count.",
            "items": {
              "type": "string",
              "enum": [
                "new",
                "updated",
                "cancelled",
                "awarded"
              ],
              "enumTitles": [
                "New notices",
                "Updated (deadline, value, title)",
                "Cancelled",
                "Awarded (a watched tender)"
              ]
            },
            "default": [
              "new",
              "updated",
              "cancelled",
              "awarded"
            ]
          },
          "outputFormat": {
            "title": "Output format",
            "enum": [
              "notices",
              "flat"
            ],
            "type": "string",
            "description": "How results are shaped.",
            "default": "notices"
          },
          "includeDigest": {
            "title": "Digest",
            "type": "boolean",
            "description": "One summary record per run: counts by source and stage, tenders closing within 7 days, the largest notices, recent awards, top buyers and topics. For an email or Slack message.",
            "default": true
          },
          "descriptionMaxLength": {
            "title": "Description length",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Characters of description to keep (0 for none). AusTender descriptions are always an excerpt.",
            "default": 2000
          },
          "includeRaw": {
            "title": "Include the source record",
            "type": "boolean",
            "description": "Also return each source's original record (OCDS, TED fields, SAM.gov row) for anything not in the schema.",
            "default": false
          },
          "maxItems": {
            "title": "Max notices",
            "minimum": 1,
            "type": "integer",
            "description": "Optional. Stop after this many notices in the run."
          },
          "maxNoticesPerSource": {
            "title": "Max notices read per source",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "A safety limit on how many notices are read from each source before filtering.",
            "default": 5000
          },
          "fields": {
            "title": "Only these fields",
            "type": "array",
            "description": "Optional. Keep only these fields, for example [\"title\", \"buyer.name\", \"deadline\", \"url\"].",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}