Company API · shared Swagger · tenant selected by API key

Use TotemClock inside another product, without forcing its interface.

The authenticated API exposes operational employee records, sites, schedules, external punches, calculated days, timecards, timesheets and CSV exports. Configure the company in the app, create a scoped key, then call the same versioned API from your own software.

Company API v1

⚿

Scoped, revocable credentials

Owners and administrators create keys from API e integrazioni. Choose read/write scopes, copy the secret once, then rotate or revoke it at any time.

Manage company API keys →
JS

Server-side JavaScript client with types

Download a zero-dependency ESM client for every Company API v1 operation. It refuses browser execution, keeps the key in the X-API-Key header and never accepts an organizationId.

const client = createTotemClockCompanyClient({
  apiKey: process.env.TOTEMCLOCK_API_KEY
});
console.log(await client.organization());
Download JavaScript client →
Download TypeScript declarations →
Py

Server-side Python client

Download a Python 3.9+ client for every Company API v1 operation. It uses only the standard library, keeps the secret in the X-API-Key header, requires HTTPS and rejects organizationId tenant selectors.

client = TotemClockCompanyClient(
    os.environ["TOTEMCLOCK_API_KEY"]
)
print(client.organization())
Download Python client →
▶

Executable payroll, ERP and HR workflows

Run a monthly payroll CSV export, a read-only HR snapshot or a guarded ERP punch example from Node.js. The ERP workflow is a dry run unless you explicitly set TOTEMCLOCK_CONFIRM_WRITE=CREATE_PUNCH, and it checks the employee against the company selected by the key before writing.

TOTEMCLOCK_MONTH=2026-09 node \
  totemclock-company-api-workflows.mjs \
  payroll-export > timecards.csv
Download executable workflow examples →
Download the required JavaScript client →

Free public tools · no key · GET and JSON POST

Put reliable standalone time calculations inside another product.

These stateless endpoints cover decimal-hour conversion, individual or repeated worked shifts, and caller-defined timesheet totals. They remain public and require no account or API key.

Try the API

◷

Worked hours

GET /api/tools/worked-hours?start=08:30&end=17:30&breakMinutes=60

Run example →
{ }

Structured JSON batch

POST /api/tools/worked-shifts-summary

curl -X POST https://totemclock.com/api/tools/worked-shifts-summary \
  -H 'Content-Type: application/json' \
  -d '{"shifts":[{"start":"08:00","end":"17:00","breakMinutes":60}]}'
Inspect the request schema →
{ }

Structured timesheet JSON

POST /api/tools/timesheet-summary

curl -X POST https://totemclock.com/api/tools/timesheet-summary \
  -H 'Content-Type: application/json' \
  -d '{"entries":["08:00","07:30"],"regularMinutesLimit":900}'
Inspect the request schema →
▣

Calendar-ready work shifts

POST /api/tools/worked-shifts-calendar.ics

curl -X POST https://totemclock.com/api/tools/worked-shifts-calendar.ics \
  -H 'Content-Type: application/json' \
  -d '{"shifts":[{"start":"2026-09-10T08:00:00+02:00","end":"2026-09-10T17:00:00+02:00","breakMinutes":60}]}' \
  -o totemclock-work-shifts.ics
Inspect the calendar schema →
{ }

JavaScript, TypeScript, Python and API clients

Import a zero-dependency ESM or Python client, including explicit GET and JSON methods for both batch summaries plus CSV and iCalendar exports. The installable npm-format archive includes the checked TypeScript declarations and is served directly here; it is not presented as an npm registry publication.

npm install https://totemclock.com/downloads/totemclock-time-tools-1.0.0.tgz
Download installable package →
Download JavaScript client →
Download TypeScript declarations →
Download Python client →
Open specification →
Download Postman collection →

Need the complete interactive workflow?

Use the advanced calculator for rounding, batch conversions, shifts and CSV export in Italian, English, French or German.

Open the full converter