← Back to home
DevelopersUpdated August 22, 2026

Hopin API reference

The public Hopin API is read-only, unauthenticated and CORS-open. Base URL:

https://api.hopinjobs.com

The formal description is at https://hopinjobs.com/openapi.json (OpenAPI 3.1). Every operation below has a stable operationId that matches the spec, so it can be turned into an LLM tool definition mechanically.

Background — rate limits, error shape, CORS and the open dataset — is on the docs page.

Conventions

getHealth

GET /api/health — liveness check for the API. Use it to confirm reachability before a batch of calls.

curl -s https://api.hopinjobs.com/api/health
{"status":"ok","message":"Hopin Backend API is running"}

listJobs

GET /api/jobs — full-time and entry-level job listings. Returns every matching listing in one response under a jobs array.

ParameterTypeDescription
is_unofficial"true" / "false"true returns hidden roles — openings sourced from a recruiter's own feed rather than a job board. Default false.
is_on_campus"true" / "false"Restrict to on-campus or off-campus listings. Ignored when is_unofficial=true.
industrystringExact match on an industry from GET /api/filters, e.g. Technology.
locationstringExact match on a location from GET /api/filters, e.g. Bangalore, India.
work_typestringOne of On-site, Remote, Hybrid.
role_typestringExact match on a role from GET /api/filters.
curl -s "https://api.hopinjobs.com/api/jobs?is_unofficial=true"
{
  "jobs": [
    {
      "id": "e4841672-3717-4959-ac26-d9fa5fca7673",
      "company": "Infosys",
      "title": "Business Roles",
      "description": "Information Technology / Business Roles",
      "location": "Remote, India",
      "work_type": "On-site",
      "industry": "Information Technology",
      "role_type": "Business Roles",
      "ctc_amount": "₹3.5-7 LPA (Estimated)",
      "posted_at": "2026-08-21T03:52:44",
      "posted_days": 1,
      "is_on_campus": false,
      "is_active": true,
      "job_type": "job"
    }
  ]
}

posted_days is derived at request time from posted_at. ctc_amount is a human-readable band and may be marked estimated; treat it as a string, not a number.

getJob

GET /api/jobs/{id} — a single job by its UUID. Returns 404 with {"error":"Job not found"} when the id does not exist.

curl -s https://api.hopinjobs.com/api/jobs/e4841672-3717-4959-ac26-d9fa5fca7673
{"job": {"id": "e4841672-3717-4959-ac26-d9fa5fca7673", "company": "Infosys", "title": "Business Roles"}}

listInternships

GET /api/internships — internship listings. Same parameters as listJobs; the response key is internships and each item carries stipend rather than ctc_amount.

curl -s "https://api.hopinjobs.com/api/internships?is_unofficial=true"

getInternship

GET /api/internships/{id} — a single internship by UUID, under an internship key.

listFilters

GET /api/filters — the allowed values for every filter parameter, grouped by type. Call this first and filter server-side rather than fetching everything.

curl -s https://api.hopinjobs.com/api/filters

The groups are industry, location, pay_range, role and work_type. Each entry carries filter_value (what you send) and display_label (what to show).

listEvents

GET /api/events — campus and career events (workshops, drives, sessions) with their date, time, location and whether they are online.

The open hiring dataset

Aggregate hiring data is a static file on the website origin rather than an API call, so it is cacheable and citable:

curl -s https://hopinjobs.com/reports/fresher-hiring-india.json

It returns updatedAt, a totals object (live listings, new in the last seven days, internship share, remote share, median posting age) and topCities, topRoles and topCompanies arrays. Licensed CC-BY-4.0 — cite it with attribution to Hopin.

Errors

StatusMeaningBody
404The resource does not exist{"error":"Job not found"}
429Rate limit exceeded; honour Retry-AfterJSON error object
500Server-side failure; the request is worth retrying{"error":"Failed to fetch jobs"}

Stability

These endpoints back Hopin's own web and mobile clients, so they do not change casually. Breaking changes will be announced on the changelog and reflected in openapi.json first. Questions: help@hopinjobs.com.