Skip to content
ShiftlyDevelopers
Documentation menu

API reference

Every resource, generated from the same definition the API enforces.

Base addresses
EnvironmentBase address
Productionhttps://host.shiftly.au/v1
Sandboxhttps://demo.shiftly.au/v1

Every request carries an access credential as a bearer token and every response carries Shiftly-Request-Id and Shiftly-Version. The machine-readable definition is at /openapi.json, and every request is ready to run in the Postman collection.

Connection

  • Connection

    The link between your app and one business. Every access credential belongs to exactly one.

    any permission

Business

  • Business

    The business this connection is for.

    settings:read

  • Locations

    The places a business operates. A location owns the timezone for everything that happens there.

    settings:read, roster:read, timesheets:read, people:read, leave:read

  • Positions

    The jobs people are rostered into at a location.

    settings:read, roster:read, timesheets:read, people:read, leave:read

  • Public holidays

    The public holidays each location observes, worked out the way Shiftly pays them, including days the business added or removed.

    settings:read, roster:read, timesheets:read, people:read, leave:read

  • Projects

    Jobs or cost centres that shifts and timesheets are recorded against. The business may call them something else in Shiftly. Archive a project by changing its status; projects are not deleted.

    settings:read, roster:read, timesheets:read, people:read, leave:read, projects:write

People

  • Employees

    The people who work at the business. A person is added in Shiftly, not through the API. Someone who has left is an archived employment; their own record is no longer shared with the business.

    people:read

  • Employments

    A person's job at the business: when it started, on what basis, and (with the pay permission) what they are paid. An employment is created and ended in Shiftly.

    people:read

Rostering

  • Rosters

    One roster per location per week. Reading never creates one: a week nobody has rostered yet returns nothing. Rosters are published in Shiftly.

    roster:read

  • Shifts

    Rostered shifts. A shift your app creates is a draft until a manager publishes the roster in Shiftly. Any shift that has not started can be changed or deleted; a change to a published shift makes it a draft again until a manager republishes.

    roster:read, roster:write

  • Who can cover a shift

    Staff at the shift's location who may work its position and are free: no overlapping shift, no approved or pending leave, and not unavailable. The list is not ranked.

    roster:read

  • Open-shift requests

    Staff asking to work a published shift nobody holds. Managers decide them in Shiftly. A request is removed, not kept, when the shift is deleted or the person is given an overlapping shift.

    roster:read

  • Shift swaps

    Staff offering a shift to a named colleague, who accepts or declines in Shiftly. A cancelled offer is removed, not kept.

    roster:read

  • Availability

    When people have said they can and cannot work. Each record is a rule that may repeat, not a list of days.

    roster:read

OnDemand

  • OnDemand shifts

    Shifts a venue offers to independent workers through Shiftly OnDemand. Your app can create, change and delete drafts. The venue sets the hourly rate and publishes each shift in Shiftly. Nothing about the worker is shared.

    ondemand:read, ondemand:write

Time

  • Timesheets

    Worked time. A timesheet your app creates is pending until a manager approves it in Shiftly. Pay is always worked out by Shiftly.

    timesheets:read, timesheets:write

  • Who's on now

    Staff clocked in right now: one row per open timesheet started in the last 24 hours, earliest clock-in first. It says where a person is, so read it when you need it rather than polling it.

    timesheets:read

  • Timesheet totals

    Hours, counts and cost of timesheets started in a date range, split into approved and pending. Rejected timesheets and timesheets still open are left out, and a range with none returns no rows. Totals are rounded once, so they can differ by a few cents from adding up each timesheet.

    timesheets:read

  • Labour costs

    Rostered and actual hours and cost per calendar day and location, against the location's labour target. Rostered figures need rostering access and actual figures need timesheet access; costs need pay access. Days with no shifts or timesheets are left out. Sales are not included, so the labour percentage itself is yours to work out.

    roster:read, timesheets:read

Leave

  • Leave requests

    Requests for leave. A request your app submits is pending until a manager decides it in Shiftly. Dates are calendar days at the business's first location.

    leave:read, leave:write

  • Leave blackout periods

    Periods when the business limits leave, such as a busy season. Dates are calendar days at the business's first location.

    leave:read

  • Leave balances

    What leave a person has, by leave type. Worked out when you ask, so there is nothing to page through.

    leave:read

  • Leave types

    The kinds of leave this business offers and how each builds up.

    leave:read

Pay rules

  • Awards

    The Fair Work awards this business pays under.

    payrules:read