Skip to content

Profiles

Profile tags

Requires Authorization.

GET /v1/tags

Response:

Array of ProfileTagLanguage.

Get a profile by ID

Requires Authorization.

GET /v7/profiles/{id}

Response:

Get multiple profiles by ID

Requires Authorization.

POST /v3/profiles

Body:

  • targetProfileIds — array of strings with numeric ids, max profiles number per one request is 150

Response:

Update own profile (full), WIP

This endpoint hasn't been researched yet

Requires Authorization.

Profile object, fully replaces current version.

PUT /v3.1/me/profile

Body:

Profile

Update own profile (partial), WIP

This endpoint hasn't been researched yet

Requires Authorization.

Profile object, only updates specified keys.

PATCH /v4/me/profile

Body:

ProfilePatch

Profile tags suggestions, WIP

This endpoint hasn't been researched yet

PUT /v4/profile-tags/suggestions

Profile tags translations, WIP

This endpoint hasn't been researched yet

GET /v5/profile-tags/translations

Headers:

  • L-Locale — string

Upload media

Correct request's Content-Type header is required.

POST /v5/chat/media/upload

Query:

  • length — long integer
  • looping — boolean
  • takenOnGrindr — boolean

Body:

Binary file.

Response:

  • mediaId — long integer
  • mediaHash — string, See Media
  • url — URL

Upload media (legacy)

Requires Authorization.

You must ensure thumbCoords's width and height dimensions are equal, i.e. y2-y1 must equal to x2-x1. Submitting non-suqare thumbnail won't trigger any errors and it will be uploaded to CDN, however attempting to use such illegal thumbnail dimensions image in Edit profile photos will result in it being silently dropped/skipped.

Also there is a legacy POST /v3/me/profile/images.

POST /v4/media/upload

Query:

  • thumbCoordsRectF
  • takenOnGrindr — boolean

Body:

Binary file.

Response:

  • hash — string
  • imageSizes — array of objects
    • size — integer or null
    • fullUrl — string
    • thumbnail — boolean or null
    • state — string
    • mediaHash — string, See Media
    • rejectionReason — string or null
  • mediaId — integer

Edit profile photos

Requires Authorization.

Setting both primaryImageHash and secondaryImageHashes to null works. But setting primaryImageHash to a hash value while setting secondaryImageHashes to null causes HTTP status 400 Bad Request error. It's recommended to just use [] for secondaryImageHashes rather than null.

Supplied images must have square thumbnails, otherwise they will be silently skipped. See Upload media.

Repeating primaryImageHash value in secondaryImageHashes array will result in secondaryImageHashes's entry being silently dropped from supplied request array. Repeating secondaryImageHashes values will result in successfully saving the array as-is to the server, however official mobile client seems to drop repeating media when processing secondaryImageHashes response.

PUT /v3/me/profile/images

Body:

  • primaryImageHash — string or null
  • secondaryImageHashes — array of strings or null

Response:

Empty.

Delete profile photos

Requires Authorization.

This endpoint removes photo from your profile as well as deletes the media from CDN.

DELETE /v3/me/profile/images

Body:

  • media_hashes — array of strings

Response:

Empty.

Get my profile photos

Requires Authorization.

GET /v3.1/me/profile/images

Response:

Check if profiles are reachable, WIP

This endpoint hasn't been researched yet

Requires Authorization.

POST /v4/profiles/reachable

Body:

  • profileIds — array of strings with numeric ids

Response:

  • profileIds — array of strings with numeric ids

Get profile insights v1, WIP

This endpoint hasn't been researched yet

GET /v1/profile-insights/{profileId}

Get profile insights v2, WIP

This endpoint hasn't been researched yet

GET /v2/profile-insights/{profileId}

Get pronouns

Requires Authorization.

GET /v1/pronouns

Response:

Array of Pronoun.

Get genders

GET /public/v2/genders

Response:

Array of Gender.

Get genders (v1 alias)

GET /public/v1/genders

Response:

