{
  "openapi": "3.0.1",
  "info": {
    "title": "India District Notices — Tenders, Recruitment & Announcements",
    "description": "Tenders, recruitment and announcements from the official websites of India's 748 districts, by state and district: title, date, PDF, district, state. Keyword filters, daily only-new alerts, AI summaries in English of Hindi and regional notices. From $3 per 1,000 notices.",
    "version": "0.1",
    "x-build-id": "4HVr7c2hyOKfLqAAg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tacps126~india-district-notices/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tacps126-india-district-notices",
        "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/tacps126~india-district-notices/runs": {
      "post": {
        "operationId": "runs-sync-tacps126-india-district-notices",
        "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/tacps126~india-district-notices/run-sync": {
      "post": {
        "operationId": "run-sync-tacps126-india-district-notices",
        "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": {
          "states": {
            "title": "States / union territories",
            "type": "array",
            "description": "Every district of these states is read (up to 120 districts per run). Pick from the list or type names (Bihar, Kerala) or ISO codes (IN-UP).",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "IN-AN",
                "IN-AP",
                "IN-AR",
                "IN-AS",
                "IN-BR",
                "IN-CH",
                "IN-CG",
                "IN-DH",
                "IN-DL",
                "IN-GA",
                "IN-GJ",
                "IN-HR",
                "IN-HP",
                "IN-JK",
                "IN-JH",
                "IN-KA",
                "IN-KL",
                "IN-LA",
                "IN-LD",
                "IN-MP",
                "IN-MH",
                "IN-MN",
                "IN-ML",
                "IN-MZ",
                "IN-NL",
                "IN-OD",
                "IN-PY",
                "IN-PB",
                "IN-RJ",
                "IN-SK",
                "IN-TN",
                "IN-TS",
                "IN-TR",
                "IN-UP",
                "IN-UK",
                "IN-WB"
              ],
              "enumTitles": [
                "Andaman and Nicobar Islands",
                "Andhra Pradesh",
                "Arunachal Pradesh",
                "Assam",
                "Bihar",
                "Chandigarh",
                "Chhattisgarh",
                "Dadra and Nagar Haveli and Daman and Diu",
                "Delhi",
                "Goa",
                "Gujarat",
                "Haryana",
                "Himachal Pradesh",
                "Jammu and Kashmir",
                "Jharkhand",
                "Karnataka",
                "Kerala",
                "Ladakh",
                "Lakshadweep",
                "Madhya Pradesh",
                "Maharashtra",
                "Manipur",
                "Meghalaya",
                "Mizoram",
                "Nagaland",
                "Odisha",
                "Puducherry",
                "Punjab",
                "Rajasthan",
                "Sikkim",
                "Tamil Nadu",
                "Telangana",
                "Tripura",
                "Uttar Pradesh",
                "Uttarakhand",
                "West Bengal"
              ]
            }
          },
          "districts": {
            "title": "Districts",
            "type": "array",
            "description": "Only these districts (e.g. Lucknow, Pune, Patna). Leave empty for every district of the chosen states. Misspelled names get a suggestion.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Notice lists to read on each district website.",
            "items": {
              "type": "string",
              "enum": [
                "tenders",
                "recruitment",
                "announcements"
              ],
              "enumTitles": [
                "Tenders",
                "Recruitment",
                "Announcements"
              ]
            },
            "default": [
              "tenders"
            ]
          },
          "postedWithinDays": {
            "title": "Dated within the last N days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "0 = any date.",
            "default": 30
          },
          "includeArchive": {
            "title": "Include recent archive",
            "type": "boolean",
            "description": "Also read each category's archive (past notices, newest first), not only notices still in force.",
            "default": true
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Whole words matched on the notice title (English or the state language), e.g. road, construction, nurse.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Leave out notices whose title contains any of these.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max notices",
            "minimum": 1,
            "type": "integer",
            "description": "Most notices returned (newest first).",
            "default": 500
          },
          "aiInsights": {
            "title": "AI insights",
            "type": "boolean",
            "description": "Add an `insight` to each notice: a plain-language summary (in your language, whatever the notice language), what it is about, the last date, and what to do. With a profile, also a 0-100 fit score.",
            "default": false
          },
          "aiProfile": {
            "title": "Your profile (for the fit score)",
            "type": "string",
            "description": "Who you are and what you look for, e.g. \"Civil contractor in Bihar registered for road and building works up to ₹2 crore\"."
          },
          "aiLanguage": {
            "title": "Insight language",
            "type": "string",
            "description": "Insights are written in this language, whatever the source language.",
            "default": "English"
          },
          "maxInsights": {
            "title": "Max insights per run",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Insights are added to the first N notices (newest first).",
            "default": 25
          },
          "aiProvider": {
            "title": "AI provider",
            "enum": [
              "apify",
              "anthropic",
              "openai",
              "gemini",
              "openrouter",
              "groq",
              "mistral",
              "deepseek",
              "compatible"
            ],
            "type": "string",
            "description": "Which AI does the analysis. Apify needs no key: the model runs through Apify's OpenRouter proxy and is billed to your Apify account. Any other provider uses your own key and bills you there.",
            "default": "apify"
          },
          "aiApiKey": {
            "title": "AI API key",
            "type": "string",
            "description": "Your own key for the provider above (not needed for Apify). Sent only to that provider, never stored."
          },
          "aiModel": {
            "title": "AI model",
            "type": "string",
            "description": "Model name. Apify: an OpenRouter id like anthropic/claude-sonnet-… or google/gemini-… (default: the newest Claude Haiku listed, a light model since it runs once per result). Anthropic: default claude-opus-5-5. Others: required."
          },
          "aiBaseUrl": {
            "title": "API base URL",
            "type": "string",
            "description": "Only for \"Other OpenAI-compatible API\", e.g. http://localhost:11434/v1 for Ollama."
          },
          "onlyNew": {
            "title": "Only new notices",
            "type": "boolean",
            "description": "Schedule the Actor (daily) and each run returns only notices earlier runs didn't deliver.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional name for the “only new” history, so several monitors can run side by side."
          },
          "delivery": {
            "title": "Send results to Slack, Discord, a webhook or Google Sheets",
            "type": "object",
            "description": "Webhook: {\"webhookUrl\": \"https://…\", \"format\": \"json\" | \"slack\" | \"discord\", \"onlyWhenResults\": true, \"includeItems\": 10}. Google Sheets: {\"spreadsheetId\": \"<id from the sheet URL>\", \"sheetName\": \"Sheet1\"} plus the service account key below; share the sheet with the service account's e-mail first. Leave empty to only save results in the dataset."
          },
          "googleServiceAccountJson": {
            "title": "Google service account key (for Sheets)",
            "type": "string",
            "description": "Only for Google Sheets delivery: paste the service account's JSON key. Stored encrypted; the account sees only sheets you share with it."
          },
          "tenantId": {
            "title": "Tenant ID",
            "type": "string",
            "description": "Optional label used to keep separate histories for different clients or teams."
          },
          "debug": {
            "title": "Debug",
            "type": "boolean",
            "description": "Save extra diagnostics with the run (for support requests).",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}