# Using the API

When you run `quickback compile`, Quickback generates a complete REST API from your definitions. This section covers how to use the generated endpoints.

## Base URL

Generated endpoints use the contract selected in `quickback.config.ts`. The
backward-compatible default is `/api/v1/`; projects with
`contract: { routes: "v2" }` use `/api/v2/` (and `/auth/v2/` for Better Auth):

```
https://your-api.com/api/v1/{resource}
```

The examples below show the default v1 contract. Replace `/api/v1` with
`/api/v2` when the project selects v2. The generated OpenAPI document is the
authoritative path list for the compiled project.

The resource name is derived from the filename: `jobs.ts` → `/api/v1/jobs`.

## Endpoint Overview

For each resource with `export default defineTable(...)`:

| Method | Endpoint | Description |
|--------|----------|-------------|
| `GET` | `/api/v1/{resource}` | List records (paginated) |
| `GET` | `/api/v1/{resource}/:id` | Get single record |
| `POST` | `/api/v1/{resource}` | Create record |
| `PATCH` | `/api/v1/{resource}/:id` | Update record |
| `DELETE` | `/api/v1/{resource}/:id` | Delete record |
| `POST` | `/api/v1/{resource}/batch` | Batch create |
| `PATCH` | `/api/v1/{resource}/batch` | Batch update |
| `DELETE` | `/api/v1/{resource}/batch` | Batch delete |

## Guides

- [CRUD Endpoints](/api/crud) — Detailed CRUD endpoint reference
- [Query Parameters](/api/query-params) — Filtering, pagination, and sorting
- [Batch Operations](/api/batch-operations) — Bulk create, update, delete with atomic mode
- [Views API](/api/views) — Column-level projections
- [Actions API](/api/actions) — Custom business logic endpoints
- [Errors](/api/errors) — Error responses and HTTP status codes
