# Search WIP entries

**Advanced WIP filtering with custom GraphQL where clauses and dynamic ordering**
Supports wipType selection, date ranges, and client/job constraints.
By default, only active WIP records are returned. Pass `isActive` in the `where`
clause to include inactive records (e.g. for reconciliation syncs).
Real Example:

```bash
curl --location 'https://{{host}}/v1/wips/search' \
--header 'Authorization: bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
  "pageSize": 1,
  "where": {
    "_and": [
      {
        "_or": [
          {
            "type": {
              "_in": ["TIME", "EXPENSE"]
            }
          },
          {
            "notes": {
              "_ilike": "%consultation%"
            }
          }
        ]
      },
      {
        "approved": {
          "_eq": true
        }
      },
      {
        "loggedDate": {
          "_gte": "1900-01-01T00:00:00Z"
        }
      },
      {
        "clientId": {
          "_in": [
            1001,
            1002,
            1003
          ]
        }
      }
    ]
  },
  "orderBy": [
    {
      "loggedDate": "desc"
    },
    {
      "value": "desc"
    }
  ]
}'
```

Endpoint: POST /gql/v1/wips/search
Version: 1.0.0
Security: BearerAuth

## Request fields (application/json):

  - `pageSize` (integer)

  - `where` (object)
    GraphQL-style where clause for complex WIP filtering
    Example: {"_and":[{"_or":[{"type":{"_in":["TIME","EXPENSE"]}},{"notes":{"_ilike":"%consultation%"}}]},{"approved":{"_eq":true}},{"loggedDate":{"_gte":"1900-01-01T00:00:00Z"}},{"clientId":{"_in":[1001,1002,1003…

  - `orderBy` (array)
    Dynamic ordering specifications
    Example: [{"loggedDate":"desc"},{"value":"desc"}]

