{
  "openapi": "3.0.1",
  "info": {
    "title": "Internshala Jobs Scraper: Applicants per Opening & Hiring Data",
    "description": "Scrape public Internshala internship and job listings with verified filters. Extract the applicants-per-opening ratio no competitor computes, employer hiring history, and application counts. Filter by keyword, city, type, and compensation. Emit change-only feeds on recurring runs.",
    "version": "0.4",
    "x-build-id": "034CZnve6EaJ4xYVb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~internshala-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-internshala-scraper",
        "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/getascraper~internshala-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-internshala-scraper",
        "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/getascraper~internshala-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-internshala-scraper",
        "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": [
          "proxyConfiguration"
        ],
        "properties": {
          "mode": {
            "title": "What to scrape",
            "enum": [
              "internships",
              "jobs"
            ],
            "type": "string",
            "description": "Choose public internship listings or public job listings.",
            "default": "internships"
          },
          "startUrls": {
            "title": "Public listing URLs (optional)",
            "type": "array",
            "description": "Public Internshala internships, jobs, or fresher-jobs listing pages. These URLs replace automatic source URL construction, but verifiable search filters below still apply. Query parameters, fragments, detail pages, login pages, and non-Internshala URLs are rejected. Pagination follows each page's public Next link.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "keyword": {
            "title": "Role or keyword",
            "type": "string",
            "description": "Search public title, company, summary, and skill text. With automatic sources, this also selects Internshala's keyword results page.",
            "default": ""
          },
          "locations": {
            "title": "Cities",
            "type": "array",
            "description": "Only keep listings whose public location contains one of these cities. Multiple cities create separate source pages when the URL pattern supports it. Work-from-home does not automatically match a city.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Internship category",
            "type": "string",
            "description": "Select an Internshala internship category source, for example 'Computer Science' or 'Marketing'. Supported only in internships mode and cannot be combined with startUrls.",
            "default": ""
          },
          "workFromHome": {
            "title": "Work from home only",
            "type": "boolean",
            "description": "Only keep listings explicitly marked as work from home.",
            "default": false
          },
          "partTime": {
            "title": "Part-time only",
            "type": "boolean",
            "description": "Only keep listings explicitly marked as part time.",
            "default": false
          },
          "datePosted": {
            "title": "Posted within",
            "enum": [
              "all",
              "24h",
              "3d",
              "7d",
              "30d"
            ],
            "type": "string",
            "description": "Filter using the public relative posting age shown on the listing card. Records without a parseable age do not pass a selected window.",
            "default": "all"
          },
          "specialFilters": {
            "title": "Verifiable badges",
            "type": "array",
            "description": "Only keep listings carrying every selected public card badge.",
            "items": {
              "type": "string",
              "enum": [
                "actively_hiring",
                "early_applicant",
                "job_offer"
              ],
              "enumTitles": [
                "Actively hiring",
                "Early applicant",
                "Job offer after internship"
              ]
            },
            "default": []
          },
          "minStipend": {
            "title": "Minimum monthly stipend (INR)",
            "minimum": 0,
            "maximum": 200000,
            "type": "integer",
            "description": "Only keep internships whose published minimum monthly stipend is at least this amount. Unpaid or undisclosed stipends do not pass a positive minimum.",
            "default": 0
          },
          "minSalary": {
            "title": "Minimum annual salary (INR)",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Only keep jobs whose published minimum annual salary is at least this amount. Undisclosed salaries do not pass a positive minimum.",
            "default": 0
          },
          "maxDurationMonths": {
            "title": "Maximum internship duration",
            "minimum": 0,
            "maximum": 24,
            "type": "integer",
            "description": "Only keep listings with a published duration at or below this number of months. 0 disables the filter.",
            "default": 0
          },
          "maxExperienceYears": {
            "title": "Maximum required experience",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Only keep jobs whose published minimum experience requirement is at or below this number of years. 0 disables the filter.",
            "default": 0
          },
          "includeDetails": {
            "title": "Fetch public detail pages",
            "type": "boolean",
            "description": "Request each selected public detail page for description, eligibility, perks, openings, application deadline, applicant count, employer hiring history, and exact posted date when available. Core listing output is retained with detailsFetched=false if a detail request fails.",
            "default": false
          },
          "monitoringMode": {
            "title": "Recurring monitoring mode",
            "enum": [
              "off",
              "new_only",
              "new_and_changed",
              "all_with_status"
            ],
            "type": "string",
            "description": "Off emits all selected listings. Monitoring modes compare stable listing fingerprints with prior runs in a persistent named store. The first successful monitor run treats all selected listings as new.",
            "default": "off"
          },
          "monitoringStoreName": {
            "title": "Monitoring store name",
            "pattern": "^[a-z0-9][a-z0-9-]{0,62}$",
            "type": "string",
            "description": "Persistent named key-value store shared by recurring runs. Change this to isolate environments or workflows.",
            "default": "internshala-monitor-state"
          },
          "monitorStateKey": {
            "title": "Monitoring state key",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,255}$",
            "type": "string",
            "description": "Use 'auto' to derive a deterministic key from the effective source, filters, and detail setting. Set an explicit key to control which recurring runs share history.",
            "default": "auto"
          },
          "maxResults": {
            "title": "Maximum matching listings",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Maximum number of listings to return in this run. There is no unlimited option — pick the highest number your schedule can comfortably finish. Monitoring can emit fewer records because unchanged candidates may be suppressed.",
            "default": 25
          },
          "sortBy": {
            "title": "Sort collected results",
            "enum": [
              "relevance",
              "newest"
            ],
            "type": "string",
            "description": "Keep source relevance order or sort the collected matching window by the public relative posting age. Records with an unknown age sort last.",
            "default": "relevance"
          },
          "maxConcurrency": {
            "title": "Requests at once",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum parallel public page requests.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional Apify proxy configuration for public page requests.",
            "default": {
              "useApifyProxy": true
            }
          },
          "debugLogging": {
            "title": "Detailed logging",
            "type": "boolean",
            "description": "Enable additional page and parser diagnostics.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}