{
  "openapi": "3.0.1",
  "info": {
    "title": "Internshala Jobs Scraper & Internships Monitor",
    "description": "Scrape Internshala jobs and internships with salary, stipend, skills, public applicants and employer hiring history. Monitor new and changed listings with field-level changes, pay and applicant deltas, monthly pay comparisons and deadline status. Pay per event plus platform usage.",
    "version": "1.0",
    "x-build-id": "ZBmQtp1zNgf9ky6O9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~internshala-jobs-internships-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-internshala-jobs-internships-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/khadinakbar~internshala-jobs-internships-monitor/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-internshala-jobs-internships-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/khadinakbar~internshala-jobs-internships-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-internshala-jobs-internships-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": {
          "mode": {
            "title": "Scrape or monitor",
            "enum": [
              "scrape",
              "monitor"
            ],
            "type": "string",
            "description": "Choose a snapshot scrape or incremental monitor. Scrape returns all matching postings within the caps. Monitor emits new and changed postings against a persistent baseline. Keep watchId and filters stable between monitoring runs.",
            "default": "scrape"
          },
          "listingType": {
            "title": "Listing type",
            "enum": [
              "both",
              "jobs",
              "internships"
            ],
            "type": "string",
            "description": "Choose jobs, internships, or both. Both shares the result budget between boards. Each record identifies its own listing type. A maxResults of one can return only one type.",
            "default": "both"
          },
          "searchQuery": {
            "title": "Search keyword",
            "type": "string",
            "description": "Search public Internshala keyword result pages. Use a role or skill such as python or digital marketing. Internshala controls keyword matching. Explicit startUrls take precedence over this setting.",
            "default": ""
          },
          "startUrls": {
            "title": "Public search or posting URLs",
            "maxItems": 10,
            "type": "array",
            "description": "Supply up to ten public Internshala search or singular detail URLs. Explicit URLs replace generated keyword searches. HTTPS URLs without query parameters are accepted. Account, application, API and plural details routes are rejected.",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "title": "Public Internshala URL",
                  "type": "string",
                  "description": "Public HTTPS search or singular detail posting URL."
                }
              },
              "required": [
                "url"
              ]
            },
            "default": []
          },
          "location": {
            "title": "Location contains",
            "type": "string",
            "description": "Filter published location names locally. Matching ignores case and checks whether any location contains this text. Remote-only postings can have no matching city. Coverage is limited to the pages scanned.",
            "default": ""
          },
          "workFromHome": {
            "title": "Work from home only",
            "type": "boolean",
            "description": "Keep listings marked work from home. This is a local filter over scanned listings. Hybrid listings can also carry this flag if their posting URL labels them as work from home. Set false to include all work arrangements.",
            "default": false
          },
          "includeDetails": {
            "title": "Fetch full posting details",
            "type": "boolean",
            "description": "Fetch each matching public posting for its complete description. Details include published deadlines, openings, skills, perks and eligibility. This adds one request per candidate and runs more slowly. Failed detail pages are reported and never billed as full results.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum returned listings",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Cap returned and billable listings at this number. Allowed values are 1 to 500. Both boards share this cap. Read the current Pricing tab and set an Apify run spending cap to bound event charges.",
            "default": 20
          },
          "maxPages": {
            "title": "Maximum pages per search URL",
            "minimum": 1,
            "maximum": 15,
            "type": "integer",
            "description": "Scan at most this many pages per search URL. Allowed values are 1 to 15. Local filters and unchanged monitoring records can reduce returned counts. A page-limited scan cannot establish that a listing has closed.",
            "default": 2
          },
          "minCompensation": {
            "title": "Minimum published compensation (INR)",
            "minimum": 0,
            "maximum": 100000000,
            "type": "number",
            "description": "Keep listings whose published lower compensation bound meets this amount. Zero disables the filter. Job amounts are usually annual and internship amounts may be monthly or lump sum. This filter compares original amounts without converting periods.",
            "default": 0
          },
          "watchId": {
            "title": "Monitor watch identifier",
            "maxLength": 80,
            "type": "string",
            "description": "Name a persistent monitor baseline. Repeated monitoring runs with identical watchId and filters reuse actor-owned storage in your Apify account. Different filters create separate baselines automatically. Run one occurrence of a watch at a time.",
            "default": "default"
          },
          "stateStoreId": {
            "title": "Optional monitor state store",
            "type": "string",
            "description": "Select an existing key-value store to hold monitoring state. Leaving this blank creates or reuses an actor-owned store scoped to your account and watch. The Actor requests read and write access only to the selected resource. Avoid running multiple overlapping occurrences of the same watch."
          },
          "emitInitial": {
            "title": "Return initial monitor listings",
            "type": "boolean",
            "description": "Emit first-seen postings when a watch begins. Set false to establish a quiet initial baseline without listing charges. Subsequent runs emit only new or materially changed postings. Baselines contain fingerprints and timestamps rather than full posting descriptions.",
            "default": true
          },
          "partTime": {
            "title": "Part-time only",
            "type": "boolean",
            "description": "Keep listings carrying this published hiring signal. This is a local filter over scanned records. Increase maxPages when matching listings are sparse. False includes all listings.",
            "default": false
          },
          "withJobOffer": {
            "title": "Internships with job offer only",
            "type": "boolean",
            "description": "Keep listings carrying this published hiring signal. This is a local filter over scanned records. Increase maxPages when matching listings are sparse. False includes all listings.",
            "default": false
          },
          "earlyApplicant": {
            "title": "Early applicant only",
            "type": "boolean",
            "description": "Keep listings carrying this published hiring signal. This is a local filter over scanned records. Increase maxPages when matching listings are sparse. False includes all listings.",
            "default": false
          },
          "companyContains": {
            "title": "Company name contains",
            "type": "string",
            "description": "Keep company names containing this text. Matching ignores case. This is a local filter over scanned postings. Empty text disables this filter.",
            "default": ""
          },
          "requiredSkills": {
            "title": "Required skills",
            "maxItems": 20,
            "type": "array",
            "description": "All requested skills must appear in the published skill list. Matching ignores case. Supply at most twenty terms. Coverage is limited to scanned pages.",
            "items": {
              "type": "string",
              "maxLength": 100
            },
            "default": []
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "maxItems": 20,
            "type": "array",
            "description": "Exclude listings when title, company name or description contains any supplied term. Matching ignores case. Supply at most twenty terms. Coverage is limited to scanned pages.",
            "items": {
              "type": "string",
              "maxLength": 100
            },
            "default": []
          },
          "minMonthlyCompensation": {
            "title": "Minimum comparable monthly pay (INR)",
            "minimum": 0,
            "maximum": 100000000,
            "type": "number",
            "description": "Filter by monthly-equivalent published compensation. Annual amounts are divided by twelve and monthly amounts are unchanged. Weekly, daily, lump-sum and unknown periods remain unconverted and do not match a positive threshold. Zero disables the filter.",
            "default": 0
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}