Archiving my OKCupid Data

I recently realized I used OKCupid as far back as 2015. There should be conversations with friends who are no longer alive, messages from me when I was much less formed, and things that led to formative events in my life. Let's see if I can get the data.

TL;DR

  • I successfully requested an export through OKCupid's support team.
  • Chat history was 1-sided, and only 5 years of history. After asking for more, I was given the entire 6.5 years of history.
  • Login history went back 6.5 years, to account creation date

Access Request Export

According to their Privacy Policy they fulfill right to access requests. I do not live somewhere with laws regarding this, but I put in a support ticket anyway.

The privacy policy and help page does not have a special request for this. I made a generic "Contact Us" request with category "Other" and asked to export chat history, browsing history, and login times.

I was asked to provide a copy of my government photo ID and then they started the export.

The export looked like a generic export and not one based on what I asked for in my support ticket. I ended up getting chat history, login times, device history, answered questions, search filters, purchase history, and other information about my profile (see the sample below). I also see keys in the export like "reportType": "DSAR", and "isSenderOnly": true , so there's definitely the option to get different information.

Sample output of export
{
  "userInfoReport": {
    "id": "5555555555555555555",
    "reportType": "DSAR",
    "voteCounts": {
      "votesCast": 500,
      "likesCast": 500,
      "votesReceived": 500,
      "likesReceived": 500,
      "matches": 500
    },
    "email": "xxx@gmail.com",
    "username": "xxx",
    "phoneNumber": "xxx",
    "loginCount": 500,
    "joinDate": 1693299565000,
    "lastLogin": 1693299565000,
    "ipAddress": "xxx",
    "birthdate": 1693299565000,
    "gender": "",
    "orientation": "Other",
    "age": 28,
    "education": "Attended",
    "schools": "",
    "occupation": "Undefined",
    "job": "--",
    "location": "xxx",
    "status": "Active",
    "selfieVerifiedStatus": 0,
    "accountPaidLevel": "NOT_PAID",
    "registrationLocation": "",
    "essays": [{
      "title": "My self-summary",
      "text": "xxx",
      "date": 1650830449000
    }],
    "essaysHistorical": [],
    "lastGeolocation": {
      "latitude": "41.0000000",
      "longitude": "-80.000000",
      "date": 1599491366000
    },
    "loginHistoryAggregate": [{
      "date": 1693267200000,
      "ip": "xx.xx.xx.xx",
      "count": 2
    }],
    "messageThreadsPaged": {
      "pageInfo": {
        "hasMore": true,
        "after": "2"
      },
      "data": [{
        "type": "Message Thread",
        "messages": [{
          "from": "5555555555555555555",
          "to": "0",
          "date": 1651836433000,
          "body": "xxxx message text",
          "attachments": "",
          "mmsUrl": null
        }]
      }],
      "isSenderOnly": true
    },
    "photos": [{
      "id": "2259404591077287153",
      "url": "xxx",
      "status": "User Picture Active",
      "uploadDate": 1574398524000,
      "caption": "xxx",
      "isSelfieVerified": false,
      "selfieVerifiedDate": null
    }],
    "purchases": [{
      "id": "12534035755645328131",
      "product": "A-List subscription (via acct level)",
      "eventType": "Changed",
      "transaction": "lost subscription",
      "paymentType": "Credit card",
      "charged": "",
      "date": 1526695256000,
      "comments": "userid 5555555555555555555 lost feature 10001"
    }],
    "questions": [{
      "id": "72086",
      "text": "xxx",
      "answer": "Yes",
      "acceptableAnswers": ["Yes", "No"],
      "importance": "irrelevant",
      "date": 1652205239000,
      "comment": null,
      "commentDate": null,
      "isPublic": true
    }],
    "searchFilters": {
      "ageMin": 50,
      "ageMax": 50,
      "genderTags": [],
      "genderFilter": "Everybody",
      "relationshipType": ["Short-term dating", "Hookup", "New friends", "Long-term dating"],
      "distance": "25 mi"
    },
    "selfieVerificationHistory": [],
    "signupUserAgent": "OKCA 8.1.3",
    "thirdPartyIntegrations": [{
      "name": "facebook",
      "accessToken": "xxx",
      "isActive": true
    }],
    "userDevices": [{
      "hardwareId": "xxx",
      "hardwareVersion": "xxx",
      "lastUse": 1693195008000
    }]
  }
}

Login history gives IP and timestamps back to account creation, 6.5 years for me.

Chat history was less interesting. It was 1-sided. The other person's messages are not included and the "to" field is set to "0" so there's no info on who it was with. It is threaded though so I might be able to discern conversation partner. While it only goes back to 2018, I did notice a "hasMore": true, in the field so there might be more to ask support for. This is contrary to me observing the frontend API which only returns around 14 conversations with "hasMore": false,, most likely because I deactivated my account and they show only recent things after that event to prevent overwhelming users?

I ended up asking support for more message history. It took a couple of days but I was given a second data export containing all 1-sided conversations back to account creation. Yay!