Squadra PlanningSquadra
Pro and Enterprise plans

Connect Squadra to your tools

Our API lets you retrieve your data (schedules, timesheets, employees, leave) from any external tool: Power BI, Metabase, HRIS, Excel scripts, internal dashboards… with zero code to write on the Squadra side.

What is it really for?

Power BI / Metabase dashboard

Build a BI dashboard on working hours, labor cost, absences.

Automated Excel export

Daily script that pulls timesheets and fills your payroll sheet.

HRIS or CRM sync

Align headcount and absences with your HR software or CRM.

Read-only

No writes, your data can't be modified via the API.

Scoped access

Each key has its permissions. Create one key per integration, safer.

1000 calls / hour

Generous quota, full tracing, instant revocation if needed.

How it works, in 3 steps

1

Generate an API key

From Admin → API Keys, click "New key". Pick a name (e.g. "Power BI dashboard") and check the permissions you need. The key is shown ONLY ONCE, copy it immediately.

Generate an API key
2

Send it with each request

In your tool, add the key in the HTTP "Authorization" header with the Bearer format. This is how we identify your organization.

Authorization: Bearer sqd_live_xxxxxxxxxxxxxxxxxxxx
3

Call a URL

Call the URL matching the data you want (employees, timesheets, shifts...). You get clean JSON, ready to use.

curl https://www.squadraplanning.com/api/v1/employees \
  -H "Authorization: Bearer sqd_live_..."

What can you retrieve?

Here's the list of available data. Every URL starts with https://www.squadraplanning.com/api

GET/v1/organization

Name and plan of your organization

organization.read
GET/v1/employees

Active or inactive employees with role, contract, hourly rate

employees.read
GET/v1/locations

Your locations, address, GPS coordinates

locations.read
GET/v1/shifts

Scheduled shifts in a date range (hours, employee, location)

shifts.read
GET/v1/timesheets

Actual clock-ins (start, end, anomalies)

timesheets.read
GET/v1/leave-requests

Leave requests (status, dates, type)

leave_requests.read

Filter results

All list endpoints accept filters in the URL:

limit

Number of results (max 200, default 50)

offset

Skip the first N results (for pagination)

from

Start date (ISO format)

to

End date (ISO format)

user_id

Restrict to a specific employee

location_id

Restrict to one location

A full example

You want to retrieve all of Lucile's clock-ins for April:

curl "https://www.squadraplanning.com/api/v1/timesheets?user_id=LUCILE_ID&from=2026-04-01&to=2026-04-30" \
  -H "Authorization: Bearer sqd_live_xxxxxxxxxxxx"

# Response
{
  "data": [
    {
      "id": "a1b2c3...",
      "user_id": "LUCILE_ID",
      "check_in":  "2026-04-15T09:03:00Z",
      "check_out": "2026-04-15T17:58:00Z",
      "break_duration": 45,
      "status": "VALIDATED",
      "is_late": false
    }
  ]
}

Troubleshooting

401Key missing, invalid, revoked or expired
402API requires Pro or Enterprise plan (upgrade)
403Your key doesn't have permission for this endpoint (check its scopes)
429Too many calls (max 1000/hour), slow down
500Our problem, contact support

Ready to start?

30 seconds to generate a key and test.

Open my API space