> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.fullstackplus.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.fullstackplus.ai/_mcp/server.

# Introduction

The FullStack+ API lets you read the projects you can see and the commits in
them. It exists mainly so a time-tracker can ask *what was committed while this
timer was running* and turn the answer into an invoice line.

Everything is a read. There is no endpoint that changes anything.

## Times are UTC

Project VMs run `Etc/UTC`, so commits are recorded with a `+00:00` offset.

A `from`/`to` with no timezone is read as **UTC**, and every response echoes back
the exact instants it used — so you can always see how your input was
interpreted rather than assuming.

> **Warning**
>
> Send an explicit offset if your caller works in local time. Brisbane is `+10:00`;
> Perth is `+08:00`. A naive local timestamp sent from Perth lands eight hours out.

## Ranges filter on commit date

Git's own `--since`/`--until` filter on the **commit** date, not the author date,
and this API matches that rather than inventing its own rule.

The two differ when a commit has been rebased or amended: the author date is when
the work was written, the commit date is when it was recorded. Every commit
carries both — `authoredAt` and `committedAt` — and the response names which one
the range used in `dateField`.

On this platform they are normally identical, because the runner commits as it
works.

## Rate limits

600 requests per hour and 5000 per day, counted per **key** rather than per IP —
so CI runners behind a shared address do not compete with each other.