Sorting
Endpoints that support sorting accept a singlesort query parameter with one field:direction pair.
asc or desc. The request is rejected with a 400 if the direction is missing or unrecognized, if the endpoint doesn’t support sorting on the field, or if you pass more than one pair (for example, sort=updatedAt:desc,createdAt:asc).
Today, GET /conversations is the only endpoint that accepts sort, on createdAt or updatedAt. Other list endpoints return results in the fixed order described on their reference page.
Filtering
Endpoints that support filtering expose one query parameter per filterable field. Equality is the implicit default, and every parameter present in the query string combines with logical AND — there’s no implicit OR across distinct parameters.participant, not participants).
Operators
Non-equality operators are appended to the field name in brackets:
Each filter supports only some of these operators. A range filter accepts either the inclusive
[gte]/[lte] pair or the exclusive [gt]/[lt] pair, never both. An operator the filter doesn’t support is rejected with a 400.
+ in E.164 phone numbers as %2B, since a literal + in a query string is read as a space.
OR logic
Values within a single[in] parameter OR together — status[in]=missed,no-answer matches either status. That’s the only place OR applies: parameters across the query string still AND, so status[in]=missed,no-answer&direction=incoming requires the incoming direction on top of either status.
Cross-field OR (for example, “status is missed OR direction is outgoing”) isn’t supported. There’s no bracket or suffix in this scheme that expresses OR across distinct fields, so don’t try to construct one — build the request as two separate calls instead, or get in touch if this is a hard blocker for your use case.