# Internshala Scraper & API: Real Stipend, Fake Listing Check (`s_actors/internshala-scraper`) Actor

Scrape Internshala internships and fresher jobs with the real pay: guaranteed fixed stipend split from incentives, red flags of fake or commission-only listings, applicants per opening, employer hiring record, newest first, alerts. Excel, CSV, JSON.

- **URL**: https://apify.com/s_actors/internshala-scraper.md
- **Developed by:** [Superior Actors](https://apify.com/s_actors) (community)
- **Categories:** Jobs, Lead generation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.31 / 1,000 listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Internshala Scraper & API: Real Stipend, Fake Listing Check, Applicants per Opening

Scrape **Internshala internships and fresher jobs** (internshala.com, India) to Excel, CSV or JSON **without login**, with the **real pay** and **red flags** on every listing. What sets it apart:

- **The stipend you are guaranteed, not the one on the card.** Internshala adds incentive pay to the stipend it shows: "₹1,501 - 15,001 lump sum" can be **₹1 fixed** plus commission, "₹15,001 - 15,003" is ₹15,000 plus a ₹1-2 "incentive" that only widens the range. The Actor reads the listing's pay structure and returns the **guaranteed (fixed) part** and the **incentive part** separately, per month (lump sums spread over the duration). For jobs: **fixed vs variable CTC** and probation salary. In our test of 200 new internships, **46 (23%) show more than they guarantee**, by a third in the median case. Other scrapers return the shown amount.
- **Is this internship real or fake?** Every row has `redFlags` with the reason: commission-only or token fixed pay, less than half of the pay guaranteed, unpaid, under ₹2,000 a month, an employer with hundreds of postings and no hires (or 17,862 "hires" from 457 postings), a registration fee or deposit mentioned, no website. Keep them to check, or **skip listings with red flags** in one click.
- **Filters that use the real numbers:** **min guaranteed pay per month**, skip commission-only, skip unpaid, **max applicants** and **max applicants per opening** (better chances).
- **Employer track record:** hiring since, opportunities posted, candidates hired and hires per posting, as Internshala shows them.
- **All of Internshala's own filters:** category or keyword, cities, work from home, part-time, for women, duration, start date, job offer (PPO), minimum stipend, fast response, early applicant; jobs by experience and salary; **fresher jobs**. **Newest first**, **posted within** 24 hours to a month.
- **Alerts, no reposts.** Schedule it and get only listings you have not seen.

```json
{ "keywords": ["digital marketing"], "workFromHome": true, "minGuaranteedMonthlyPay": 5000, "excludeRedFlagged": true, "postedWithin": "pastWeek" }
```

No Internshala account, no cookies. Use it as an **Internshala API**: one call returns clean JSON with the fields below.

#### What you get

**One row per internship or job.** Real examples, September 2026:

| role | company | shown pay | guaranteed | pay type | red flags |
|---|---|---|---|---|---|
| Fundraising (work from home) | Queens Of Change Foundation | ₹1,500 - 15,000 lump sum | ₹0 | incentiveOnly | commission only; 17,862 hires from 457 postings |
| Inside Sales (Ahmedabad) | Quintubate Private Limited | ₹9,000 - 55,000 /month | ₹8,000 - 15,000 | fixedPlusIncentive | less than half guaranteed |
| B2B Business Management (Mumbai) | Evavo Wellness & Solutions LLP | ₹35,000 - 55,000 /month | ₹10,000 - 15,000 | fixedPlusIncentive | less than half guaranteed |
| Social Media Marketing (Bangalore) | ANSR Global Private Limited | ₹15,001 - 15,003 /month | ₹15,000 - 15,001 | fixedPlusIncentive | ₹1-2 cosmetic incentive |
| Corporate Sales Executive (job, Kolkata) | Solusi Next Step Talents | ₹2.12 - 8.4 LPA | ₹2 - 2.4 LPA fixed | fixedPlusVariable | less than half guaranteed |

In our test of 200 new internships and 100 jobs: every row had the posting date, skills and the employer's hiring record; 46 internships and 27 jobs had pay above the guaranteed part; 23 internships had at least one red flag; 131 internships showed "Be an early applicant", the others an applicant count (median 26 applicants per opening).

| Field | Description |
|---|---|
| `jobId`, `jobUrl`, `listingType`, `title` | The internship or job, its Internshala page, the role |
| `salaryText`, `salaryMin`, `salaryMax`, `salaryPeriod`, `salaryCurrency`, `salaryYearlyMin`, `salaryYearlyMax` | Pay as Internshala shows it (with incentives) |
| `payType` | `fixed`, `fixedPlusIncentive`, `incentiveOnly`, `unpaid`, `fixedPlusVariable` (jobs), `notDisclosed` |
| `guaranteedPayMin`, `guaranteedPayMax`, `incentivePayMin`, `incentivePayMax`, `guaranteedShare` | The fixed part and the incentive or variable part, in the shown period; guaranteed / shown |
| `guaranteedMonthlyMin`, `guaranteedMonthlyMax` | The fixed part per month (lump sums over the duration, CTC / 12) |
| `probation` | Probation duration and salary for jobs, when given |
| `redFlags`, `redFlagCount` | Warning signs with reasons (see FAQ) |
| `applicants`, `applicantsText`, `earlyApplicant`, `openings`, `applicantsPerOpening` | Competition: applicants so far ("1000+" = 1000), openings, applicants per opening |
| `postedDate`, `daysSincePosted`, `applyBy`, `startDate`, `duration` | Dates |
| `location`, `workplaceType`, `officeDaysPerWeek` | Cities; `remote` (work from home), `hybrid` with office days a week, `on-site` |
| `activelyHiring`, `partTime`, `jobOffer`, `experienceLevel`, `employmentType`, `category`, `industries` | Internshala labels |
| `skills`, `perks`, `whoCanApply`, `otherRequirements`, `description`, `descriptionHtml` | Requirements, perks (certificate, letter of recommendation, flexible hours...), full description |
| `companyName`, `companyUrl`, `companyId`, `companyLogo`, `companyWebsite`, `companyIsNgo`, `companyAbout` | The employer |
| `companyHiringSince`, `companyOpportunitiesPosted`, `companyCandidatesHired`, `companyHiresPerPosting` | The employer's "Activity on Internshala" |
| `searchKeyword`, `searchCategory`, `searchLocation`, `searchUrl`, `isNew`, `scrapedAt` | Which search found the listing; alerts |

Six table views: **Listings**, **Real pay**, **Red flags**, **Competition**, **Employers** and **Details**.

#### How it works

| Step | What happens |
|---|---|
| 1. Listings | Each keyword: Internshala's category when it has one (python, web development, data entry, digital marketing), otherwise its keyword search. Internshala applies city, work from home, part-time, duration, start date, PPO, stipend, experience and salary filters itself |
| 2. Newest first | With **Newest first** or alerts the Actor reads the whole search and orders it by posting age (Internshala pins older listings on top) |
| 3. Listing pages | For each listing: its Internshala page, for the pay structure, applicants, openings, dates, perks and the employer's record |
| 4. Real pay and red flags | Shown pay split into guaranteed and incentive; warning signs checked |
| 5. Filters and clean-up | Guaranteed pay, commission-only, unpaid, red flags, applicants, date, title words, companies; closed listings dropped. Removed listings, reposts (same role, company and places) and listings seen by an alert are not charged |

#### Why this Actor

| | This Actor | Typical Internshala scraper |
|---|---|---|
| Stipend | ✅ Shown **and guaranteed**, incentive separate, per month | ⚠️ Shown amount only (incentives included) |
| Jobs: fixed vs variable CTC, probation | ✅ | ❌ |
| Red flags of fake or commission-only listings | ✅ With reasons, one-click skip | ❌ |
| Applicants, openings, applicants per opening | ✅ Included | ⚠️ Some, often as a paid extra |
| Employer hiring record | ✅ With hires per posting | ⚠️ Some |
| Filter by guaranteed pay, max applicants per opening | ✅ | ❌ |
| Internshala filters (city, WFH, part-time, PPO, for women, duration, start date, experience, salary) | ✅ | ⚠️ Some |
| Newest first, posted within | ✅ | ⚠️ Some |
| Alerts (only new listings) | ✅ Seen listings not charged | ⚠️ Some |
| Price per 1,000 listings | **$0.39** with everything, platform included | $0.40 + platform to $5 |

#### Pricing

Pay per event, no subscription needed. Apify Scale and Business plans pay less:

| Event | Free and Starter plans | Scale plan | Business plan |
|---|---|---|---|
| Run start | $0.001 | $0.001 | $0.001 |
| Listing (all fields: real pay, red flags, applicants, employer record, full description) | $0.00039 | $0.00035 | $0.00031 |

**1,000 listings = $0.39.** Free: listings removed by your filters, reposts, closed listings, listings already seen by an alert. Platform usage is included. Set a maximum cost per run in the run options: the Actor stops there.

#### Ready-made tasks

| Task | What it does |
|---|---|
| [Internshala Work From Home Internships With Real Stipend](https://apify.com/s_actors/internshala-scraper/examples/internshala-work-from-home-internships) | This week's work-from-home internships that guarantee at least ₹5,000 a month, commission-only and unpaid removed |

#### Alerts

1. Set your keywords, cities and filters, turn on **Only new listings**, give the alert a name.
2. Save it as a task and add a **schedule** (every morning, with "Posted within: Past 3 days").
3. Send the results by email, Slack, Google Sheets, Make, Zapier or **n8n** with Apify integrations.

The first run returns the current listings, newest first; next runs return only listings not seen before.

#### Other job tools

| Actor | What it does |
|---|---|
| [LinkedIn Jobs Scraper](https://apify.com/s_actors/linkedin-jobs-scraper) | LinkedIn jobs without login: a remote filter that works, salaries from descriptions, job alerts |
| [Glassdoor Jobs Scraper](https://apify.com/s_actors/glassdoor-jobs-scraper) | Glassdoor jobs with salary ranges and all company ratings, filter by work-life balance, job alerts |
| [Wellfound Jobs Scraper](https://apify.com/s_actors/wellfound-jobs-scraper) | Startup jobs from Wellfound (AngelList): salary and equity as numbers, stage, YC, visa sponsorship, job alerts |
| [StepStone Jobs Scraper](https://apify.com/s_actors/stepstone-jobs-scraper) | StepStone.de and .at jobs with salary estimates for most jobs, exact matches only, English jobs in Germany |
| [XING Jobs Scraper](https://apify.com/s_actors/xing-jobs-scraper) | XING jobs in Germany, Austria and Switzerland: salaries per year, English-only jobs, more than 1,000 jobs per search |
| [Instahyre Jobs Scraper](https://apify.com/s_actors/instahyre-jobs-scraper) | Instahyre jobs in India with posting dates (newest first), company Glassdoor ratings, jobs for freshers and remote jobs |
| [Hirist Jobs Scraper](https://apify.com/s_actors/hirist-jobs-scraper) | Hirist tech jobs in India with recruiter activity (applications, recruiter actions, last active), every job of a skill, AmbitionBox ratings |
| [Dice Jobs Scraper](https://apify.com/s_actors/dice-jobs-scraper) | Dice.com tech jobs with W2, C2C and 1099 contract types, recruiter apply emails, visa sponsorship and reposts |
| [Foundit Jobs Scraper](https://apify.com/s_actors/foundit-jobs-scraper) | Foundit (Monster India) jobs in India, the Gulf and SEA: posted on Foundit or reposted from LinkedIn, original link, salary, red flags |
| [Cutshort Jobs Scraper](https://apify.com/s_actors/cutshort-jobs-scraper) | Cutshort tech and startup jobs in India, live: recruiter's last activity with ghost jobs hidden, company or agency, salary in lakhs, red flags |
| [Shine Jobs Scraper](https://apify.com/s_actors/shine-jobs-scraper) | Shine.com jobs in India with a real-or-fake verdict: imported feed jobs, hidden employers and jobs abroad flagged, company or agency, salary in lakhs, applicants |
| [iimjobs Scraper](https://apify.com/s_actors/iimjobs-scraper) | iimjobs management, finance and MBA jobs in India with recruiter actions and applicants (what iimjobs Pro sells), exact keyword matches, AmbitionBox ratings |

#### FAQ

**What is the guaranteed stipend?** Many Internshala listings have a "Stipend Structure": a fixed pay and an incentive pay. The card and Internshala's own stipend filter show the two added together. `guaranteedPayMin` / `guaranteedPayMax` are the fixed part, `incentivePayMin` / `incentivePayMax` the incentive, `payType` tells which case it is. Jobs have the same with "Annual CTC breakup": fixed pay and variable pay.

**Which red flags are checked?** Incentive-only pay; a token fixed pay (₹100 or less); less than half of the shown pay guaranteed; a ₹1-10 incentive that only widens the range; unpaid; a guaranteed stipend under ₹2,000 a month; an employer with 30+ postings on Internshala and no hires shown; an employer showing 10x more hires than postings (mass volunteer or commission recruitment); a fee, deposit or required investment mentioned in the text; no company website together with 20+ postings and no hires. A red flag is a reason to look closer, not a verdict: many legitimate sales roles pay incentives.

**Is Internshala real or fake?** Internshala is a real, large platform, and most listings are genuine. Scams and commission-only "internships" still get posted; the red flags help you spot them before you apply. Never pay a fee to get an internship.

**Why is `applicants` empty on some rows?** Internshala shows "Be an early applicant" instead of a number when few people have applied: `earlyApplicant` is true. Filters count them as 0 applicants.

**What does a keyword do?** If Internshala has a category with that name (python, web development, data entry, digital marketing, content writing, graphic design, human resources (hr)), the Actor uses it, like the category pages of the site. Other words go to Internshala's keyword search. Or paste any Internshala search link.

**Do I need an Internshala account?** No. Only pages any visitor can open are read. Student data is not collected.

#### Use with the API and AI agents

Run it from the Apify API, the JavaScript or Python client, **n8n**, Make or Zapier, or from AI agents through the [Apify MCP server](https://mcp.apify.com) (Claude, ChatGPT, Cursor). One call: `POST https://api.apify.com/v2/acts/s_actors~internshala-scraper/run-sync-get-dataset-items` with the input above returns the listings as JSON. Set **Description** to "None" for smaller answers.

#### Is it legal?

The Actor reads public Internshala pages that anyone can open without an account, as a visitor does. It does not log in or collect student profiles. Company names and details are shown on the public pages; use such data according to the laws that apply to you (India's DPDP Act, GDPR and similar) and Internshala's terms.

# Actor input Schema

## `listingType` (type: `string`):

Internshala has about 7,500 internships and 12,000 jobs open at a time.

## `keywords` (type: `array`):

Profile, skill or job title, one per line: "python", "web development", "digital marketing", "data entry", "content writing", "graphic design", "human resources (hr)". When Internshala has a category with that name the Actor uses it (as on the site's category pages), otherwise Internshala's keyword search. Empty = every listing (with the filters below).

## `locations` (type: `array`):

Indian cities as on Internshala: "Delhi", "Mumbai", "Bangalore", "Pune", "Hyderabad", "Chennai", "Kolkata", "Gurgaon", "Noida", "Navi Mumbai". Several = any of them. Empty = everywhere.

## `workFromHome` (type: `boolean`):

Internshala's work-from-home listings. Every row has workplaceType (remote, hybrid, on-site) and officeDaysPerWeek for hybrid ones.

## `partTime` (type: `boolean`):

Internshala's part-time listings.

## `forWomen` (type: `boolean`):

Internshala's internships / jobs for women (including women restarting their career).

## `postedWithin` (type: `string`):

By the posting age Internshala shows ("few hours ago", "2 days ago"). Every row has postedDate and daysSincePosted. Older listings are skipped for free.

## `maxJobsPerSearch` (type: `integer`):

Per keyword or link. The whole internship board is about 7,500.

## `sortBy` (type: `string`):

Newest first = the Actor reads the whole search and orders it by posting age (Internshala pins older listings on top).

## `minGuaranteedMonthlyPay` (type: `integer`):

Keep listings whose FIXED part pays at least this per month. Internshala shows the stipend with incentives added ("₹1,501 - 15,001" can be ₹1 fixed + commission); this filter uses the fixed part only. Lump sums are spread over the duration, jobs use fixed CTC / 12. E.g. 10000. Removed listings are free.

## `excludeIncentiveOnly` (type: `boolean`):

Remove listings with no fixed stipend at all: the shown amount is incentive pay only (payType = incentiveOnly).

## `excludeUnpaid` (type: `boolean`):

Remove unpaid internships.

## `excludeRedFlagged` (type: `boolean`):

Remove listings with any warning sign in redFlags: commission-only or token fixed pay, less than half of the shown pay guaranteed, cosmetic ₹1-2 incentives that widen the range, unpaid, under ₹2,000 a month, employer with many postings and no hires or with implausible mass hiring, a fee or deposit mentioned, no website. Off = keep them and read redFlags.

## `maxApplicants` (type: `integer`):

Keep listings with at most this many applicants so far (less competition). "Be an early applicant" counts as 0.

## `maxApplicantsPerOpening` (type: `number`):

Applicants divided by openings, e.g. 10. Lower = better chances.

## `maxDurationMonths` (type: `integer`):

Internships: Internshala's duration filter.

## `startingFrom` (type: `string`):

Internships that start on or after this date (Internshala's filter).

## `withJobOffer` (type: `boolean`):

Internships with a pre-placement offer.

## `minShownStipend` (type: `integer`):

Internshala's own stipend filter: it counts incentives. For the fixed part use "Min guaranteed pay per month".

## `fastResponse` (type: `boolean`):

Internships whose employer usually responds quickly (Internshala's filter).

## `earlyApplicant` (type: `boolean`):

Listings with few applications so far (Internshala's filter).

## `experienceYears` (type: `integer`):

Jobs: Internshala's experience filter. For 0 years pick "Fresher jobs" above.

## `minSalaryLpa` (type: `integer`):

Jobs and fresher jobs: Internshala's salary filter, e.g. 4 = ₹4 LPA. It counts the variable part; guaranteedPayMin has the fixed part.

## `titleInclude` (type: `array`):

Keep only listings whose title contains one of these words.

## `titleExclude` (type: `array`):

Remove listings whose title contains one of these words, e.g. "sales", "telecalling", "fundraising".

## `companyExclude` (type: `array`):

Remove listings of companies whose name contains one of these.

## `skipDuplicates` (type: `boolean`):

Employers often post one role many times: same title + company + places = one row.

## `searchUrls` (type: `array`):

Search pages copied from the browser with their filters, e.g. https://internshala.com/internships/work-from-home-python-internships/ or https://internshala.com/jobs/data-analytics-jobs-in-bangalore/.

## `jobUrls` (type: `array`):

Single listings, e.g. https://internshala.com/internship/detail/... or https://internshala.com/job/detail/...: check any offer for red flags and its real pay.

## `descriptionFormat` (type: `string`):

The full description is included at no extra cost.

## `onlyNewJobs` (type: `boolean`):

Remembers the listings of earlier runs with the same alert name and returns only new ones, newest first. Schedule the Actor daily for an Internshala alert to Slack, email or a sheet. Listings already seen are free.

## `monitorName` (type: `string`):

Separate memory for each alert: use a different name for each search you schedule.

## `maxConcurrency` (type: `integer`):

How many Internshala requests run at once. Internshala limits bursts from one IP; blocked pages are retried automatically.

## `debugLog` (type: `boolean`):

Log every retry.

## Actor input object example

```json
{
  "listingType": "internship",
  "keywords": [
    "python"
  ],
  "workFromHome": false,
  "partTime": false,
  "forWomen": false,
  "postedWithin": "anyTime",
  "maxJobsPerSearch": 30,
  "sortBy": "internshala",
  "excludeIncentiveOnly": false,
  "excludeUnpaid": false,
  "excludeRedFlagged": false,
  "withJobOffer": false,
  "fastResponse": false,
  "earlyApplicant": false,
  "skipDuplicates": true,
  "descriptionFormat": "text",
  "onlyNewJobs": false,
  "monitorName": "default",
  "maxConcurrency": 8,
  "debugLog": false
}
```

# Actor output Schema

## `overview` (type: `string`):

Main fields with real pay and red flags.

## `pay` (type: `string`):

Shown pay split into guaranteed (fixed) and incentive or variable pay, per month.

## `flags` (type: `string`):

Warning signs of commission-only or suspicious listings, with reasons.

## `competition` (type: `string`):

Applicants, openings and applicants per opening.

## `companies` (type: `string`):

Employer hiring record on Internshala.

## `details` (type: `string`):

Start, duration, skills, perks, who can apply, description.

## `all` (type: `string`):

Every field of every listing.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "python"
    ],
    "maxJobsPerSearch": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("s_actors/internshala-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": ["python"],
    "maxJobsPerSearch": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("s_actors/internshala-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "python"
  ],
  "maxJobsPerSearch": 30
}' |
apify call s_actors/internshala-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,s_actors/internshala-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/kJ2Z9MWvlvoL1GpHg/builds/b3yzJys9Xo6nehKGm/openapi.json
