LogQuill

Getting started with the API

Read and write time in LogQuill from your own scripts and tools, with a personal API key.

LogQuill's REST API lets your scripts and tools do what you can do in LogQuill: export worklogs, log time from another system, read timesheets, total time for payroll or billing. It acts as you, with a key you make yourself.

1. Make a key

In LogQuill, open your menu (your name at the bottom of the sidebar), then API keys, then Create a key. Tick only what your script needs, and copy the key: it's shown once. API keys

2. Make a first call

Every request goes to https://api.logquill.com/v1, with your key in the Authorization header:

curl -H "Authorization: Bearer $LOGQUILL_KEY" https://api.logquill.com/v1/me
Invoke-RestMethod https://api.logquill.com/v1/me `
  -Headers @{ Authorization = "Bearer $env:LOGQUILL_KEY" }
import os, requests

answer = requests.get(
    "https://api.logquill.com/v1/me",
    headers={"Authorization": f"Bearer {os.environ['LOGQUILL_KEY']}"},
)
print(answer.json())
const answer = await fetch("https://api.logquill.com/v1/me", {
  headers: { Authorization: `Bearer ${process.env.LOGQUILL_KEY}` },
});
console.log(await answer.json());

It answers with who the key acts as, what you may do in LogQuill, and the key's scopes:

{
  "accountId": "712020:4d42...",
  "displayName": "Alex Martin",
  "permissions": ["time:log:own"],
  "key": {
    "name": "Payroll export",
    "prefix": "logquill_AbCdEfGh",
    "scopes": ["worklogs:read", "time:read"],
    "expiresAt": "2027-01-12T10:00:00.000Z"
  }
}

Keep the key out of your code: read it from an environment variable or your tool's secret settings, as above. Never put it in a link, a shared file, a chat or a ticket. If it leaks, revoke it in API keys and make a new one.

What you can reach

PartReadWriteScopes
WorklogsLogged time you may seeYour ownworklogs:read, worklogs:write
PlansPlanned time you may seeYour ownplans:read, plans:write
TimesheetsYours, and those you reviewSubmit yours; approve and send back those you reviewtimesheets:read, timesheets:write
Time totalsBy person, issue, project, account, work type or daytime:read
TeamsThe teams you may see, with their membersteams:read
AbsencesTime off you may see, and the absence typesAsk for your own time off (sick leave too) and cancel itabsences:read, absences:write

"You may see" is the same as in LogQuill's reports: your own time; your team members' time if you lead a team; time on the Jira projects and accounts you lead; and everyone's if your role sees all time.

For absences, it's as on LogQuill's Absences page: your own, your teams' and those you approve, and everyone's for HR and whoever sees everyone's time. Waiting, rejected and cancelled ones only for their person, their approvers and HR; the type and note only for those who may know them (sick leave is health data).

Next: How the API works, for pages, dates, errors and limits.