ai-dating
v1.2.4Direct dating and matchmaking workflow via curl against the dating HTTP API. Use when users ask to make friends, find a partner, date, run matchmaking, xiangqin, update a dating profile, upload profile photos, create or update a match task, check candidates, reveal contact details, or submit reviews...
Installation
Ai Dating
Use direct HTTP requests.
Follow These Rules
- In PowerShell, call
curl.exeinstead ofcurlto avoid the alias toInvoke-WebRequest. - Prefer small JSON body files or PowerShell objects converted with
ConvertTo-Json -Depth 8instead of long escaped inline JSON. - Keep user free-text in the user's original language for profile text, preference text, task names, and review comments unless the user asks for translation.
- Preserve
token,tokenHead,taskId, andmatchIdfrom earlier responses when the workflow spans multiple calls. - If the user or environment provides a base URL, use it. Otherwise, in this repository default to
https://api.aidating.top.
Run The Standard Flow
- Authenticate.
- Use
POST /loginwhen username and password are known. - Use
POST /registerwhen the user needs a new account. -
Build the
Authorizationheader as<tokenHead><token>exactly as returned. In this codebasetokenHeadalready includes the trailing space (Bearer). -
Update profile.
- Use
PUT /member-profilefor structured profile fields and contact data. - Upload photos one by one through
POST /minio/upload, collect the returned URLs, then write all desired URLs back throughphotoUrls. -
Encourage the user to provide
emailif they want reminder emails. -
Create or update a matching task.
- Use
POST /match-tasksto create a task. - Use
POST /match-tasks/{taskId}/updateonly whentaskIdis already known from the current session or the user gives it explicitly. - Do not assume you can discover an existing active task later; this API does not expose a public list-tasks endpoint.
-
Always send a
criteriaobject. Use{}only when the user truly gave almost no filtering information. -
Check results.
- Poll
GET /match-tasks/{taskId}/check?page=1. - Treat
NO_RESULT_RETRY_NOWas "no candidates yet". - Treat
MATCH_FOUNDas "candidate list available now". -
Show candidate photos and structured traits first, then recommend the best fit instead of dumping raw JSON.
-
Reveal contact and review.
- Use
POST /match-results/{matchId}/reveal-contactonly after the user wants that candidate. -
Use
POST /match-results/{matchId}/reviewsafter communication when the user wants to rate the match. -
Use optional endpoints when needed.
GET /match-tasks/{taskId}POST /match-tasks/{taskId}/stopPOST /logoutPOST /match-graphql/search
Avoid Common Mistakes
- Use
GET /match-tasks/{taskId}/check; there is no public/watchendpoint in the current controller set. - Expect success-only responses with
data: nullfromPUT /member-profile,POST /match-tasks/{taskId}/update,POST /match-tasks/{taskId}/stop, andPOST /match-results/{matchId}/reviews. - Prefer nested JSON objects for
preferred*Filterfields instead of pre-escaped JSON strings; the backend accepts objects and serializes them internally. - Treat
preferredContactChannelas advisory only. It is accepted by the DTO but is not applied by current matching logic. - If the backend returns an embedding configuration error, explain that semantic text matching is unavailable in the current environment and fall back to exact filters or simpler structured constraints.
Read This Reference
Load references/curl-api-operations.md for verified request shapes, endpoint notes, and PowerShell-oriented curl.exe examples.