Skip to main content

Search

Both the dashboard API and the public /api/v1 API support the same four query parameters on GET /emailInbox/{id}/messages:

ParameterBehavior
qFull-text search over subject and body
fromCase-insensitive substring match on the sender address
tagsExact match; multiple values are OR'd together
categoriesExact match; multiple values are OR'd together

Multiple different parameters (e.g. tags and categories) are AND'd together — a message must match every parameter supplied, but any one of the OR'd values within a single parameter.

curl "https://app.programmableinbox.com/api/v1/emailInbox/{id}/messages?q=invoice&tags=billing" \
-H "Authorization: Bearer sk_live_..."

Search filters; it doesn't rank

Results stay ordered newest-first regardless of query relevance, and pagination works identically with or without a search query.

Grouped view and search don't combine

grouped=true (one row per thread) and any search parameter together return a 400 — collapsing search hits into threads would either miscount matches or return a thread whose latest message doesn't actually contain the search term. Set grouped=false when searching.