Memberships requested from identity endpoint are sometimes empty

Hi everyone,

Our app integrates with Patreon by requesting for various data regarding a user’s relationship with a specific creator’s page. It is set up with the identity scope and requests for data by hitting the following URI:

https://www.patreon.com/api/oauth2/v2/identity?include=memberships&fields%5Bmember%5D=patron_status,last_charge_date,will_pay_amount_cents,full_name&fields%5Buser%5D=full_name

In most cases, this returns the data we expect (data anonymized for privacy)

{
  "data": {
    "attributes": {
      "full_name": "Firstname Lastname"
    },
    "id": "000000000",
    "relationships": {
      "memberships": {
        "data": [
          {
            "id": "00000000-0000-0000-0000-000000000000",
            "type": "member"
          }
        ]
      }
    },
    "type": "user"
  },
  "included": [
    {
      "attributes": {
        "full_name": "Firstname Lastname",
        "last_charge_date": "2024-01-20T06:24:55.000+00:00",
        "patron_status": "active_patron",
        "will_pay_amount_cents": 500
      },
      "id": "00000000-0000-0000-0000-000000000000",
      "type": "member"
    }
  ],
  "links": {
    "self": "https:\\/\\/www.patreon.com\\/api\\/oauth2\\/v2\\/user\\/000000000"
  }
}

However, in a few cases, the data related to the user’s membership is missing:

{
  "data": {
    "attributes": {
      "full_name": "Problem User"
    },
    "id": "000000001",
    "relationships": {
      "memberships": {
        "data": []
      }
    },
    "type": "user"
  },
  "links": {
    "self": "https:\\/\\/www.patreon.com\\/api\\/oauth2\\/v2\\/user\\/000000001"
  }
}

In a lot of these cases, we verified by comparing the full_name field requested against the creator’s payment page on Patreon that the user should be shown as an active patron.

How should I interpret the empty data returned by the API? Does it mean that the user doesn’t have a membership against our page as reported by the API? Am I requesting for the data in the correct way?

Thanks for the help.

Try to check and confirm whether these are free members.

The creator told me he doesn’t have a free tier set up, and also in all cases, the users missing data from the API are paid patrons to his page.

Can he confirm that the members whose membership return is empty are actual patrons of his at patreon.com?

Yes, by comparing the full name returned by the API of the members who returned an empty response against his page’s member list. For the cases where the API response was empty, some of them showed up in the list as paying, non-free members. (Some of these cases were also non-members.)

Can you dm me the creator’s page?

Sure, I’ve DMed you. Thanks for the help!