Internshala internship and job search

GET https://api.api.sh/internshala/v1/search
1 credit / call jobs & b2b try it in the playground →

Internships or jobs on Internshala (India) for a skill, role or category, a city and/or work from home: id, type, title, company, link, locations, stipend or salary, duration (internships), experience (jobs), snippet, skills, categories, posted time, labels (part time, job offer, early applicant...), logo. total is the site's count. Pass next_page back as page; null on the last page. Optional filters: minimum stipend (internships) or salary (jobs), duration, start date, part time, job offer after the internship (ppo), openings for women, and early-applicant openings; filters echoes those applied. Each result also has pay_min, pay_max, pay_period (week, month or year) and pay_currency parsed from the pay text, duration_months, is_part_time, ppo and ppo_text (job offer after the internship), and posted_ago.

Every response includes credits_used: the credits this call cost.

Parameters

nametypedescription
q string Skill, role or category, e.g. python, marketing. Example: python
type internships | jobs internships (default) or jobs.
location string City, e.g. bangalore.
work_from_home string 1 = work-from-home only.
page integer Page number. Pass next_page from the previous response.
stipend_min integer Internships: minimum monthly stipend in INR.
salary_min integer Jobs: minimum salary in lakhs per annum (LPA).
duration integer Internships: maximum duration in months.
start_date string Internships: starting on or after this date (YYYY-MM-DD).
part_time boolean Part-time openings only.
ppo boolean Internships: only those with a job offer after the internship.
women_only boolean Openings for women (the site's women-only listings).
early_applicant boolean Internships: only openings with few applicants so far.

Every endpoint also takes fresh, raw, fields (see lean responses and caching).

Example

curl "https://api.api.sh/internshala/v1/search?q=python" \
  -H "x-api-key: $APISH_KEY"

Response

A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).

The fastest way to see the full response is the playground: it runs this endpoint with your account and shows the exact JSON.