> ## Documentation Index
> Fetch the complete documentation index at: https://docs.billbooks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> What the Billbooks API does, who it's for, and how it's organized

Billbooks now has a REST API you can build on. It covers five core resources: **Invoices**, **Estimates**, **Clients**, **Items**, and **Expenses**, each request scoped to exactly one Billbooks organization through a per-organization API key.

This is a deliberately separate surface from the internal endpoints the Billbooks web and mobile apps use. Those use a browser/mobile session-token scheme and aren't intended for third-party use. This API uses a simple bearer token instead, built for scripts, integrations, and your own tools.

## What you can do

<CardGroup cols={2}>
  <Card title="Invoices" icon="file-invoice" href="/reference/invoices">
    Full parity with the internal app: real stock deduction, real expense-linking, real client-balance reconciliation, not a stubbed subset.
  </Card>

  <Card title="Estimates" icon="file-lines" href="/reference/estimates">
    Create, update, and manage estimates for your clients.
  </Card>

  <Card title="Clients" icon="users" href="/reference/clients">
    Manage the client list every invoice and estimate is scoped to.
  </Card>

  <Card title="Items" icon="box" href="/reference/items">
    Your catalog of billable items, with optional stock tracking.
  </Card>

  <Card title="Expenses" icon="receipt" href="/reference/expenses">
    Track and link expenses, including to specific invoices.
  </Card>
</CardGroup>

## Before you start

* **Authentication** is a Bearer token you generate from inside the Billbooks app itself. See [Authentication](/authentication) for the exact steps.
* **Rate limits** apply per resource, independently, not as one shared quota. See [Rate Limits](/rate-limits).
* Every response follows one consistent shape, `{"success": true, "data": ...}` on success, a structured error envelope on failure. See [Errors](/errors).
* There is no webhooks feature on this API today. If your integration needs to react to events (a new payment, an updated invoice), you'll need to poll the relevant endpoint.

Ready to make your first call? Head to the [Quickstart](/quickstart).
