Skip to content

Grid ​

Cascade returns stuff like advertisements, upsells and partial profiles, presumably ranked by algorithms or paid subscriptions. Search returns full profiles, seemingly ranked simply by distance.

Get Cascade ​

Requires Authorization.

Fetching the cascade also marks our profile online by always instantly setting onlineUntil to current time + exactly 600 s. Every cascade except a favorites one also moves our profile to nearbyGeoHash, whatever its filters or page.

GET /v4/cascade

Query:

  • everything from CascadeQuery
  • tribesImInto — array of integers concatenated with a ,, same IDs as tribes, -1 means "Not Specified", matches the tribes a profile is into (tribesImInto) instead of its own, see Tribes, optional

Response:

  • items — array of CascadeItem
  • nextPage — integer or null
  • shuffled — boolean
  • hiddenProfiles — array of long integers, profile IDs hidden from the cascade or null
  • hiddenProfileInfo — array of strings or null

Get Cascade (legacy) (deprecated) ​

Requires Authorization.

Removed in the official Android client v26.10.0. The client now uses GET /v4/cascade.

GET /v3/cascade

Query:

  • everything from CascadeQuery
  • exploreUuid — string, unknown, WIP, optional
  • sexualHealth — array of integers concatenated with a ,, -1 means "Not Specified", see Sexual health, optional

Response:

  • items — array of CascadeItem
  • nextPage — integer or null
  • shuffled — boolean
  • hiddenProfiles — array of long integers, profile IDs hidden from the cascade or null
  • hiddenProfileInfo — array of strings or null

Requires Authorization.

Results array appears to be capped to 600 per page. Use searchAfterProfileId or searchAfterDistance for pagination.

GET /v7/search

Query:

  • everything from GridQuery
  • online — boolean, optional
  • ageMinimum — integer, optional
  • ageMaximum — integer, optional
  • heightMinimum — float, optional
  • heightMaximum — float, optional
  • weightMinimum — float, optional
  • weightMaximum — float, optional
  • grindrTribesIds — array of integers concatenated with a ,, -1 means "Not Specified", see Tribes, optional
  • lookingForIds — array of integers concatenated with a ,, -1 means "Not Specified", see Looking for, optional
  • relationshipStatusIds — array of integers concatenated with a ,, -1 means "Not Specified", see Relationship status, optional
  • bodyTypeIds — array of integers concatenated with a ,, -1 means "Not Specified", see Body type, optional
  • sexualPositionIds — array of integers concatenated with a ,, -1 means "Not Specified", see Sexual position, optional
  • meetAtIds — array of integers concatenated with a ,, -1 means "Not Specified", see Meet at, optional
  • nsfwIds — array of integers concatenated with a ,, -1 means "Not Specified", see Accept NSFW pics, optional
  • profileTags — string, see Profile tags, optional
  • searchAfterDistance — string, optional
  • searchAfterProfileId — string, optional
  • freeFilter — boolean, optional

Response:

  • profiles — array of SearchProfileResult
  • lastDistanceInKm — float
  • lastProfileId — integer
  • inserts — object
    • mpuFree — integer
    • mpuXtra — integer
    • boostUpsell — array of integers
    • mrecCascadeFirst — integer
    • mrecCascadeSecond — integer
    • mrecCascadeThird — integer

GridQuery ​

  • nearbyGeoHash — Geohash
  • exploreGeoHash — Geohash, optional
  • photoOnly — boolean, optional
  • faceOnly — boolean, optional
  • notRecentlyChatted — boolean, optional
  • hasAlbum — boolean, optional
  • fresh — boolean, optional
  • genders — string, comma-separated list of gender IDs, see Get genders — a filter query param (CSV string), unlike the profile-write genders field which is an integer array, optional
  • pageNumber — integer, optional

CascadeQuery ​

  • everything from GridQuery
  • onlineOnly — boolean, optional
  • ageMin — integer, optional
  • ageMax — integer, optional
  • heightCmMin — number in centimeters, a range excludes profiles without a height, optional
  • heightCmMax — number in centimeters, a range excludes profiles without a height; the bound is loose, 130 also returns 131, optional
  • weightGramsMin — number in grams, a range excludes profiles without a weight, optional
  • weightGramsMax — number in grams, a range excludes profiles without a weight; the bound is loose, 45000 also returns 45359, optional
  • tribes — array of integers concatenated with a ,, -1 means "Not Specified", see Tribes, optional
  • lookingFor — array of integers concatenated with a ,, -1 means "Not Specified", see Looking for, optional
  • relationshipStatuses — array of integers concatenated with a ,, -1 means "Not Specified", see Relationship status, optional
  • bodyTypes — array of integers concatenated with a ,, -1 means "Not Specified", see Body type, optional
  • sexualPositions — array of integers concatenated with a ,, -1 means "Not Specified", see Sexual position ID, optional
  • meetAt — array of integers concatenated with a ,, -1 means "Not Specified", see Meet at, optional
  • nsfwPics — array of integers concatenated with a ,, -1 means "Not Specified", see Accept NSFW pics, optional
  • tags — string, see Profile tags, optional
  • rightNow — boolean, optional
  • favorites — boolean, distanceMeters is measured from our stored position (set by PUT /v4/location or any cascade without favorites), not from nearbyGeoHash, optional
  • showSponsoredProfiles — boolean, optional
  • shuffle — boolean, optional
  • hot — boolean, optional

