List holidays
GEThttps://
Returns the organisation's holiday templates, in the order plnnrly lists them: sort_order ascending.
Access
- Token scope
- api:
read: holidays Without it:
403 insufficient-token-scope. - Permission
- holidays::
manage Without it:
403 insufficient-permission. - Rate cost
- 1 unit, read bucket.
view=detailmakes it 3. Adds:q+2. - Also
If-None-Matchanswers304when nothing changed. Cacheable:private, max-age=60. Unknown query parameters are refused, never ignored.
Both are checked, scope first. A token never does more than its user. How access is checked
Search by name with q. A holiday carries no calendar date, so to find out when a holiday actually falls, follow links.free_days.
Query parameters
Unknown parameters are refused with 400, naming the parameter.
12 parameters in 5 groups
Views
Pagination
Rows per page. At most 25 when include names a to-many relation; a larger value is 400 invalid-query-parameter.
Default: 25
Opt in to page-number paging: 1-based, at most 1000. Omit it, the default, to page by opaque cursor, which is what links.next hands you. Cannot be combined with cursor. Published only on collections that count their rows on every request. This collection's default sort is a display position that changes whenever someone drags the list into a new order in plnnrly, so a page number can skip or repeat a row if the list is reordered between two page requests. These collections rarely exceed one page; for a stable walk, send sort=id and follow links.next without page.
Filters
- =
- equals
- [gte][lt]
- at least, less than
Search
Sorting
| Key | Sorts by |
|---|---|
sort_order | Position in the organisation's holiday list, as ordered in plnnrly. |
name | Holiday name, A→Z. |
id | Id, ascending. An id never changes, so use this for a stable full export. |
updated_at | Last-write timestamp; pair with the id tiebreaker for sync. |
Prefix a key with - for descending.
Request headers
A correlation id of your own. It is recorded in our logs next to the server's request id but never returned: the response header always carries the server's id. A value that does not match the pattern is discarded silently, never rejected.
Response 200
Returns a page of HolidayList rows.
The rows, each a HolidayList.
per_page, next_cursor, prev_cursor, total, current_page, last_page.
self, next, prev.
Each row is a HolidayList: 10 fields.
Headers
ETag- A weak validator (
W/"…") of the rendered page. RateLimit- The IETF
httpapi-ratelimit-headersform of your remaining allowance on the tightest bucket this request touched. RateLimit-Policy- The ceiling and window of that bucket, as
<limit>;w=<seconds>. X-Request-Id- The server-generated ULID correlating this response with our logs.
Every response also carries Cache-Control, Vary, X-Content-Type-Options, X-Plnnrly-Api-Version, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. Headers and versioning
Month the holiday normally falls in, 1-12. Null means the holiday moves from year to year (Easter, say), and the organisation fills the date in per year on the free day itself.
Day of the month the holiday normally falls on, 1-31, paired with default_month. Null means the day is not fixed.
How often the holiday repeats, in years: null is not recurring, 1 is yearly, and n repeats every n years.
Position in the organisation's holiday list, ascending. Set by dragging holidays into order in plnnrly; the API exposes no way to reorder holidays.
Errors
8 errors every operation can return: 304, 400, 401, 404, 406, 429, 500, 503
304 Not modified.
400 Bad request.
idempotency-key-requiredinvalid-cursorinvalid-query-parametermalformed-requestunsupported-parameter
401 Unauthenticated.
404 Not found.
406 Not acceptable.
429 Too many requests.
500 Server error.
503 Service unavailable.
This path allows GET, POST. Anything else answers 405.
Something wrong or missing on this page? Tell us