---
title: "Analyse a dating-app screenshot and merge it into the profile"
method: POST
path: "/api/v1/contacts/{id}/dating-profile"
---

# Analyse a dating-app screenshot and merge it into the profile

`POST /api/v1/contacts/{id}/dating-profile`

## Request

- Base URL: `https://memchats.com`
- URL: `https://memchats.com/api/v1/contacts/{id}/dating-profile`
- Auth: HTTP bearer

Costs a vision model call. Reads the screenshot with a vision model and extracts structured fields: network, nickname, age, distance, whether she lives there or is passing through, the two languages (app UI vs what she wrote), what she is looking for, kids, her verbatim bio, interests and concrete hooks from her photos. A newer screenshot is MERGED into the stored profile: an empty or unknown value never overwrites a known one, and when a chat screenshot contradicts the profile on location, residency, age or what she is looking for, the chat wins and the contradiction is returned in `discrepancies`. `originNetwork` is only set the first time. The first time a network is known, a network history period is opened. A contact whose relationship is not in the dating family is switched to `dating`. Returns `screenshotKind`, which decides whether the next message has a character limit.

## Path parameters

- `id` integer, required

## Response `200`

The merged profile, the contradictions found and screenshotKind

- object
  - `profile` DatingProfile, nullable
    - `network` string, nullable
    - `originNetwork` string, nullable
    - `nickname` string, nullable
    - `age` integer, nullable
    - `distanceKm` integer, nullable
    - `location` string, nullable
    - `residency` 'local' | 'visiting' | 'unknown'
    - `contentLanguage` string, nullable
    - `uiLanguage` string, nullable
    - `languages` string[]
    - `lookingFor` string, nullable: casual, serious, friendship or unclear.
    - `hasKids` boolean, nullable
    - `wantsKids` boolean, nullable
    - `ageRangeSought` object, nullable
      - `min` integer
      - `max` integer
    - `bio` string, nullable
    - `bioLanguage` string, nullable: ISO 639-1 of the bio: detected on the text, else contentLanguage.
    - `interests` string[]
    - `photoHooks` string[]
    - `updatedAt` string, date-time, nullable
  - `discrepancies` DatingDiscrepancy[]
    - `field` string
    - `profileValue` unknown
    - `chatValue` unknown
    - `message` string: Spanish sentence to show as is.
  - `screenshotKind` 'profile' | 'chat' | 'profile_and_chat'

## Other responses

- `400`: No screenshot in the request, or an unknown network
- `404`: Contact not found
- `413`: Over 15 MB
- `415`: Not an accepted image type
- `422`: The screenshot could not be read

---

[API](https://skmtc.dev/memchats/apis/memchats-api.md) · [All operations](https://skmtc.dev/memchats/apis/memchats-api/llms.txt) · [OpenAPI document](https://skmtc.dev/memchats/apis/memchats-api/revisions/e62bca06f785?raw)
