Save match
Matches
Save match
Save a matched property to the caller’s saved list.
POST
Save match
Overview
Saves the matched property to the caller’s saved list. The server records the timestamp in the caller’s own save slot (savedByA if the caller is userA, savedByB otherwise) — it never touches the other participant’s slot.
Idempotent: if the match is already saved, the original timestamp is kept and returned (re-saving does not move it forward).
Authentication
Bearer <accessToken> required. Scope: user. Requires completed onboarding + approved tenancy (requireOnboarded).
Path parameters
| Param | Type | Notes |
|---|---|---|
matchId | string | 24-char ObjectId of the match. 400 if malformed. |
Query parameters
None.Request body
None.Response — 200 OK
| Field | Type | Notes |
|---|---|---|
matchId | string | Echo of the saved match id. |
savedAt | string | ISO 8601 UTC timestamp of the save (the original timestamp on a repeat save). |
Example response
Error responses
| Status | Code | Meaning |
|---|---|---|
| 400 | VALIDATION_FAILED | matchId is not a 24-char ObjectId. |
| 401 | UNAUTHENTICATED | Missing, malformed, or expired access token. |
| 404 | NOT_FOUND | No such match, or the caller is not a participant. |
Side effects
Writes the caller’s ownsavedByA / savedByB slot on the matches row. No push notification or fan-out — saving is private to the caller.