{
  "openapi": "3.0.1",
  "info": {
    "title": "Internshala Scraper API - Internships & Jobs in India",
    "description": "Scrape Internshala, India's biggest internship and fresher-job board: role, company, city, stipend with an honesty flag (range, fixed or unpaid), duration, apply-by date, openings, exact posted date, work-from-home flag and skills. No login. At $0.34 per 1,000 postings, the lowest price on Apify.",
    "version": "0.1",
    "x-build-id": "HgFN96OcgA4R2EXBH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dami_studio~internshala-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dami_studio-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/dami_studio~internshala-scraper/runs": {
      "post": {
        "operationId": "runs-sync-dami_studio-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/dami_studio~internshala-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-dami_studio-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",
        "properties": {
          "searchQueries": {
            "title": "Keywords",
            "type": "array",
            "description": "One or more searches, exactly as you would type them into Internshala's search box: a skill (\"python\"), a role (\"graphic design\"), or a company name (\"Infosys\"). Each keyword is walked separately, so [\"python\", \"data science\"] runs two searches. Leave empty to take everything that matches the filters below.",
            "items": {
              "type": "string"
            }
          },
          "listing": {
            "title": "What to scrape",
            "enum": [
              "internships",
              "jobs",
              "both"
            ],
            "type": "string",
            "description": "Internshala runs two boards. Internships (7,007 live on 2026-08-08) are short placements with a monthly stipend. Jobs (8,663 live) are full-time fresher and early-career roles with an annual salary. \"Both\" walks the two in turn and tags every row with a \"type\" field.",
            "default": "internships"
          },
          "categories": {
            "title": "Category",
            "type": "array",
            "description": "Internshala's own categories, written the way the site writes them: \"marketing\", \"computer science\", \"human resources\", \"content writing\", \"data science\", \"finance\", \"graphic design\", \"web development\". Several categories are combined with OR.",
            "items": {
              "type": "string"
            }
          },
          "cities": {
            "title": "City",
            "type": "array",
            "description": "Indian cities, for example \"bangalore\", \"delhi\", \"mumbai\", \"pune\", \"hyderabad\", \"chennai\", \"kolkata\", \"gurgaon\". Several cities are combined with OR. Leave empty for the whole country.",
            "items": {
              "type": "string"
            }
          },
          "workFromHome": {
            "title": "Work from home only",
            "type": "boolean",
            "description": "Only remote postings. Measured on 2026-08-08: 2,154 of 7,007 internships and 1,456 of 8,663 jobs are work-from-home.",
            "default": false
          },
          "partTime": {
            "title": "Part-time only (internships)",
            "type": "boolean",
            "description": "Only part-time internships — 1,449 of 7,007 on 2026-08-08. Ignored on the jobs board.",
            "default": false
          },
          "withJobOffer": {
            "title": "Only internships that offer a job afterwards",
            "type": "boolean",
            "description": "Internshala's PPO filter: internships with a pre-placement offer. 1,223 of 7,007 on 2026-08-08. Those rows also carry the offer text, for example \"Job offer upto ₹ 2.4LPA post internship\".",
            "default": false
          },
          "minStipend": {
            "title": "Minimum monthly stipend (INR, internships)",
            "minimum": 0,
            "maximum": 12000,
            "type": "integer",
            "description": "Only internships paying at least this much per month. Internshala's own slider stops at 12,000, and anything above that is ignored by the site, so the value is clamped there. Every row also carries stipendMin, so you can filter harder afterwards."
          },
          "maxDurationMonths": {
            "title": "Maximum duration in months (internships)",
            "minimum": 1,
            "maximum": 24,
            "type": "integer",
            "description": "Only internships that last at most this many months. It is cumulative: 1 gave 610 results, 2 gave 1,319, 6 gave 6,975 on 2026-08-08."
          },
          "minSalary": {
            "title": "Minimum annual salary (INR, jobs)",
            "minimum": 0,
            "type": "integer",
            "description": "Only jobs paying at least this much per year. 600,000 cut the board from 8,663 to 2,281 on 2026-08-08. Ignored on the internships board."
          },
          "experience": {
            "title": "Experience (jobs)",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5",
              "5plus"
            ],
            "type": "string",
            "description": "Internshala's own experience filter for the jobs board. The numbered options are cumulative caps (\"1 year\" returned 6,092 jobs, \"2 years\" 6,648); \"more than 5 years\" is a separate senior bucket and returned 146.",
            "default": ""
          },
          "fresherOnly": {
            "title": "Fresher jobs only",
            "type": "boolean",
            "description": "Only jobs open to candidates with no work experience — 4,179 of 8,663 on 2026-08-08. Ignored on the internships board.",
            "default": false
          },
          "includeInternshipsInJobs": {
            "title": "Add internships to a jobs run",
            "type": "boolean",
            "description": "Internshala's \"also show internships\" toggle on the jobs board. It merges the two corpora into one walk — 14,447 rows on 2026-08-08 instead of 8,663. Ignored on the internships board.",
            "default": false
          },
          "internationalOnly": {
            "title": "International internships only",
            "type": "boolean",
            "description": "Internshala's international board: internships based outside India. It is small — 85 live on 2026-08-08.",
            "default": false
          },
          "forWomen": {
            "title": "Internships for women",
            "type": "boolean",
            "description": "Internshala's women-only board: 3,379 internships on 2026-08-08. Combines with the category and city filters.",
            "default": false
          },
          "earlyApplicant": {
            "title": "Be an early applicant",
            "type": "boolean",
            "description": "Only internships with few applications so far — 1,924 of 7,007 on 2026-08-08.",
            "default": false
          },
          "fastResponse": {
            "title": "Employers who reply quickly",
            "type": "boolean",
            "description": "Internshala's fast-response badge: employers who review applications quickly. 4,061 of 7,007 on 2026-08-08.",
            "default": false
          },
          "startingAfter": {
            "title": "Starting on or after",
            "type": "string",
            "description": "Only internships whose start date is on or after this day, written as YYYY-MM-DD."
          },
          "startUrls": {
            "title": "Internshala URLs",
            "type": "array",
            "description": "Paste Internshala URLs instead of building a search. Works with a listing page (https://internshala.com/internships/computer-science-internship-in-bangalore/) and with a single posting (https://internshala.com/internship/detail/...). Listing URLs are walked page by page.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "includeDetails": {
            "title": "Open each posting for the full record",
            "type": "boolean",
            "description": "Reads each posting's own page. That is where the apply-by date, the number of openings, the exact posted date (instead of \"2 days ago\"), the start date, the perks, the eligibility rules, the company's Internshala profile and website, the state, and the full description come from. Measured at 84 ms per posting at concurrency 10. Turn it off for a listing-only run: you keep title, company, city, stipend, duration, skills, the description snippet and an approximate posted date.",
            "default": true
          },
          "detailConcurrency": {
            "title": "Posting pages in parallel",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "How many posting pages to read at once when \"Open each posting\" is on. 10 is measured as comfortable; Internshala did not rate-limit at that level.",
            "default": 10
          },
          "maxItems": {
            "title": "Maximum postings",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Stop after this many postings. One search runs out at Internshala's own last page — the unfiltered internships board ends at page 176 (7,007 rows) and returns nothing beyond it, so use several keywords, cities or categories to go wider.",
            "default": 50
          },
          "egressMode": {
            "title": "Network route",
            "enum": [
              "auto",
              "direct",
              "datacenter",
              "isp"
            ],
            "type": "string",
            "description": "Leave on automatic. Internshala answers the plain Apify container address on every request we measured, and that route is also the fastest (430 ms per page against 1,200 ms through a proxy). The other options exist only for debugging.",
            "default": "auto"
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave as is. Internshala needs no proxy — supply your own servers here only if you have a reason to.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}