The discovery feed is the core swiping experience in Debuta. This endpoint returns a ranked list of user profiles tailored to the authenticated user’s stored settings — covering geographic radius, age range, gender preference, verification status, and shared interests. Every returned profile includes anDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/desarrolladorandres2026-gif/Native-tailwind/llms.txt
Use this file to discover all available pages before exploring further.
afinidad (affinity) score object that the client uses to rank cards in the swipe stack.
All filters are read from the user’s settings document, which is configured separately via PUT /api/settings. There is no way to pass ad-hoc filter parameters on this request.
Endpoint
Returns paginated user profiles for the swipe feed. Requires a valid Bearer token.
Authentication
All requests must include a valid JWT in theAuthorization header.
How filtering works
Load the current user's settings
The server reads the authenticated user’s stored settings document to obtain all filter criteria. Settings are managed via
PUT /api/settings.Apply geospatial filtering
A MongoDB
$geoNear or $nearSphere query filters candidates to those within max_distance kilometres of the current user’s last known coordinates.Apply preference filters
The following settings are applied as additional query conditions:
| Setting | Type | Description |
|---|---|---|
max_distance | number | Maximum radius in kilometres |
min_age / max_age | number | Age range derived from birth_date |
show_me | string | Gender(s) to show ("men", "women", "everyone") |
verified_only | boolean | Restrict to is_verified: true profiles |
has_bio_only | boolean | Restrict to profiles with a non-empty bio |
min_photos | number | Minimum number of profile photos required |
looking_for | string | Relationship intention filter |
interests_filter | string[] | Require at least one shared interest tag |
Exclude seen and blocked users
Users the current user has already liked or disliked (recorded in
Match.likes) are excluded, as are any users in the blocked list and the current user themselves.Affinity score object
Each profile in the response includes anafinidad object:
Affinity breakdown for this profile relative to the current user.
Overall numeric affinity score (higher is better).
Whether the two users share Facebook mutual friends (if Facebook is linked).
Count of shared interest tags between the two profiles.
true if both users list the same city.true if the age difference is within the similarity threshold.Short human-readable summary string, e.g.
"3 intereses en común · misma ciudad".Response
200 OK — Returns an array of UserProfile objects, each augmented with an afinidad field.
Error responses
| Status | Description |
|---|---|
401 Unauthorized | Missing or invalid JWT |
403 Forbidden | Account suspended or incomplete profile |
500 Internal Server Error | Database or geospatial query failure |
Example
Notes
All filter criteria come from the user’s stored settings document. To change what
profiles appear in the feed — distance, age range, gender preference, etc. — use
PUT /api/settings. There are no query parameters on this endpoint itself.