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.
API reference
Every endpoint, its parameters and answers, and a box to try them with your key.
Examples
Export a month of worklogs, log time from a script, total hours for payroll.
AI assistants (MCP)
Let Claude, Cursor or another assistant read and log your time, with the same key.
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/meInvoke-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
| Part | Read | Write | Scopes |
|---|---|---|---|
| Worklogs | Logged time you may see | Your own | worklogs:read, worklogs:write |
| Plans | Planned time you may see | Your own | plans:read, plans:write |
| Timesheets | Yours, and those you review | Submit yours; approve and send back those you review | timesheets:read, timesheets:write |
| Time totals | By person, issue, project, account, work type or day | time:read | |
| Teams | The teams you may see, with their members | teams:read | |
| Absences | Time off you may see, and the absence types | Ask for your own time off (sick leave too) and cancel it | absences: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.