Discover/NY API
live

NY APIstatejobs.ny.gov

Retrieve full New York State job postings from StateJobsNY by vacancy ID. Returns title, agency, salary range, work schedule, location, and contact data.

Endpoint health
verified 3h ago
get_vacancy
1/1 passing latest checkself-healing
Endpoints
1
Updated
3h ago

What is the NY API?

The StateJobsNY API exposes one endpoint, get_vacancy, that returns 20+ structured fields from a single New York State government job posting. Given a numeric vacancy ID, it delivers the complete public record: job title, posting agency, parsed salary min/max, appointment type, work schedule flags (including telecommuting and flextime), location, and agency contact details — all in one response.

This call costs1 credit / call— charged only on success
Try it
Numeric StateJobsNY vacancy ID as shown in the posting's 'Vacancy ID' field and its URL (one shape: 223334).
api.parse.bot/scraper/b13a58ad-1b66-42e9-a8f5-9fe2a82cf90b/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/b13a58ad-1b66-42e9-a8f5-9fe2a82cf90b/get_vacancy?vacancy_id=223334' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 1 totalmissing one? ·

Returns the complete public job posting for one StateJobsNY vacancy: title, agency, salary grade/range (with parsed numeric min/max), employment and appointment type, work schedule (workweek, hours, workday times, flextime, overtime, compressed workweek, telecommuting flags), work location, duties description, minimum qualifications, additional comments, application deadline (applications_due, MM/DD/YY as shown on the site), agency contact details and the 'Notes on Applying' application instructions. One round trip per call. Text fields preserve the posting's line breaks. A field the posting leaves blank is returned as null; yes/no flags are booleans. A vacancy ID the site reports as nonexistent (including expired/removed postings) returns a stale_input / input_not_found error.

Input
ParamTypeDescription
vacancy_idrequiredstringNumeric StateJobsNY vacancy ID as shown in the posting's 'Vacancy ID' field and its URL (one shape: 223334).
Response
{
  "type": "object",
  "fields": {
    "url": "string public URL of the posting",
    "title": "string job title",
    "agency": "string posting agency name",
    "contact": "object with agency contact name, telephone, fax, email, street, city, state, zip_code (strings or null)",
    "location": "object with county, street_address, city, state, zip_code (strings or null)",
    "ny_helps": "boolean or null, whether the posting is part of the NY HELPS program",
    "schedule": "object with workweek, hours_per_week, workday_from, workday_to (strings or null) and boolean-or-null flags flextime_allowed, mandatory_overtime, compressed_workweek_allowed, telecommuting_allowed",
    "salary_max": "integer parsed upper salary bound, or null when not parseable",
    "salary_min": "integer parsed lower salary bound, or null when not parseable",
    "vacancy_id": "string vacancy identifier as shown on the posting",
    "date_posted": "string date the posting was submitted, MM/DD/YY",
    "salary_grade": "string salary grade",
    "salary_period": "string pay period word from the range (e.g. Annually), or null",
    "bargaining_unit": "string bargaining unit",
    "employment_type": "string Full-Time / Part-Time text",
    "applications_due": "string application deadline, MM/DD/YY",
    "appointment_type": "string appointment type (Permanent, Temporary, Provisional...)",
    "notes_on_applying": "string application instructions, or null",
    "salary_range_text": "string salary range exactly as posted",
    "travel_percentage": "string travel percentage text",
    "duties_description": "string duties text with line breaks, or null",
    "additional_comments": "string additional comments text, or null",
    "jurisdictional_class": "string jurisdictional class",
    "occupational_category": "string occupational category",
    "minimum_qualifications": "string minimum qualifications text with line breaks, or null"
  },
  "sample": {
    "data": {
      "url": "https://statejobs.ny.gov/public/vacancyDetailsView.cfm?id=223334",
      "title": "Human Resources Specialist Trainee* OR Human Resources Specialist 1 (NY HELPS)",
      "agency": "Public Service, Department of",
      "contact": {
        "fax": "518-473-9990",
        "city": "Albany",
        "name": "Human Resources Management - CD",
        "email": "[email protected]",
        "state": "NY",
        "street": "3 Empire State Plaza",
        "zip_code": "12223",
        "telephone": null
      },
      "location": {
        "city": "Albany",
        "state": "NY",
        "county": "Albany",
        "zip_code": "12223",
        "street_address": "3 Empire State Plaza"
      },
      "ny_helps": true,
      "schedule": {
        "workweek": "Mon-Fri",
        "workday_to": "5 PM",
        "workday_from": "9 AM",
        "hours_per_week": "37.5",
        "flextime_allowed": false,
        "mandatory_overtime": false,
        "telecommuting_allowed": true,
        "compressed_workweek_allowed": true
      },
      "salary_max": 87034,
      "salary_min": 59204,
      "vacancy_id": "223334",
      "date_posted": "09/08/26",
      "salary_grade": "18",
      "salary_period": "Annually",
      "bargaining_unit": "M/C - Managerial/Confidential (Unrepresented)",
      "employment_type": "Full-Time",
      "applications_due": "09/21/26",
      "appointment_type": "Permanent",
      "notes_on_applying": "Please send a resume, cover letter, and proof of meeting the minimum qualifications to [email protected] or fax to Human Resources Management at (518)473-9990.  Please reference \"Human Resources Specialist 1, NYHELPS posting 00089\" when applying.",
      "salary_range_text": "From $59204 to $87034 Annually",
      "travel_percentage": "5%",
      "duties_description": "The Human Resources Specialist 1, Grade 18, will work in the Human Resources Management (HRM) Section of the Office of Administration (OA), and will perform duties that include but are not limited to:\n•\tPreparing or assisting in the preparation of requests related to examination planning...",
      "additional_comments": "About the Department:\nThe New York State Department of Public Service (DPS or Department) works to: ensure safe, affordable, and reliable access to electric, gas, steam, water, and telecommunications services...",
      "jurisdictional_class": "Competitive Class",
      "occupational_category": "Administrative or General Management",
      "minimum_qualifications": "General Public\nNon-Competitive (NY HELPS)**:\nFor appointment to a Human Resources Specialist Trainee 1, you must have four years of experience performing and supervising the performance of various human resources activities..."
    },
    "status": "success"
  }
}

