Patreon APIv2 is in Public Beta!

Thank you for reply, Phildini! Sorry for miss this in the doc, but when I pass fileds I get 400 code in response, just copy query string from doc:
url: ‘https://www.patreon.com/api/oauth2/v2/identity?fields[user]=about,created,email,first_name,full_name,image_url,last_name,social_connections,thumb_url,url,vanity’,
status: 400,
statusText: ‘BAD REQUEST’

Hi! My guess is that you need to urlencode the [ and ]

If you try with https://www.patreon.com/api/oauth2/v2/identity?fields[user]=about,created,email,first_name,full_name,image_url,last_name,social_connections,thumb_url,url,vanity, does that fix it?

You are absolutely right - encodeURI fixed it! Thank you!!!

So exciting! Thanks platform team!

Do you plan to add a sandbox / demo environment, for safe testing of these and other future changes?

1 Like

Cool! Very exciting to see the new functionality (and that we’ll have a good while to do the changeover) :slight_smile:

Especially great to see charge status included in the available information in the new API! This should result in some cleaner reconciliation between external websites and Patreon. currently_entitled_amount_cents may also provide similarly useful functionality – especially if any of these get updated more quickly than lifetime_support_cents does (last I integrated the V1 API, there was a next-day delay on updates to that field both in API and on Patron Manager).

Regarding currently_entitled_amount_cents, is there a kind of ‘entitlement_period_end’ datetime? I guess right now it’s always first of next month + grace period, but it might be nice to have this as a field in case other payment durations end up being available.

What are possible values for patron_status (is it an enum like last_charge_status?)

Also, still hoping to see some way to get member data from recently cancelled patrons (/any patrons who have currently_entitled_amount_cents > 0) per this thread.

Having a sandbox is definitely something we’ve thought about, and would like to make available, but have no definite plans at this time.

1 Like

A sandbox would be great. Another and probably an easier developer-friendly enhancement could be having a Foobar Patron, a Foobar Campaign, and a Foobar Creator all of which will always return a set of fixed values - that would facilitate developing and testing apps. And it would also allow automated test setups which could help app developers or maintainers ensure connectivity of their apps with Patreon.

1 Like

The currently_entitled_tiers attribute seems to imply that a member can be a part of multiple tiers. Is that currently true? I thought a member could only belong to one tier at a time.

Guys, is there some api calls limit now?

Hey Anna,
During the beta, we are not enforcing rate limits on API v2 endpoints, however, you should assume when building your app, that there will be rate limiting when we exit the beta period.
Thanks!
-Spencer

That’s not currently the case, you are correct, a member can only belong to one tier at a time.

Thank you for your reply, Spencer. So v1 version has some limitations? I cannot find info in the docs. And I have other qs probably you can help me with it - how I can receive patron_goals of the creator? include=goals return only USD goals. Thanks Ann.

I had it working with v1 and I’m trying to move the the v2 but I’m getting an error:
The server could not verify that you are authorized to access the URL requested. You either supplied the wrong credentials (e.g. a bad password), or your browser doesn’t understand how to supply the credentials required.

I’m passing the header ‘Authorization: Bearer [access_token]’ like before on v1.
The only thing I really changed is the endpoint url.

What else do I need to do to make it works?

since you guys announced this API Beta, some users reported a error in my “perfect working system” lol

all was fine before, but now, some users obtain a error when my code calls the line:

userResponse = apiClient.fetchUser();

This is the error:

Line: 235 - com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field “url” (class com.patreon.resources.shared.SocialConnections$UserIdObject), not marked as ignorable (2 known properties: “user_id”, “scopes”]) at [Source: N/A; line: -1, column: -1] (through reference chain: com.patreon.resources.User[“social_connections”]->com.patreon.resources.shared.SocialConnections[“discord”]->com.patreon.resources.shared.UserIdObject[“url”])

When attempting to fetch all of the memberships a user has, for example:

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

It seems only a UUID type ID is returned? Is there anyway to obtain the ‘normal’ int based creator id? Or is there any way to convert between the 2?

Example return:

        {
            "attributes": {
                "last_charge_date": "2017-01-01T13:00:00+00:00",
                "last_charge_status": "Paid",
                "patron_status": "former_patron",
                "pledge_relationship_start": null
            },
            "id": "bd6d2a2e-1b4f-4122-9180-c94090b7aa47",
            "type": "member"
        },

Thanks

@Robb I haven’t used v2 yet but I think the id value there is the identifier of the membership not the campaign, so there’s no conversion process, rather (I guess) you would request the campaign to be included in the response. From the documentation:

  • If you request Campaign and memberships, you will receive information about the user’s memberships and the Campaigns they are Member of, provided you have the campaigns and identity[memberships] scopes.

Your example request appears to only request the memberships.

1 Like

Hey @sam , cheers for the response.

I’ve done some more investigating, and you’re right, that UUID is the membership ID, however it appears when requesting the Campaign resource from the /identity endpoint, it only fetches the auth’d user’s campaign, not the compaign resources of each membership.

Example URL:

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

I’ve found a way to obtain the campaign ID from the membership ID by adding an extra scope (campaigns.members) and using the /members endpoint:

https://www.patreon.com/api/oauth2/v2/members/MEMBERSHIP_UUID?include=campaign

But this would mean an extra API request for every single membership just to obtain the campaign ID. It would make more sense if the campaign ID could be added to the Member resource, or if it could be returned when including Campaign in the /identity endpoint.

Thanks to Nick for the solution:

https://www.patreon.com/api/oauth2/v2/identity?include=memberships.campaign&fields%5Bmember%5D=patron_status

(note the stop rather than the comma from my previous post)

Hi guys! Is there any way to get user cover image and total per month quantity?