Adderley Data Apify Store

Adderley Data / Guides

Breezy HR job board API: the public JSON feed, the keyed API and where the text lives

A Breezy HR career portal, {company}.breezy.hr, can be read two ways. Breezy's documented API, under api.breezy.hr/v3, needs a token that belongs to a user of that company's account. The portal itself serves every published position as JSON at https://{company}.breezy.hr/json, with no token, at an address Breezy's developer documentation does not mention (checked 12 October 2026). This page covers both, as we measured them.

The documented API

Breezy's developer reference (read 12 October 2026) roots every endpoint in https://api.breezy.hr/v3. Every request except sign-in and the health check needs an Authorization header carrying either a personal access token, which a user creates under My Settings, API Keys, and which starts breezy_pat_, or a session token from POST /v3/signin with that user's email and password. Positions are GET /company/{id}/positions and GET /company/{id}/position/{id}.

  • The limit. 100 requests in each 60-second interval per token; over that, HTTP 429. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset.
  • Without a token it answers HTTP 400 with {"error":{"type":"missingAccessToken","message":"access token is null or empty"}}, not 401 (read 12 October 2026).
  • Whose view it is. The token reads its own company's account: positions, candidates, pipelines and the rest of the endpoint list. It is the way to read your own account, not someone else's board.

The public feed

curl "https://{company}.breezy.hr/json"

The response is a JSON array of every published position on the portal, in one response, without the posting text. Checked against the live portals on 24 September and 12 October 2026:

  • An unknown subdomain answers HTTP 404 with an HTML page titled "Career portal not found | Breezy HR", never an empty list.
  • A posting id the board does not have answers HTTP 302, a redirect to the portal's home page, rather than a 404.
  • Names are first come. The subdomain breezy is a trial account holding three test positions with placeholder pay such as "$0.05 – $0.06 / hour", not Breezy's own hiring.

What a position holds

Each position carries the same 11 keys: id, friendly_id, name (the title), url, published_date, type, location, department, salary, company and locations. That held on 46 positions across nine boards on 24 September and on all 69 on the board measured below. The ones that need care:

  • Pay is a sentence. salary is Breezy's own rendering of what the company entered: "$60,000 – $70,000 / year", "$22 – $30 / hour", "$3,500+ / year", or an empty string when nothing was entered. It carries the currency's sign, not its code, so "$" alone does not say which dollar. The posting's own page states the ISO code in its structured data.
  • The primary place is flagged, not first. location is the primary place: a label such as "Austin, TX", "Canada" or "Worldwide", a city, a state, a country with its two-letter code (or worldwide), and remote details. locations lists every place with primary: true on one of them, and on 2 of the 69 positions below that one was not first. Older postings can have an empty list.
  • Remote has three values. is_remote is a flag, and remote_details says which kind: remote ("Fully remote, no location restrictions"), remote-location ("Fully remote, within chosen location(s)") or hybrid.
  • Type and department. type is an id and a name: fullTime "Full-Time", partTime, contract, temporary and other seen live. department is text, an empty string or null.
  • No text. The posting's text is only on its page, https://{company}.breezy.hr/p/{friendly_id}, which also carries a schema.org JobPosting block; where the posting states pay, that block gives the currency's ISO code.

Locations also carry an office street address when the company entered one, and company holds the portal's name, its subdomain and a logo address.

Measured on a public board

The board in the Actor's example input listed 69 positions on Monday 12 October 2026. The feed is one request; reading every position's text as well took 70 requests, the feed and one page per position, in 24 seconds (run JPsjpZXn59Mr10qW7).

One public Breezy HR board, 69 positions, 12 October 2026
FactPositions with itNotes
Country69 of 69All in the United States, across seven states
City68 of 69The one without is labelled "United States"
More than one place5 of 69Three list two places, two list three
Remote2 of 69One with no location restrictions, one within chosen locations
Employment type69 of 69Full-time 68, contract 1
Pay0 of 69The company entered none
Department0 of 69Empty or null on every position

55 of the 69 were published in October, the oldest in June 2026. A board this size is cheap to list and costs one request per position once you want the text.

Where it stops

  • It is undocumented. Breezy documents neither the feed nor a limit for it, so it can change shape without notice.
  • The text and the currency code cost a request each. Both live only on the posting page.
  • Posting pages refuse some requests. In that read, 8 of 78 attempts on posting pages were answered HTTP 403 from Apify's datacentre addresses; a second read one page at a time, at a third of the pace, saw 6 of 76 (run tIwqjAcoWuBmXcDCZ). The feed answered at the first attempt both times.
  • Nothing says what changed. No field records an edit, so a changed position is found only by comparing it with the last read, and an edit to the text alone cannot be seen from the feed at all.

Breezy HR Jobs Scraper reads the feed in one request per board and opens posting pages only when you ask for descriptions; when a page states the same amounts as the feed, it takes the currency code from the page. In incremental mode it compares each position's fields in the feed with the last run and returns, and charges for, only positions that are new, changed, back or gone. As with any reader of the feed, an edit only to a posting's text is not reported. Its page has the price and every field. For Breezy HR beside fourteen other systems in one table, see the measured run of the Career Site Jobs Scraper.

The same reference for other systems

Published 2026-10-12.