Message endpoints return canonical messages (stable ids across edits or repeats). Requests are ordinary HTTPS reads — integrate against OpenAPI for filters, sort, and pagination parameters.

Message list

curl -H "Authorization: Bearer $TOKEN" \
  "https://api-v2.watchcollect.com/v2/messages?page_size=50"
Prefer cursor-based pagination from the reference rather than offset paging where offered. Filters commonly include group, sender, time window, classification fields, and view_id when applying a saved view.

Detail and occurrences

curl -H "Authorization: Bearer $TOKEN" \
  "https://api-v2.watchcollect.com/v2/messages/$CANONICAL_MESSAGE_ID"

curl -H "Authorization: Bearer $TOKEN" \
  "https://api-v2.watchcollect.com/v2/messages/$CANONICAL_MESSAGE_ID/occurrences"
Detail payloads expose sender, group context, media availability flags, edit/revoke state, and classification payloads when present.

Saved views

Persist reusable filters for feeds or listing-oriented resources:
curl -X POST "https://api-v2.watchcollect.com/v2/views" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"Rolex buy side","resource":"watch_listings","tab_key":"market","filters":{"brand":"Rolex"}}'
Preview without persisting UI-only experiments:
curl -X POST "https://api-v2.watchcollect.com/v2/views/$VIEW_ID/preview" \
  -H "Authorization: Bearer $TOKEN"

Blocked phones

Per-view helpers exclude noisy sender numbers without changing global identity records — endpoints live under each view_id in the reference.

Missing rows?

Confirm the relevant group is selected. Messages from unselected groups are ignored for feed surfaces.