{
  "openapi": "3.0.1",
  "info": {
    "title": "Government Tenders & Contracts API - EU, UK, US & Canada",
    "description": "Bid opportunities, solicitations, request for quotation and contract awards from EU TED, UK Find a Tender, Contracts Finder, US SAM.gov and CanadaBuys. Filter by keyword and country. Monitor mode returns new notices for tender alerts.",
    "version": "0.2",
    "x-build-id": "NbJ1hSF894W5ZQEi1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/practicalmodules~eu-uk-tenders/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-practicalmodules-eu-uk-tenders",
        "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/practicalmodules~eu-uk-tenders/runs": {
      "post": {
        "operationId": "runs-sync-practicalmodules-eu-uk-tenders",
        "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/practicalmodules~eu-uk-tenders/run-sync": {
      "post": {
        "operationId": "run-sync-practicalmodules-eu-uk-tenders",
        "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": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Return notices that mention any of these words in the title or description, e.g. \"software\", \"cleaning\", \"solar\". Leave empty for all notices.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "2-letter country codes of the buyer, e.g. DE, FR, IE, GB, US, CA. Leave empty for all EU/EEA countries, the UK, the US and Canada.",
            "items": {
              "type": "string"
            }
          },
          "cpvCodes": {
            "title": "CPV categories (EU & UK)",
            "type": "array",
            "description": "Common Procurement Vocabulary codes or prefixes for EU and UK notices. Sub-categories are included, e.g. \"72\" = all IT services, \"45\" = construction work, \"79341000\" = advertising services. If you set CPV but no NAICS codes, US notices are skipped. Canadian notices are skipped whenever any CPV or NAICS code is set, because CanadaBuys classifies by GSIN/UNSPSC instead.",
            "items": {
              "type": "string"
            }
          },
          "naicsCodes": {
            "title": "NAICS codes (US)",
            "type": "array",
            "description": "NAICS industry codes or prefixes for US (SAM.gov) notices, e.g. \"5415\" = computer systems design, \"236\" = building construction, \"561720\" = janitorial services. If you set NAICS but no CPV codes, EU/UK notices are skipped. Canadian notices are skipped whenever any CPV or NAICS code is set, because CanadaBuys classifies by GSIN/UNSPSC instead.",
            "items": {
              "type": "string"
            }
          },
          "noticeTypes": {
            "title": "Notice type",
            "enum": [
              "opportunities",
              "awards",
              "all"
            ],
            "type": "string",
            "description": "Opportunities are open calls for bids. Awards show who won past contracts and for how much.",
            "default": "opportunities"
          },
          "publishedWithinDays": {
            "title": "Published within the last N days",
            "minimum": 1,
            "maximum": 90,
            "type": "integer",
            "description": "How far back to search. For daily monitoring, use 2 together with \"Only new notices\".",
            "default": 3
          },
          "onlyOpenDeadlines": {
            "title": "Only notices still open for bids",
            "type": "boolean",
            "description": "Skip opportunities whose submission deadline has already passed.",
            "default": true
          },
          "minValue": {
            "title": "Minimum estimated value",
            "minimum": 0,
            "type": "integer",
            "description": "Skip notices below this value, in the notice's own currency (EUR, GBP, USD, PLN…). Notices without a published value are skipped when this is set. US opportunities rarely publish a value, but US awards do."
          },
          "onlyNew": {
            "title": "Only new notices (monitor mode)",
            "type": "boolean",
            "description": "Remember what earlier runs with the same filters returned and deliver only notices you haven't seen. Ideal for a daily schedule - you only pay for new notices.",
            "default": false
          },
          "sources": {
            "title": "Sources",
            "type": "array",
            "description": "Which portals to search.",
            "items": {
              "type": "string",
              "enum": [
                "ted",
                "uk-fts",
                "uk-cf",
                "us-sam",
                "ca-canadabuys"
              ],
              "enumTitles": [
                "TED - EU Tenders Electronic Daily",
                "UK Find a Tender (above threshold)",
                "UK Contracts Finder (lower value)",
                "US SAM.gov (federal contract opportunities)",
                "Canada CanadaBuys (federal tenders and awards)"
              ]
            },
            "default": [
              "ted",
              "uk-fts",
              "uk-cf",
              "us-sam",
              "ca-canadabuys"
            ]
          },
          "language": {
            "title": "Preferred language for EU titles",
            "type": "string",
            "description": "TED publishes titles in all EU languages. 2-letter code, e.g. en, de, fr.",
            "default": "en"
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Stop after this many notices. You pay per notice delivered.",
            "default": 100
          },
          "fitPreferredKeywords": {
            "title": "Fit score: preferred keywords (optional)",
            "type": "array",
            "description": "Nice-to-have words that make a notice a stronger fit, e.g. \"cloud\", \"construction\". Separate from the required \"Keywords\" filter above - this only affects the fitScore, not which notices are returned. Setting this (or either field below) turns on fitScore, fitReason and recommendedAction on every item.",
            "items": {
              "type": "string"
            }
          },
          "fitMinValue": {
            "title": "Fit score: minimum value (optional)",
            "minimum": 0,
            "type": "integer",
            "description": "Contract value you'd consider a strong fit, in the notice's own currency. Notices with no published value get a note that value could not be checked."
          },
          "fitMinDaysUntilDeadline": {
            "title": "Fit score: minimum days until deadline (optional)",
            "minimum": 0,
            "type": "integer",
            "description": "How many days' notice you need to put together a response. Notices with fewer days left score lower."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}