Skip to main content

Feed API

Personalized mission discovery with intelligent ranking.

Endpoints​

Get Personalized Feed​

GET /feed

Returns missions ranked by relevance for the authenticated user.

Query Parameters

ParameterTypeDescription
latitudenumberUser's current latitude
longitudenumberUser's current longitude
categorystringFilter by category
guildIdstringFilter by guild
searchQuerystringFull-text search
sortBystringrelevance, reward, distance, urgency
skipnumberPagination offset
takenumberResults per page (default: 20)

Response

{
"missions": [
{
"mission": {
"id": "clx123...",
"title": "Package Delivery",
"category": "Delivery",
"rewardAmount": "15000000",
"expiresAt": "2025-12-31T23:59:59Z",
"poster": { ... },
"guild": { ... }
},
"factors": {
"eligibility": true,
"rewardScore": 75,
"urgencyScore": 80,
"distanceScore": 90,
"xpMatchScore": 65,
"guildBoost": 1.5,
"posterReputationScore": 85,
"categoryPreferenceScore": 70,
"finalScore": 82.5
},
"rank": 1
}
],
"total": 42
}

Search Missions​

GET /feed/search

Full-text search across mission titles, descriptions, and tags.

Query Parameters

ParameterTypeDescription
qstringSearch query
statestringFilter by state
categorystringFilter by category
guildIdstringFilter by guild
limitnumberMax results (default: 50)

Response

{
"results": [
{
"id": "clx123...",
"title": "Package Delivery",
"description": "Deliver package from A to B",
"relevanceScore": 0.95,
"highlightedTitle": "<em>Package</em> Delivery"
}
],
"query": "package",
"total": 15
}

Ranking Algorithm​

The feed uses a weighted scoring system to personalize results:

FactorWeightDescription
Reward25%Higher rewards score better
Urgency20%Closer deadlines score higher
Distance20%Closer missions preferred
XP Match15%Matches user's XP level
Poster Reputation10%Higher reputation preferred
Category Preference10%Based on user's history

Guild Boost​

Missions from user's guilds receive a 1.5x multiplier on the final score.

Eligibility Filter​

Ineligible missions (insufficient XP, not in guild, etc.) are filtered out or ranked lower.


Category Preferences​

The system learns user preferences based on:

  • Completed mission categories
  • Time spent viewing missions
  • Search history
  • Rating patterns

Categories with higher engagement receive higher categoryPreferenceScore.