{
  "openapi": "3.0.1",
  "info": {
    "title": "UK Tenders & Awards – Find a Tender, Contracts Finder, TED",
    "description": "UK government tenders and contract awards from Find a Tender, Contracts Finder and EU TED in one feed. See which public contracts expire in the next 12 months, who holds them, and each UK winner's Companies House number. First 25 rows free per run. Official APIs, no personal data.",
    "version": "0.1",
    "x-build-id": "U95yMD6bI7bCsZrqC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/notational_bush~uk-eu-contract-awards/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-notational_bush-uk-eu-contract-awards",
        "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/notational_bush~uk-eu-contract-awards/runs": {
      "post": {
        "operationId": "runs-sync-notational_bush-uk-eu-contract-awards",
        "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/notational_bush~uk-eu-contract-awards/run-sync": {
      "post": {
        "operationId": "run-sync-notational_bush-uk-eu-contract-awards",
        "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": {
          "noticeType": {
            "title": "Notice type",
            "enum": [
              "open",
              "awards",
              "both"
            ],
            "type": "string",
            "description": "Open tenders (one row per lot), contract awards (one row per award and supplier), or both.",
            "default": "awards"
          },
          "sources": {
            "title": "Sources",
            "type": "array",
            "description": "Official free APIs to query. Add TED (EU) for European notices; it makes runs a little slower.",
            "items": {
              "type": "string",
              "enum": [
                "findATender",
                "contractsFinder",
                "ted"
              ],
              "enumTitles": [
                "Find a Tender (UK)",
                "Contracts Finder (UK)",
                "TED (EU)"
              ]
            },
            "default": [
              "findATender",
              "contractsFinder"
            ]
          },
          "publishedFrom": {
            "title": "From date",
            "type": "string",
            "description": "Award date (awards) or publication date (open). Defaults to 90 days before the end date. The range can be up to 366 days."
          },
          "publishedTo": {
            "title": "To date",
            "type": "string",
            "description": "Defaults to today."
          },
          "openOnly": {
            "title": "Only tenders still open",
            "type": "boolean",
            "description": "Open mode: drop notices whose tender deadline has passed.",
            "default": true
          },
          "cpvCodes": {
            "title": "CPV codes",
            "maxItems": 50,
            "type": "array",
            "description": "CPV prefixes, prefix match. Examples: 72 = IT services, 45 = construction, 85 = health and social care, 79410000 = business consultancy.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "maxItems": 50,
            "type": "array",
            "description": "Keep notices whose title or description contains any keyword (case-insensitive).",
            "items": {
              "type": "string"
            }
          },
          "tedCountries": {
            "title": "TED buyer countries",
            "maxItems": 50,
            "type": "array",
            "description": "ISO-2 buyer country codes for TED, e.g. DE, FR, IE. Empty means all.",
            "items": {
              "type": "string"
            }
          },
          "minValue": {
            "title": "Minimum value",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum award value or estimated value, in the notice's own currency."
          },
          "expiringWithinMonths": {
            "title": "Expiring within (months)",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "Awards only: keep contracts whose initial term ends within this many months (e.g. 12 = up for renewal in the next year). Awards with an unknown end date are dropped when this is set. Clear it to get all awards."
          },
          "maxItems": {
            "title": "Max rows",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Total rows across all sources. The first 25 rows of every run are free; after that you are charged per row.",
            "default": 25
          },
          "linkedNoticeLookups": {
            "title": "Find a Tender: extra lookups for contract dates",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "Many Find a Tender award notices publish no contract period. When the notice text doesn't state one either, the Actor can read it from an earlier notice of the same procurement (official record API). Each lookup adds about 10 seconds because Find a Tender is rate-limited. 0 turns this off.",
            "default": 10
          },
          "companiesHouseApiKey": {
            "title": "Companies House API key (optional)",
            "type": "string",
            "description": "Your own free Companies House API key. Used only as a fallback for dissolved or renamed suppliers. Matching works without it."
          },
          "canary": {
            "title": "Canary mode",
            "type": "boolean",
            "description": "Internal monitoring only; leave off.",
            "default": false
          },
          "failOnPurpose": {
            "title": "Fail on purpose",
            "type": "boolean",
            "description": "Internal alert testing only; leave off.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}