{
  "openapi": "3.0.1",
  "info": {
    "title": "Internshala Internship Scraper",
    "description": "Collect Internshala internship listings by keyword, category, city, work-from-home filter or listing URL. Results include role, company, location, stipend, duration, skills and posting date; optional detail pages add applicants, openings, salary range, company details and the full text.",
    "version": "0.1",
    "x-build-id": "Z7peO2SLGdSdnmG22"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/axiomworks~internshala-internships-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-axiomworks-internshala-internships-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/axiomworks~internshala-internships-scraper/runs": {
      "post": {
        "operationId": "runs-sync-axiomworks-internshala-internships-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/axiomworks~internshala-internships-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-axiomworks-internshala-internships-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": {
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Free-text search, e.g. 'python' or 'graphic design'. Turned into Internshala's keyword URL (/internships/keywords-graphic-design/). When set, category, city and workFromHome are ignored. Leave empty to filter by category and city instead."
          },
          "listingType": {
            "title": "Internships or jobs",
            "enum": [
              "internships",
              "jobs"
            ],
            "type": "string",
            "description": "Which listings to search: 'internships' (default) or 'jobs' (fresher and experienced jobs). Applies to keyword, category, city and workFromHome; ignored for startUrls.",
            "default": "internships"
          },
          "category": {
            "title": "Category",
            "type": "string",
            "description": "Internshala category slug, e.g. 'python', 'data-science', 'marketing', 'content-writing'. Spaces become dashes. Combine with city or workFromHome. An unknown slug makes Internshala redirect to a broader list; the log warns when that happens."
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "City slug, e.g. 'bangalore', 'mumbai', 'pune', 'delhi'. Used with or without category; ignored when workFromHome is on."
          },
          "workFromHome": {
            "title": "Work from home only",
            "type": "boolean",
            "description": "Only remote postings, optionally within category (city is ignored). Default false.",
            "default": false
          },
          "startUrls": {
            "title": "Listing URLs",
            "type": "array",
            "description": "Internshala URLs to scrape instead of the fields above, e.g. https://internshala.com/internships/work-from-home-content-writing-internships/. Any /internships/ or /jobs/ listing or filter page (page-N optional, paging starts at page 1), or a single posting URL (/internship/detail/... or /job/detail/...).",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "includeDetails": {
            "title": "Include detail page fields",
            "type": "boolean",
            "description": "Default true: open each posting's page for applicants, startDate, datePosted, validThrough, openings, salary numbers, full skills, industry, category, companyWebsite and description (one extra request per result). False is faster and leaves those fields null.",
            "default": true
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of postings to return across all targets, 1-10000, default 50. The run stops as soon as this many results are saved, and you are charged only for results returned.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy to use for requests, default none. Switch on Apify Proxy if runs get blocked or rate-limited.",
            "default": {
              "useApifyProxy": false
            }
          },
          "locationKeywords": {
            "title": "Location keywords",
            "type": "array",
            "description": "Return postings whose locations contain any of up to 20 city or location keywords, case-insensitive. Default [] keeps all locations. Applies with keyword and startUrls, before detail requests and the shared maxItems limit. Combine with remote and part-time filters using AND.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "workFromHomeOnly": {
            "title": "Require remote results",
            "type": "boolean",
            "description": "Return only postings with isWorkFromHome true. Default false. Unlike workFromHome URL selection, applies even with keyword or startUrls. Nonmatching postings are skipped before maxItems and charging.",
            "default": false
          },
          "partTimeOnly": {
            "title": "Require part-time results",
            "type": "boolean",
            "description": "Return only postings whose tags contain Part time. Default false. Applies to every target before detail requests and maxItems; listings without that tag are excluded. No matches or blocked targets return zero results successfully.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}