Array of Gender.

Suggest gender or pronoun

Requires Authorization.

PUT /v4/genderpronoun/suggestions

Body:

  • category — string, either gender or pronoun
  • suggestedValue — string

Response:

Empty

RectF

Array of 4 floats or nulls: Bottom edge ("y2") in pixels, Left edge ("x1") in pixels, Right edge ("x2") in pixels, Top edge ("y1") in pixels. When used in query, stringified as follows: y2,x1,x2,y1.

ProfileMaskedMin

Minimal masked profile.

  • distance — number or null
  • profileImageMediaHash — string, See Media or null
  • isFavorite — boolean

ProfileMasked

Masked profile (extra fields revealed).

ProfileMin

Minimal profile fields.

  • profileId — string with numeric id
  • displayName — string or null
  • onlineUntil — unix timestamp in milliseconds or null

ProfileMedia

  • mediaHash — string, See Media
  • type — integer
  • state — integer
  • reason — string or null
  • takenOnGrindr — boolean or null
  • createdAt — unix timestamp in milliseconds or null

ProfileShort

Short profile, combines ProfileMasked and ProfileMin.

  • everything from ProfileMasked
  • everything from ProfileMin
  • age — integer, may be 0 or null
  • showAge — boolean
  • showDistance — boolean
  • approximateDistance — boolean
  • lastChatTimestamp — number, may be 0 or null
  • isNew — boolean
  • lastUpdatedTime — unix timestamp in milliseconds
  • medias — array of ProfileMedia

ProfileFields

Optional profile fields.

  • meetAt — array of Meet at
  • vaccines — array of Vaccines
  • genders — array of integers
  • pronouns — array of integers

ProfileRightNow

Right Now status info on a profile.

  • rightNowText — string or null
  • rightNowPosted — unix timestamp in milliseconds or null
  • rightNowDistance — long integer or null
  • rightNowThumbnailUrl — string or null
  • rightNowFullImageUrl — string or null

ProfileExtraFields

Extra profile fields.

  • nsfwAccept NSFW pics or null
  • verifiedInstagramId — string or null
  • isBlockable — boolean or null
  • showTribes — boolean
  • showPosition — boolean

TravelPlanEmbedded

  • endDateUtc — unix timestamp in milliseconds or null
  • geohashGeohash
  • id — long integer or null
  • locationName — string
  • showOnProfile — boolean or null
  • startDateUtc — unix timestamp in milliseconds or null

RightNowMedia

  • mediaId — long integer or null
  • thumbnailUrl — string
  • fullImageUrl — string
  • contentType — string
  • isNsfw — boolean or null

Profile

Full profile object.

  • everything from ProfileShort
  • everything from ProfileFields
  • everything from ProfileRightNow
  • everything from ProfileExtraFields
  • aboutMe — string or null
  • ethnicityEthnicity or null
  • relationshipStatusRelationship status or null
  • grindrTribes — array of Tribes
  • lookingFor — array of Looking for
  • bodyTypeBody type or null
  • hivStatusHIV status or null
  • lastTestedDate — unix timestamp in milliseconds or null
  • height — number in centimeters or null
  • weight — number in grams or null
  • socialNetworks — object
  • identity — unknown or null
  • hashtags — array
  • profileTags — array of Profile tags
  • tapped — boolean
  • tapType — boolean or null
  • lastReceivedTapTimestamp — unix timestamp in milliseconds or null
  • isTeleporting — boolean
  • isRoaming — boolean
  • arrivalDays — number or null
  • unreadCount — number, may be absent
  • lastThrobTimestamp — unknown
  • sexualHealth — array of Sexual health
  • isVisiting — boolean
  • travelPlans — array of TravelPlanEmbedded
  • isInAList — boolean
  • tribesImInto — array of Tribes
  • showVipBadge — boolean
  • rightNowShareLocation — string, "NONE" or null
  • rightNowMedias — array of RightNowMedia

ProfilePatch

ProfileSummaryWithRightNow

