# Filter carriers Query carriers using flexible filter criteria with AND/OR logic. By default, only non-deleted carriers are returned (deletedAt: { isNull: true }). Override this by explicitly setting deletedAt filter criteria. Returns carriers of all types (TRUCKLOAD, AIR, CARTAGE, LINEHAUL, LTL, OCEAN, RAIL) with type-specific fields included based on carrier type. Endpoint: POST /carriers/filter Version: 1.0.0 Security: BearerAuth ## Request fields (application/json): - `filter` (object) Filter criteria (optional - omit to return all carriers). Note: deletedAt automatically defaults to { isNull: true } unless explicitly overridden. Example: {"and":[{"type":{"equalTo":"TRUCKLOAD"}},{"status":{"equalTo":"ACTIVE"}},{"inFmcsa":{"equalTo":true}}]} - `filter.and` (array) All conditions must match (recursive) Example: [{"type":{"equalTo":"TRUCKLOAD"}},{"status":{"equalTo":"ACTIVE"}},{"inFmcsa":{"equalTo":true}}] - `filter.or` (array) At least one condition must match (recursive) - `filter.not` (object) Negates the filter - `filter.id` (object) Filter options for ID fields (limited operations - exact match only) - `filter.id.equalTo` (string) Exact match - `filter.id.in` (array) Matches any UUID in the array - `filter.friendlyId` (object) Filter options for string fields - `filter.friendlyId.notEqualTo` (string) Not equal to - `filter.friendlyId.in` (array) Matches any value in the array - `filter.friendlyId.notIn` (array) Does not match any value in the array - `filter.friendlyId.includes` (string) Contains substring (case-insensitive) - `filter.friendlyId.notIncludes` (string) Does not contain substring (case-insensitive) - `filter.friendlyId.startsWith` (string) Starts with prefix (case-insensitive) - `filter.friendlyId.notStartsWith` (string) Does not start with prefix (case-insensitive) - `filter.friendlyId.endsWith` (string) Ends with suffix (case-insensitive) - `filter.friendlyId.notEndsWith` (string) Does not end with suffix (case-insensitive) - `filter.friendlyId.isNull` (boolean) Field is null (true) or not null (false) - `filter.name` (object) Filter options for string fields - `filter.dbaName` (object) Filter options for string fields - `filter.key` (object) Filter options for client key fields (limited operations - exact match only) - `filter.email` (object) Filter options for string fields - `filter.phone` (object) Filter options for string fields - `filter.website` (object) Filter options for string fields - `filter.status` (object) Filter options for string fields - `filter.statusReason` (object) Filter options for string fields - `filter.type` (object) Filter options for string fields - `filter.mcNumber` (object) Filter options for string fields - `filter.dotNumber` (object) Filter options for string fields - `filter.scac` (object) Filter options for string fields - `filter.einNumber` (object) Filter options for string fields - `filter.ffNumber` (object) Filter options for string fields - `filter.mxNumber` (object) Filter options for string fields - `filter.rfcNumber` (object) Filter options for string fields - `filter.iataCode` (object) Filter options for string fields - `filter.isHazmat` (object) Filter options for boolean fields - `filter.tsaApproved` (object) Filter options for boolean fields - `filter.trucks` (object) Filter options for integer fields - `filter.trucks.lessThan` (integer) Less than - `filter.trucks.lessThanOrEqualTo` (integer) Less than or equal to - `filter.trucks.greaterThan` (integer) Greater than - `filter.trucks.greaterThanOrEqualTo` (integer) Greater than or equal to - `filter.trailers` (object) Filter options for integer fields - `filter.drivers` (object) Filter options for integer fields - `filter.powerUnits` (object) Filter options for integer fields - `filter.currency` (object) Filter options for string fields - `filter.isFactoringPreferred` (object) Filter options for boolean fields - `filter.goldenCarrierId` (object) Filter options for UUID fields (all operations) - `filter.goldenCarrierId.notIn` (array) Does not match any UUID in the array - `filter.paymentTermId` (object) Filter options for UUID fields (all operations) - `filter.rating` (object) Filter options for string fields - `filter.ratingDate` (object) Filter options for datetime fields - `filter.ratingDate.lessThan` (string) Before this datetime - `filter.ratingDate.lessThanOrEqualTo` (string) On or before this datetime - `filter.ratingDate.greaterThan` (string) After this datetime - `filter.ratingDate.greaterThanOrEqualTo` (string) On or after this datetime - `filter.operatingAbility` (object) Filter options for string fields - `filter.inFmcsa` (object) Filter options for boolean fields - `filter.insuranceCompany` (object) Filter options for string fields - `filter.insuranceExpirationDate` (object) Filter options for datetime fields - `filter.createdAt` (object) Filter options for datetime fields - `filter.updatedAt` (object) Filter options for datetime fields - `filter.deletedAt` (object) Filter options for datetime fields - `pageSize` (integer) Number of results per page Example: 50 - `cursor` (string) Pagination cursor for next page ## Response 200 fields (application/json): - `data` (array, required) - `pageInfo` (object, required) - `pageInfo.pageSize` (integer, required) Number of items per page Example: 50 - `pageInfo.hasNextPage` (boolean, required) Whether there are more pages Example: true - `pageInfo.hasPreviousPage` (boolean) Whether there are previous pages - `pageInfo.endCursor` (string,null) Cursor for the next page (null if no next page) Example: "eyJpZCI6IjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCJ9" ## Response 400 fields (application/json): - `error` (string, required) Error code - `message` (string, required) Human-readable error message ## Response 401 fields (application/json): - `error` (string, required) Error code - `message` (string, required) Human-readable error message ## Response 500 fields (application/json): - `error` (string, required) Error code - `message` (string, required) Human-readable error message