ApiTables Documentation
Backend technical reference for the storageitsolutions/api-tables Laravel package
ApiTables is a server-driven data table package for Laravel. You define table classes (columns, filters, sorting, row actions, bulk actions), register them in config, and the package exposes REST endpoints that return table metadata, paginated data, and action results for web and mobile frontends.
This section covers the backend layer — the storageitsolutions/api-tables Composer package. For the Next.js Frontend module, switch to Frontend documentation using the sidebar layer switcher.
Source (backend): src/ in API-Tables-Lib
About this documentation
Backend reference written by Mohamed Hasan (@mhmdhasan) while at Storage IT Solutions. ApiTables is a broader team effort; this site documents the Laravel package and control-table APIs — not the frontend React layer.
Start here by experience level
| Level | Path | Time |
|---|---|---|
| New hire / junior | Key concepts → Getting started → Glossary | ~1 hour |
| Mid-level | Architecture → Endpoints → Filters + Row actions | ~2 hours |
| Senior | Configuration → Email and exports → Package map → Troubleshooting | As needed |
First week on the team?
Read Key concepts first — it explains why ApiTables works the way it does. Then follow Getting started to build a table end-to-end. Keep Troubleshooting bookmarked.
What you will find here
| Need | Start here |
|---|---|
| Understand the big picture | Key concepts |
| Install the package | Getting started |
| Register tables & guards | Configuration |
| HTTP endpoints | Endpoints overview |
| Structure JSON fields | Table structure |
| Something is broken | Troubleshooting |
| Full file list | Package map |
| In / out of scope | Documentation coverage |
| Errors & responses | Errors and feedback |
Documentation map
Key concepts
Server-driven UI, lifecycle, glossary
Architecture
Package layout, lifecycle, and data flow
Configuration
Guards, middleware, tables registry, email
Endpoints
load-table, query-table, actions, refetch
Column types
text, link, boolean, datalist, actions, …
Filters
Filter classes, operators, advanced filters
Sorting
Default sort, sortables, query payload
Row actions
Per-row and selection actions
Bulk actions
Export, email reports, custom callbacks
Artisan commands
make:api-table, api-table:email-report
Getting started
Install, publish, first table
Troubleshooting
Common mistakes and fixes
Mental model
In one sentence: you describe the table in PHP; the client renders whatever you send.
1. Register
ConfigMap table name → model + table class in api-tables-config.php.
2. Define
PHPExtend TableAbstract — columns, filters, actions, Eloquent builder.
3. Structure
GETload-table returns columns, filters, and action definitions.
4. Query
POSTquery-table with filters, sorts, and pagination.