AND logic: every filter sent must be satisfied for a record to appear in the result.
Invalid filters return 422 with the exact field that failed validation.
Filters by resource
GET /v1/people
| Parameter | Type | Comparison | Description |
|---|---|---|---|
full_name | string | contains (ilike) | Filter by name. Case-insensitive. |
email | string | exact | Filter by email address. Exact match across all emails on the contact. |
company_id | UUID | exact | Returns only people linked to the given company. |
created_after | ISO 8601 | >= | Records created on or after this date. |
created_before | ISO 8601 | <= | Records created on or before this date. |
updated_after | ISO 8601 | >= | Records updated on or after this date. |
updated_before | ISO 8601 | <= | Records updated on or before this date. |
GET /v1/companies
| Parameter | Type | Comparison | Description |
|---|---|---|---|
full_name | string | contains (ilike) | Filter by company name. Case-insensitive. |
email | string | exact | Filter by email address. Exact match across all emails on the company. |
created_after | ISO 8601 | >= | Records created on or after this date. |
created_before | ISO 8601 | <= | Records created on or before this date. |
updated_after | ISO 8601 | >= | Records updated on or after this date. |
updated_before | ISO 8601 | <= | Records updated on or before this date. |
GET /v1/tasks
| Parameter | Type | Comparison | Description |
|---|---|---|---|
person_id | UUID | exact | Tasks linked to the given person. |
company_id | UUID | exact | Tasks linked to the given company. |
deal_id | UUID | exact | Tasks linked to the given deal. |
type_id | UUID | exact | Tasks of the given type. |
priority | string | exact | high, medium, or low. |
completed | boolean | exact | true for completed tasks, false for open ones. |
created_after | ISO 8601 | >= | Tasks created on or after this date. |
created_before | ISO 8601 | <= | Tasks created on or before this date. |
GET /v1/products
| Parameter | Type | Comparison | Description |
|---|---|---|---|
name | string | contains (ilike) | Filter by product name. Case-insensitive. |
is_active | boolean | exact | true for active products, false for inactive ones. |
currency | string | exact | ISO 4217 currency code (e.g., BRL, USD). Filters by product currency. |
billing_cycle | string | exact | monthly, yearly, weekly, daily, or one_time. |
GET /v1/tags
| Parameter | Type | Comparison | Description |
|---|---|---|---|
name | string | contains (ilike) | Filter by tag name. Case-insensitive. |
GET /v1/lists
| Parameter | Type | Comparison | Description |
|---|---|---|---|
name | string | contains (ilike) | Filter by list name. Case-insensitive. |
GET /v1/task-types
| Parameter | Type | Comparison | Description |
|---|---|---|---|
title | string | contains (ilike) | Filter by task type title. Case-insensitive. |
GET /v1/custom-fields
| Parameter | Type | Comparison | Description |
|---|---|---|---|
show_people | boolean | exact | true for fields that appear on people. |
show_companies | boolean | exact | true for fields that appear on companies. |
show_deals | boolean | exact | true for fields that appear on deals. |
Combining filters with pagination
Filters combine normally with pagination parameters (page, per_page, order_by, order). The meta.total in the response always reflects the total number of records matching the applied filters, not the overall workspace total.
Validation errors
Filters with invalid values return422 identifying the field: