Tuner Docs

A Laravel package to fine-tune your APIs.

View on GitHub
📚 Documentation
🧪 Basic Features
🧪 Intermediate Features
🧪 Advanced Features

Filter (filter[column])

The filter query allows you to compare column values using math operators like =, >, >=, <, <=, <>. You can also chain multiple conditions with logical operators.



Basic Comparison

Request
GET /api/users?filter[id]=1
Query Parameters
Name Type Description
filter[id] string Match users with ID = 1
Response
[
  { "id": 1, "name": "...", ... }
]


Greater Than

Request
GET /api/users?filter[id]=>1
Response
[
  { "id": 2, "name": "...", ... },
  { "id": 3, "name": "...", ... },
  { "id": 4, "name": "...", ... }
]


Greater Than or Equal To

Request
GET /api/users?filter[id]=>=1
Response
[
  { "id": 1, "name": "...", ... },
  { "id": 2, "name": "...", ... },
  { "id": 3, "name": "...", ... },
  ...
]


Less Than

Request
GET /api/users?filter[id]=<3
Response
[
  { "id": 1, "name": "...", ... },
  { "id": 2, "name": "...", ... }
]


Less Than or Equal To

Request
GET /api/users?filter[id]=<=3
Response
[
  { "id": 1, "name": "...", ... },
  { "id": 2, "name": "...", ... },
  { "id": 3, "name": "...", ... }
]


Not Equal To

Request
GET /api/users?filter[id]=<>3
Response
[
  { "id": 1, "name": "...", ... },
  { "id": 2, "name": "...", ... },
  { "id": 4, "name": "...", ... },
  ...
]


Logical Operators

You can combine filtering rules using:

Syntax Logic Description
filter[and column] All conditions must be true (AND)
filter[or column] At least one condition must be true (OR)
filter[and! column] Negate condition (NOT AND)
filter[or! column] Negate one of the conditions (NOT OR)

Example: AND Operator

Request
GET /api/users?filter[id]=>=2&filter[and status]=active

Matches users with ID >= 2 and status is active.

Response
[
  { "id": 2, "status": "active", ... },
  { "id": 4, "status": "active", ... },
  ...
]


Example: OR Operator

Request
GET /api/users?filter[id]=<3&filter[or status]=guest

Matches users with ID < 3 or status is guest.

Response
[
  { "id": 1, ... },
  { "id": 2, ... },
  { "id": 3, "status": "guest", ... },
  ...
]


Example: NOT Operator

Request
GET /api/users?filter[id]=<3&filter[and! status]=banned

Excludes users with status=banned where ID < 3.

Response
[
  { "id": 1, "status": "active", },
  { "id": 2, "status": "active" },
  ...
]