About the NY API

What the API Returns

The get_vacancy endpoint accepts a single required parameter, vacancy_id — the numeric identifier shown in the posting's URL and "Vacancy ID" field (e.g., 223334). The response covers the full public record for that posting: title, agency, vacancy_id, and a url pointing to the canonical public page on statejobs.ny.gov.

Salary and Employment Details

Salary data is returned as both raw strings and parsed integers. salary_min and salary_max give numeric bounds directly usable in range comparisons without string parsing. The response also includes employment type, appointment type, and whether the posting is part of the NY HELPS program via the ny_helps boolean.

Schedule and Work Arrangement Flags

The schedule object captures workweek, hours_per_week, workday_from, and workday_to as strings, plus boolean-or-null flags for flextime_allowed, mandatory overtime, compressed workweek eligibility, and telecommuting availability. This makes it straightforward to filter postings by work arrangement without parsing free-text descriptions.

Location and Contact Objects

The location object provides county, street_address, city, state, and zip_code for the work site. The contact object returns the same address fields plus name, telephone, fax, and email for the hiring agency contact. Fields not present in a posting come back as null rather than being omitted.

Reliability & maintenanceVerified

The NY API is a managed, monitored endpoint for statejobs.ny.gov — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when statejobs.ny.gov changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official statejobs.ny.gov API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a job alert tool that monitors specific NY State agencies for new postings using vacancy ID ranges
  • Filter NY State vacancies by telecommuting or flextime availability using the boolean schedule flags
  • Compare salary grades across agencies by aggregating parsed salary_min and salary_max integers
  • Populate a career portal with structured NY HELPS program postings using the ny_helps flag
  • Map NY State job openings by county or city using the location object fields
  • Display hiring agency contact information alongside postings without manual data entry using the contact object
  • Track appointment type and employment type distribution across New York State agencies
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does statejobs.ny.gov have an official developer API?+
No. The StateJobsNY site does not publish an official public API or documented data feed for vacancy records.
What does `get_vacancy` return for salary fields when a posting lists a flat rate rather than a range?+
When the salary is a single value rather than a range, salary_min and salary_max may both be set to the same parsed integer, or one may be null if the salary string does not contain two distinct numeric bounds. Always check both fields rather than assuming a range is present.
Can I search or list vacancies — for example, by agency or job title — rather than fetching one posting at a time?+
Not currently. The API covers fetching a single vacancy by its numeric ID via get_vacancy. There is no search or listing endpoint. You can fork this API on Parse and revise it to add a search or listing endpoint.
Does the API return the full job duties or minimum qualifications text from a posting?+
Not currently. The API returns structured metadata fields — title, agency, salary, schedule flags, location, and contact — but does not include the free-text duties, qualifications, or conditions of employment sections. You can fork this API on Parse and revise it to add those text fields.
How current is the data returned for a given vacancy ID?+
The response reflects the current public state of the posting on statejobs.ny.gov at the time of the request. Postings that have been closed or removed by the state may return incomplete data or fail to resolve, since the source page no longer exists.
Page content last updated . Spec covers 1 endpoint from statejobs.ny.gov.
Related APIs in JobsSee all →
werk.nl API
Search for job vacancies across the Dutch national job board werk.nl and instantly access structured job details including title, company, location, hours, contract type, education level, and publication date. Find your next opportunity by filtering through thousands of active listings with all the key information you need to apply.
usajobs.gov API
Search federal job openings and view detailed job announcements from USAJobs.gov, plus access historical job data and reference codes to help you find the right government position. Filter and explore thousands of federal career opportunities with comprehensive job details all in one place.
hh.ru API
Search and filter job vacancies across hh.ru by salary, experience level, employment type, schedule, work format, region, and industry to find positions that match your criteria. Retrieve detailed information about specific job openings to compare opportunities and make informed career decisions.
jobs.jobvite.com API
Access data from jobs.jobvite.com.
posindonesia.co.id API
Access data from posindonesia.co.id.
careers.un.org API
Search and browse current job openings at the United Nations, filtering by job network, job family, and other criteria. Retrieve structured data on available positions across UN departments and duty stations worldwide.
caljobs.ca.gov API
Search and discover job listings from California's official CalJOBS database, with the ability to filter results by posting date and specific employers to find opportunities that match your needs. View detailed information about individual positions to learn more about roles that interest you.
Workday Jobs API
Search and retrieve job postings and detailed descriptions from any company's Workday career site. Find open positions across all organizations using Workday's hiring platform and access complete job details in one place.