{
  "openapi": "3.0.1",
  "info": {
    "title": "Public Tenders Scraper: UK, EU TED, Australia & US Procurement",
    "description": "Government tenders and contract awards from UK Find a Tender + Contracts Finder, EU TED, AusTender and US Grants.gov / SAM.gov in one clean schema. Filter by keyword, CPV/UNSPSC/NAICS, amount, country and status. Only-new mode for daily alerts. Official open APIs only.",
    "version": "0.1",
    "x-build-id": "l3QKm0K01ABPhzBja"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/latamdatatools~global-public-tenders-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-latamdatatools-global-public-tenders-monitor",
        "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/latamdatatools~global-public-tenders-monitor/runs": {
      "post": {
        "operationId": "runs-sync-latamdatatools-global-public-tenders-monitor",
        "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/latamdatatools~global-public-tenders-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-latamdatatools-global-public-tenders-monitor",
        "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",
        "required": [
          "sources"
        ],
        "properties": {
          "sources": {
            "title": "Countries / sources",
            "type": "array",
            "description": "Official open-data APIs to search. AusTender only publishes awarded contracts (use status \"Awarded\" or \"All\"). SAM.gov needs your own free API key (field below).",
            "items": {
              "type": "string",
              "enum": [
                "uk-fts",
                "uk-contracts-finder",
                "eu-ted",
                "au-austender",
                "us-grants",
                "us-sam"
              ],
              "enumTitles": [
                "UK - Find a Tender Service (above threshold)",
                "UK - Contracts Finder (below threshold, England)",
                "EU - TED (all EU/EEA countries)",
                "Australia - AusTender (awarded contracts)",
                "US - Grants.gov (federal grants)",
                "US - SAM.gov contract opportunities (needs your API key)"
              ]
            },
            "default": [
              "uk-fts",
              "uk-contracts-finder",
              "eu-ted",
              "us-grants"
            ]
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "A notice is kept if ANY keyword appears in its title, description, buyer or category (case and accent insensitive). Leave empty to get everything. TED titles are in English but descriptions stay in the original language, so add translations (e.g. \"software\", \"logiciel\") or use CPV codes.",
            "items": {
              "type": "string"
            }
          },
          "status": {
            "title": "Notice status",
            "enum": [
              "open",
              "open-and-planned",
              "awarded",
              "all"
            ],
            "type": "string",
            "description": "\"Open\" = calls for tenders still accepting bids (closing date not passed). \"Awarded\" = contract award notices with winners and values.",
            "default": "open"
          },
          "daysBack": {
            "title": "Days back",
            "minimum": 0,
            "maximum": 91,
            "type": "integer",
            "description": "Notices published in the last N days (0 = today only). Ignored when \"Date from\" is set, and on \"only new\" runs after the first one.",
            "default": 2
          },
          "dateFrom": {
            "title": "Date from (optional)",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Publication date from, YYYY-MM-DD. Maximum range 92 days per run."
          },
          "dateTo": {
            "title": "Date to (optional)",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Publication date to, YYYY-MM-DD. Default: today."
          },
          "onlyNew": {
            "title": "Only new notices since the last run (daily alerts)",
            "type": "boolean",
            "description": "Remembers which notices were already delivered (in a named key-value store in your account) and returns only new ones. Combine with an Apify Schedule for daily email/Slack/webhook alerts. You are only charged for new notices.",
            "default": false
          },
          "stateKey": {
            "title": "Alert name",
            "type": "string",
            "description": "Use a different name for each saved search when you run several alerts with \"only new\".",
            "default": "default"
          },
          "cpvCodes": {
            "title": "CPV codes (UK + EU)",
            "type": "array",
            "description": "Optional. Common Procurement Vocabulary codes, matched as prefixes: \"72000000\" (IT services) also matches 72212000. Applies to UK and TED.",
            "items": {
              "type": "string"
            }
          },
          "unspscCodes": {
            "title": "UNSPSC codes (Australia)",
            "type": "array",
            "description": "Optional. UNSPSC codes, matched as prefixes (\"43000000\" = IT and telecom). Applies to AusTender.",
            "items": {
              "type": "string"
            }
          },
          "naicsCodes": {
            "title": "NAICS codes (SAM.gov)",
            "type": "array",
            "description": "Optional. NAICS codes, matched as prefixes (\"5415\" = computer systems design). Applies to SAM.gov.",
            "items": {
              "type": "string"
            }
          },
          "euCountries": {
            "title": "EU countries (TED)",
            "type": "array",
            "description": "Optional. Buyer countries for TED as ISO codes, e.g. DE, FR, ES, IE, NL. Empty = all.",
            "items": {
              "type": "string"
            }
          },
          "minAmount": {
            "title": "Minimum amount",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Estimated (or awarded) value, in the currency below. Values in other currencies are converted with ECB reference rates."
          },
          "maxAmount": {
            "title": "Maximum amount",
            "minimum": 0,
            "type": "integer",
            "description": "Optional."
          },
          "amountCurrency": {
            "title": "Currency of the amount filter",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "AUD"
            ],
            "type": "string",
            "description": "Currency of the minimum and maximum amount.",
            "default": "USD"
          },
          "includeWithoutAmount": {
            "title": "Keep notices without a published amount",
            "type": "boolean",
            "description": "Many notices do not publish a value. When an amount filter is set, keep them (true) or drop them (false).",
            "default": true
          },
          "maxItems": {
            "title": "Max notices",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Stop after this many notices in total (you pay per notice in the results).",
            "default": 200
          },
          "maxItemsPerSource": {
            "title": "Max notices per source",
            "minimum": 0,
            "type": "integer",
            "description": "Optional cap per source so one big source does not use the whole limit. 0 = no cap.",
            "default": 0
          },
          "maxPagesPerSource": {
            "title": "Max API pages per source",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Safety limit (100 notices per page) for wide searches without keywords.",
            "default": 50
          },
          "samApiKey": {
            "title": "Your SAM.gov API key (only for SAM.gov)",
            "type": "string",
            "description": "Free public API key from your SAM.gov account (Account Details > Public API Key). Non-federal keys have a small daily request quota; the Actor uses up to 1,000 results per request to save it. See the README."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}