Skip to main content

Overview

The Matching API provides intelligent recommendations by analyzing user profiles, preferences, languages, expertise areas, and locations to suggest the best matches between tourists and guides.
curl -X GET "https://api.kinconecta.com/api/matching/tourist/123/guides?limit=10&offset=0" \
  -H "Authorization: Bearer YOUR_TOKEN"

Endpoint

GET /api/matching/tourist/{touristUserId}/guides

Path Parameters

touristUserId
Long
required
The unique identifier of the tourist user requesting guide recommendations

Query Parameters

limit
Integer
default:"20"
Maximum number of recommended guides to return (pagination)
offset
Integer
default:"0"
Number of results to skip for pagination

Response

results
Array<MatchResultDTO>
List of recommended guide matches with scoring details
totalCandidates
long
Total number of potential guide matches available
limit
int
The limit value used in this query
offset
int
The offset value used in this query

Example Response

{
  "results": [
    {
      "candidateUserId": 456,
      "score": 87.5,
      "matchedFields": [
        {
          "field": "language",
          "evidence": "Spanish",
          "points": 25.0
        },
        {
          "field": "interest",
          "evidence": "Cultural Tours",
          "points": 20.0
        },
        {
          "field": "location",
          "evidence": "Barcelona",
          "points": 30.0
        },
        {
          "field": "expertise",
          "evidence": "Art & Museums",
          "points": 12.5
        }
      ],
      "profilePreview": {
        "fullName": "Carlos Rodriguez",
        "avatarUrl": "https://cdn.kinconecta.com/avatars/456.jpg",
        "coverUrl": "https://cdn.kinconecta.com/covers/456.jpg",
        "locationLabel": "Barcelona, Spain",
        "rating": 4.8,
        "reviewsCount": 127
      }
    }
  ],
  "totalCandidates": 45,
  "limit": 10,
  "offset": 0
}

curl -X GET "https://api.kinconecta.com/api/matching/guide/456/tourists?limit=10&offset=0" \
  -H "Authorization: Bearer YOUR_TOKEN"

Endpoint

GET /api/matching/guide/{guideUserId}/tourists

Path Parameters

guideUserId
Long
required
The unique identifier of the guide user requesting tourist recommendations

Query Parameters

limit
Integer
default:"20"
Maximum number of recommended tourists to return (pagination)
offset
Integer
default:"0"
Number of results to skip for pagination

Response

The response structure is identical to the tourist endpoint, but returns tourist matches instead of guide matches.
results
Array<MatchResultDTO>
List of recommended tourist matches with scoring details. See the tourist endpoint above for detailed field descriptions.
totalCandidates
long
Total number of potential tourist matches available
limit
int
The limit value used in this query
offset
int
The offset value used in this query

Example Response

{
  "results": [
    {
      "candidateUserId": 789,
      "score": 92.0,
      "matchedFields": [
        {
          "field": "language",
          "evidence": "English",
          "points": 25.0
        },
        {
          "field": "interest",
          "evidence": "Adventure Sports",
          "points": 30.0
        },
        {
          "field": "location",
          "evidence": "Madrid",
          "points": 27.0
        },
        {
          "field": "adaptation",
          "evidence": "Wheelchair Accessible",
          "points": 10.0
        }
      ],
      "profilePreview": {
        "fullName": "Sarah Johnson",
        "avatarUrl": "https://cdn.kinconecta.com/avatars/789.jpg",
        "coverUrl": "https://cdn.kinconecta.com/covers/789.jpg",
        "locationLabel": "New York, USA",
        "rating": null,
        "reviewsCount": 0
      }
    }
  ],
  "totalCandidates": 23,
  "limit": 10,
  "offset": 0
}

Matching Algorithm

The matching algorithm analyzes multiple factors to calculate compatibility scores:

Scoring Factors

  • Languages (up to 25 points): Matches between tourist language preferences and guide spoken languages
  • Interests & Expertise (up to 30 points): Alignment between tourist interests and guide expertise areas
  • Location (up to 30 points): Geographic proximity and location preferences
  • Adaptations (up to 15 points): Special accessibility needs and guide capabilities

Score Interpretation

  • 90-100: Excellent match - Highly recommended
  • 75-89: Very good match - Strong compatibility
  • 60-74: Good match - Solid potential
  • Below 60: Moderate match - Consider other options

Build docs developers (and LLMs) love