CascadeItem ​

CascadeResponse ​

  • items — array of CascadeItem
  • nextPage — integer or null, optional
  • shuffled — boolean
  • hiddenProfiles — array of long integers, profile IDs hidden from the cascade or null, optional
  • hiddenProfileInfo — array of strings or null, optional

full_profile_v1 ​

Only for v3/cascade:

  • everything from ProfileFields
  • @type — string, "CascadeItemData$FullProfileV1"
  • tribes — array of integers, see Tribes
  • socialNetworks — array of SocialNetwork
  • takenOnGrindrMetadata — object
    • key is Media hash
    • takenOnGrindr — boolean
    • createdAt — unix timestamp in milliseconds

Only for v4/cascade:

  • age — integer, optional
  • heightCm — integer, optional
  • weightGrams — integer, optional
  • bodyType — integer, see Body type, optional
  • sexualPosition — integer, see Sexual position ID, optional

partial_profile_v1 ​

Only for v3/cascade:

  • @type — string, "CascadeItemData$PartialProfileV1"
  • cascadePlacementName — string, e.g. "mrec-cascade-first"

Only for v3/cascade:

  • @type — string, "CascadeItemData$Advert"

top_picks_v1 ​

Empty for v4/cascade.

Only for v3/cascade:

  • @type — string, "CascadeItemData$TopPicksV1"

explore_aggregation_v1 ​

  • uuid — string, UUIDv4
  • headerName — string, e.g. "🌎 Explore"
  • source — string, e.g. "cascade"
  • items — array of objects. @type determines contents: "ExploreAggregationItem$Location": data.onlineCount (integer), data.uuid (UUIDv3 string), data.location (id integer, name string e.g. "Minneapolis", suffix string e.g. "🇺🇸", lat float, lon float), data.profiles (array of objects with profileImageUrl URL string). "ExploreAggregationItem$Cta": empty.

Only for v3/cascade:

  • @type — string, "CascadeItemData$ExploreAggregationV1"

boost_upsell_v1 ​

Empty for v4/cascade.

Only for v3/cascade:

  • @type — string, "CascadeItemData$BoostUpsellV1"

unlimited_mpu_v1 ​

Empty for v4/cascade.

Only for v3/cascade:

  • @type — string, "CascadeItemData$UnlimitedMpuV1"

xtra_mpu_v1 ​

Empty for v4/cascade.

Only for v3/cascade:

  • @type — string, "CascadeItemData$XtraMpuV1"

favs_header_v1 ​

  • available — integer
  • displayed — integer
  • total — integer

Only for v3/cascade:

  • @type — string, "CascadeItemData$FavHeaderV1"

Right Now carousel of nearby profiles with an active Right Now post.

  • items — array of objects
    • profileId — long integer
    • onlineUntil — long integer or null
    • displayName — string or null
    • primaryImageUrl — string or null
    • favorite — boolean or null
    • chatted — boolean or null
    • rightNow — string or null
    • unreadCount — integer or null
    • viewed — boolean or null
    • roaming — boolean or null
    • isVisiting — boolean or null
    • isPopular — boolean or null
    • distanceMeters — number or null
    • isRewarded — boolean or null
    • fuzzedLat — number or null
    • fuzzedLon — number or null
    • rightNowPin — the pin thumbnail: thumbnailUrl, fullImageUrl, isNsfw, text or null
    • rightNowPost — the active post: id, thumbnailUrl, fullImageUrl, isNsfw, text, expirationTimestamp or null

hidden_profile_v1 ​

Hidden profile. Same shape as full_profile_v1.

Only for v4/cascade:

  • age — integer, optional
  • heightCm — integer, optional
  • weightGrams — integer, optional
  • bodyType — integer, see Body type, optional
  • sexualPosition — integer, see Sexual position ID, optional

smart_boost_profile_v1 ​

