Search Cases
Search for cases using a flexible query language.
Search vs. List Endpoints
The Search and List endpoints serve different purposes and have distinct performance characteristics.
Use the Search endpoint (POST /cases/search) when you need to perform complex queries with boolean logic (AND/OR/NOT), filter by custom fields, assignee, case queue, or SLA expiration, or apply multiple conditions simultaneously. Search is optimized for flexible querying and is faster than paginating through all resources when looking for specific records.
Use the List endpoint (GET /cases) for simple listing with basic filters like status, case template, account, inquiry, or report.
Data Freshness
Do not use search for read-after-write flows because the data will not be immediately available to search. Under normal operating conditions, data is searchable within approximately 1 minute of creation or modification. Propagation of new or updated data could be delayed during an outage. For workflows that require immediate data availability after creating or updating a case, use the List Cases endpoint instead.
Searchable Attributes
The following attributes can be used in query predicates:
| Attribute | Description |
|---|---|
| template | Case template (e.g., ctmpl_ABC123) |
| case_template_id | Case template (e.g., ctmpl_ABC123) |
| status | Case status (e.g., open, pending, resolved) |
| state | Case state |
| resolution | Case resolution |
| created_at | Case creation timestamp |
| updated_at | Case last updated timestamp |
| resolved_at | Case resolution timestamp |
| sla_expires_at | SLA expiration timestamp |
| assignee | Assigned user (e.g., user_ABC123) |
| case_queue | Case queue (e.g., cqueue_ABC123) |
| case_queue_id | Case queue (e.g., cqueue_ABC123) |
| resolver | Resolver user |
| account_id | Related account (e.g., act_ABC123) |
| inquiry_id | Related inquiry (e.g., inq_ABC123) |
| tag_id | Related tag (e.g., tag_ABC123) |
| fields.* | Custom case field (e.g., fields.priority) |
Note: Custom fields (fields.*) must be configured as searchable on the Case Template to be queryable.
Note: account_id, inquiry_id, tag_id, case_template_id, case_queue_id, and resolution cannot be used in sort.
Note: account_id, inquiry_id, and tag_id match against the 50 most recently added accounts, inquiries, and tags on a case. A case related to more than 50 of one of these will not match on the older ones.
Request
- Base URL: https://api.withpersona.com/api/v1
- URL: https://api.withpersona.com/api/v1/cases/search
- Auth: HTTP bearer
Query parameters
Comma-separated list(s) of attributes to include in the response. This can be used to customize which attributes will be serialized in the response. See Serialization for more details.
Headers
Determines casing for the API response.
Ensures the request is idempotent.
Server API version. More info on versioning can be found here.
Request body
Response
This endpoint returns a collection of Case objects matching the search criteria.
Changes
No recorded changes to this operation across all 1 revision of this API.