SocialNetwork

Social network user reference.

  • userId — string, username or null
  • site — unknown, e.g. "twitter" | "facebook" | "instagram"

ProfileTagLanguage

  • language — string
  • categoryCollection — array of objects
    • text — string
    • possessiveText — string or null
    • tags — array of objects
      • tagId — integer
      • text — string
      • key — string

ChatMediaUploadResponse

  • mediaId — long integer
  • mediaHash — string, See Media
  • url — URL

LegacyMediaUploadResponse

  • hash — string
  • imageSizes — array of objects
    • size — integer or null
    • fullUrl — string
    • thumbnail — boolean or null
    • state — string
    • mediaHash — string, See Media
    • rejectionReason — string or null
  • mediaId — integer

EditProfilePhotosRequest

  • primaryImageHash — string or null
  • secondaryImageHashes — array of strings or null

DeleteProfilePhotosRequest

  • media_hashes — array of strings

ProfileImageState

This type hasn't been researched yet

Profile media state.

  • mediaHash — string, See Media
  • type — integer
  • state — integer

Pronoun

  • pronounId — integer
  • pronoun — string

Gender

  • genderId — integer
  • gender — string
  • displayGroup — integer
  • sortProfile — integer or null
  • sortFilter — integer or null
  • genderPlural — string or null
  • excludeOnProfileSelection — array of integers or null
  • excludeOnFilterSelection — array of integers or null
  • alsoClassifiedAs — array of integers

GenderPronounSuggestionRequest

  • category — string, either gender or pronoun
  • suggestedValue — string

Sexual position ID

Sexual position ID.

  • 1 — Top
  • 2 — Bottom
  • 3 — Versatile
  • 4 — Vers Bottom
  • 5 — Vers Top
  • 6 — Side

Ethnicity

Ethnicity.

  • 1 — Asian
  • 2 — Black
  • 3 — Latino
  • 4 — Middle Eastern
  • 5 — Mixed
  • 6 — Native American
  • 7 — White
  • 8 — Other
  • 9 — South Asian

Relationship status

Relationship status.

  • 1 — Single
  • 2 — Dating
  • 3 — Exclusive
  • 4 — Committed
  • 5 — Partnered
  • 6 — Engaged
  • 7 — Married
  • 8 — Open Relationship

Body type

Body type.

  • 1 — Toned
  • 2 — Average
  • 3 — Large
  • 4 — Muscular
  • 5 — Slim
  • 6 — Stocky

HIV status

HIV status. Not to be confused with Sexual health.

  • 1 — Negative
  • 2 — Negative, on PrEP
  • 3 — Positive
  • 4 — Positive, undetectable

Accept NSFW pics

Accept NSFW pics.

  • 1 — Never
  • 2 — Not At First
  • 3 — Yes Please

Meet at

Meet at preferences.

  • 1 — My Place
  • 2 — Your Place
  • 3 — Bar
  • 4 — Coffee Shop
  • 5 — Restaurant

Sexual health

Sexual health (also "Health Practices"). Not to be confused with HIV status.

  • 1 — Condoms
  • 2 — I'm on doxyPEP
  • 3 — I'm on PrEP
  • 4 — I'm HIV undetectable
  • 5 — Prefer to discuss

Looking for

Looking for.

  • 2 — Chat
  • 3 — Dates
  • 4 — Friends
  • 5 — Networking
  • 6 — Relationship
  • 7 — Hookups

Tribes

Tribe.

  • 1 — Bear
  • 2 — Clean-Cut
  • 3 — Daddy
  • 4 — Discreet
  • 5 — Geek
  • 6 — Jock
  • 7 — Leather
  • 8 — Otter
  • 9 — Poz
  • 10 — Rugged
  • 11 — Trans
  • 12 — Twink
  • 13 — Sober

Vaccines

Vaccine.

  • 1 — COVID-19
  • 2 — Monkeypox
  • 3 — Meningitis

Open Grind is not affiliated with Grindr in any way.