Smart boost profile. Same shape as full_profile_v1.

Only for v4/cascade:

  • age — integer, optional
  • heightCm — integer, optional
  • weightGrams — integer, optional
  • bodyType — integer, see Body type, optional
  • sexualPosition — integer, see Sexual position ID, optional

braze_event_profile_v1 ​

  • profileId — integer
  • onlineUntil — unix timestamp in milliseconds, optional
  • displayName — string, optional
  • primaryImageUrl — string, URL, optional
  • eventName — string, Braze event name

favs_xtra_upsell_v1 ​

  • available — integer

favs_unlimited_upsell_v1 ​

Empty.

day_pass_unlimited_upsell_v1 ​

Empty.

Edge Recommends carousel of profiles.

  • items — array of objects
    • profileId — long integer
    • source — string or null
    • tag — string or null
    • onlineUntil — long integer or null
    • displayName — string or null
    • primaryImageUrl — string or null
    • favorite — boolean or null
    • chatted — boolean or null
    • rightNow — string or null
    • unreadCount — integer or null
    • viewed — boolean or null
    • roaming — boolean or null
    • isVisiting — boolean or null
    • isPopular — boolean or null
    • distanceMeters — number or null
    • isRewarded — boolean or null
    • fuzzedLat — number or null
    • fuzzedLon — number or null
    • rightNowPin — the pin thumbnail: thumbnailUrl, fullImageUrl, isNsfw, text or null

for_you_now_v1 ​

  • remainingUnlocks — integer or null, optional
  • recommendationUuid — string
  • items — array of objects

favorites_header_no_free_results_v1 ​

Empty.

favorites_header_no_xtra_results_v1 ​

Empty.

profile_hide_status ​

Unlike other cascade items, count sits directly on the item alongside type, not under data.

  • count — integer

rewarded_profiles_entry_point_v1 ​

Entry point card offering to unlock profiles by watching a rewarded ad, see Rewarded Ad Type CASCADE_PROFILES_UNLOCK. Rendered full width rather than as a grid tile.

  • previewImageUrls — array of strings, URLs of the profile images that would be unlocked, see Media -> Public CDN files -> Profile Images
  • remainingRewards — integer, how many times the reward can still be redeemed
  • profilesPerRedemption — integer, how many profiles a single redemption unlocks

SearchProfileResult ​

  • age — integer or null
  • displayName — string
  • distance — float
  • hasFaceRecognition — boolean
  • isFavorite — boolean
  • new — boolean
  • lastChatTimestamp — number, may be 0
  • lastViewed — unix timestamp in milliseconds or null
  • lastUpdatedTime — unix timestamp in milliseconds
  • medias — array of ProfileMedia or null
  • profileId — integer
  • profileImageMediaHash — string, See Media -> Public CDN files -> Profile Images or null
  • profileTags — array of Profile tags
  • seen — unix timestamp in milliseconds
  • showAge — boolean
  • showDistance — boolean
  • approximateDistance — boolean
  • boosting — boolean
  • hasAlbum — boolean
  • gender — array of integers or [-1], see Get genders

SearchProfilesResponse ​

  • profiles — array of SearchProfileResult
  • lastDistanceInKm — float
  • lastProfileId — integer
  • inserts — object, optional
    • mpuFree — integer
    • mpuXtra — integer
    • boostUpsell — array of integers
    • mrecCascadeFirst — integer
    • mrecCascadeSecond — integer
    • mrecCascadeThird — integer

CascadeResponseProfile ​

Profile data returned in cascade items.

  • profileId — integer
  • onlineUntil — unix timestamp in milliseconds
  • displayName — string, optional
  • distanceMeters — integer, optional
  • lastOnline — unix timestamp in milliseconds, optional
  • rightNow — RightNowStatus
  • unreadCount — integer
  • isVisiting — boolean
  • isPopular — boolean

Only for v3/cascade:

  • photoMediaHashes — array of strings, see Media
  • lookingFor — array of integers, see Looking for
  • sexualPosition — integer, see Sexual position ID, optional
  • approximateDistance — boolean
  • isFavorite — boolean
  • isBoosting — boolean
  • hasChattedInLast24Hrs — boolean
  • hasUnviewedSpark — boolean
  • isTeleporting — boolean
  • isRoaming — boolean
  • isRightNow — boolean
  • hasUnreadThrob — boolean
  • isBlockable — boolean, optional
  • isBoostingSomewhereElse — boolean

Only for v4/cascade:

  • primaryImageUrl — string, URL
  • favorite — boolean
  • viewed — boolean
  • chatted — boolean
  • roaming — boolean

Open Grind is not affiliated with Grindr in any way.