{
  "openapi": "3.0.1",
  "info": {
    "title": "GrantConnect Grant Awards Scraper & Monitor",
    "description": "Scrape and monitor every Australian Government grant award on GrantConnect (grants.gov.au): recipient, ABN, agency, value, purpose, program, location. Server-side filters (keyword, category, ABN, value, dates), delta mode for new, varied and updated awards, ISO dates, numeric AUD. Pay per result.",
    "version": "2.0",
    "x-build-id": "s6lMYynnBXUUj3aFt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/stefano_seggio~australia-grantconnect-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-stefano_seggio-australia-grantconnect-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/stefano_seggio~australia-grantconnect-monitor/runs": {
      "post": {
        "operationId": "runs-sync-stefano_seggio-australia-grantconnect-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/stefano_seggio~australia-grantconnect-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-stefano_seggio-australia-grantconnect-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",
        "properties": {
          "keyword": {
            "title": "Keyword(s)",
            "type": "string",
            "description": "Full-text search over grant title, purpose and activity (also accepts a GA ID such as GA578886). Matching mode below."
          },
          "keywordMatch": {
            "title": "Keyword matching",
            "enum": [
              "AllWord",
              "AnyWord",
              "ExactPhrase"
            ],
            "type": "string",
            "description": "How the keyword(s) must match.",
            "default": "AllWord"
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "GrantConnect's 29 top-level categories. Select several to get their union. The record's own 'category' field shows the finer sub-category label (e.g. 'Medical Research').",
            "items": {
              "type": "string",
              "enum": [
                "381",
                "101",
                "111",
                "121",
                "131",
                "141",
                "151",
                "161",
                "371",
                "171",
                "181",
                "191",
                "201",
                "211",
                "221",
                "231",
                "241",
                "251",
                "261",
                "271",
                "281",
                "291",
                "301",
                "311",
                "321",
                "331",
                "341",
                "351",
                "361"
              ],
              "enumTitles": [
                "Academic Research",
                "Ageing",
                "Agriculture",
                "Arts and Culture",
                "Children, Youth and Youth at Risk",
                "Community Development",
                "Crime, Justice and Legal Issues",
                "Cultural and Linguistic Diversity",
                "Diplomacy Services",
                "Disability",
                "Disaster Relief",
                "Education",
                "Employment and Training",
                "Environment, Energy and Resources",
                "Government and Politics",
                "Health, Wellbeing and Medical Research",
                "Housing and Homelessness",
                "Indigenous",
                "Industry",
                "Information and Communication",
                "International Aid and Development",
                "Local Government",
                "Philanthropy, Voluntarism and Not-for-Profits Infrastructure",
                "Recreation and Sport",
                "Science and Technology",
                "Social Inclusion and Social Justice",
                "Trade and Tourism",
                "Transport and Infrastructure",
                "Veterans and Defence"
              ]
            },
            "default": []
          },
          "agencyNameContains": {
            "title": "Agency name contains",
            "type": "string",
            "description": "Case-insensitive substring match on the awarding agency, e.g. 'Health' or 'Infrastructure'. Applied client-side (GrantConnect's public form has no agency parameter), so combine it with a category, keyword or date window to keep the walk short."
          },
          "recipientName": {
            "title": "Recipient name contains",
            "type": "string",
            "description": "Substring match on the recipient's legal name, e.g. 'Monash University' or 'Regional Express'."
          },
          "recipientAbn": {
            "title": "Recipient ABN",
            "pattern": "^\\s*\\d{2}\\s?\\d{3}\\s?\\d{3}\\s?\\d{3}\\s*$",
            "type": "string",
            "description": "Exact match on the recipient's 11-digit Australian Business Number (spaces optional). Returns every Commonwealth grant that entity has received."
          },
          "minValueAud": {
            "title": "Minimum value (AUD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only awards worth at least this amount. Tip: 1000000 narrows the 360,000-record register to roughly 28,000."
          },
          "maxValueAud": {
            "title": "Maximum value (AUD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only awards worth at most this amount."
          },
          "goId": {
            "title": "Grant Opportunity ID",
            "pattern": "^\\s*[Gg][Oo]\\d+\\s*$",
            "type": "string",
            "description": "All awards made under one Grant Opportunity (funding round), e.g. GO6105."
          },
          "dateType": {
            "title": "Date field for the window",
            "enum": [
              "Publish Date",
              "Approval Date",
              "Start Date",
              "End Date",
              "Current",
              "Closed"
            ],
            "type": "string",
            "description": "Which date the 'from'/'to' window applies to. 'Current' = grants running today and 'Closed' = grants whose term has ended (both ignore the window).",
            "default": "Publish Date"
          },
          "dateFrom": {
            "title": "Date from",
            "type": "string",
            "description": "Absolute (2026-07-01) or relative ('7 days', '3 months', '1 year' back from today, Canberra time). Leave empty for the whole archive (December 2017 onwards)."
          },
          "dateTo": {
            "title": "Date to",
            "type": "string",
            "description": "Absolute or relative upper bound of the window. Leave empty for 'today'."
          },
          "oneOffAdHoc": {
            "title": "One-off / ad hoc grants",
            "enum": [
              "any",
              "yes",
              "no"
            ],
            "type": "string",
            "description": "Ad hoc grants (no competitive round) are the ones probity and integrity teams watch most closely.",
            "default": "any"
          },
          "aggregateGrantAward": {
            "title": "Aggregate grant awards",
            "enum": [
              "any",
              "yes",
              "no"
            ],
            "type": "string",
            "description": "Aggregate awards bundle several recipients into one record ('Multiple').",
            "default": "any"
          },
          "eventTypes": {
            "title": "Event types to deliver",
            "type": "array",
            "description": "NEW_LISTING = a brand-new award; AWARD_VARIATION = a variation/amendment record (value or term changed, e.g. GA270901-V1); UPDATED = an award you already received whose 'Last Updated' stamp moved (delta mode only).",
            "items": {
              "type": "string",
              "enum": [
                "NEW_LISTING",
                "AWARD_VARIATION",
                "UPDATED"
              ],
              "enumTitles": [
                "New awards",
                "Variations / amendments",
                "Updates to known awards"
              ]
            },
            "default": [
              "NEW_LISTING",
              "AWARD_VARIATION",
              "UPDATED"
            ]
          },
          "onlyNew": {
            "title": "Only new / changed since the last run",
            "type": "boolean",
            "description": "Remembers every award it has delivered (per filter set, in a named key-value store) and returns only awards that are new, varied or updated since. The walk stops as soon as it reaches already-known records, so a scheduled run costs a few pages instead of the whole register.",
            "default": false
          },
          "sortBy": {
            "title": "Order",
            "enum": [
              "Last Updated",
              "Publish Date",
              "Relevance"
            ],
            "type": "string",
            "description": "'Last updated' (recommended, and required for reliable monitoring): variations and corrections of old awards keep their original publish date, so only this order surfaces them. 'Relevance' needs a keyword.",
            "default": "Last Updated"
          },
          "deltaStateName": {
            "title": "Delta state name",
            "pattern": "^[A-Za-z0-9-]{1,30}$",
            "type": "string",
            "description": "Optional label for the memory of a monitoring task. Defaults to a fingerprint of your filters, so different schedules never interfere. Set the same name on two tasks to make them share one memory."
          },
          "resetState": {
            "title": "Reset delta memory before this run",
            "type": "boolean",
            "description": "Forget every previously delivered award for this delta state and re-baseline (the run then returns up to 'Max records' most recently updated awards).",
            "default": false
          },
          "maxItems": {
            "title": "Max records per run",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Hard cap on delivered records (and therefore on cost: you pay per record). In delta mode anything beyond the cap is simply delivered by the next run.",
            "default": 100
          },
          "fetchDetail": {
            "title": "Fetch full detail per award",
            "type": "boolean",
            "description": "Opens each award's page (one extra request) for recipient ABN and location, delivery location, purpose, program, Grant Opportunity link, selection process, confidentiality flags and the agency contact. Off = listing-only summary records (cheaper 'result-summary' price).",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel detail requests",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many award pages are fetched at once. GrantConnect tolerates 10 comfortably; 5 keeps a 500-record run under two minutes.",
            "default": 5
          },
          "dateRange": {
            "title": "Legacy recency preset (deprecated - use 'Date from')",
            "pattern": "^(24h|7d|30d)$",
            "type": "string",
            "description": "Kept for tasks created with version 1: '24h', '7d' or '30d' are interpreted as 'Date from'."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}