Patreon APIv2 is in Public Beta!

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?

I’m trying to implement OAuth on my web app.
but It works only creator’s account.
is there any steps to activate for others account?

// error message from patreon

“errors”: [
    {
        “code”: null,
        “code_name”: “OAuthClientViewForbidden”,
        “detail”: “You do not have permission to view OAuth Client with id [my-client-id].”,
        “id”: “[my-id]”,
        “status”: “403”,
        “title”: “You do not have permission to view this OAuth Client.”
    }
]

Great that there’s a last_charge_date but why not to have a last_charge_amount_cents or something like that?
With the last_charge_date we can find out if the patron paid but if he changes the pledge amount just after the payment he will look like to be in another tier.
how do I find out how much the patron actually paid?

Hello everyone!
Using endpoint for https://www.patreon.com/api/oauth2/v2/campaigns?fields[campaign]=created_at,creation_name,discord_server_id,image_small_url,image_url,is_charged_immediately,is_monthly,patron_count,pay_per_name,pledge_url,published_at,summary,patron_count,earnings_visibility I don’t receive earnings_visibility in the response. Why? how I can fix it?

(oops - I see that this was reported elsewhere: 500 Error on Identity Request (API V2))

I just noticed that the /v2/identity endpoint started returning HTTP 500 errors when fields[user] asks for social_connections.

I don’t need it, but the example API request asks for social_connections so it might confuse people who are trying to get started https://docs.patreon.com/#get-api-oauth2-v2-identity

PatreonApi::PatreonApiError: 500 {
    "errors": [
        {
            "code": null,
            "code_name": "InternalError",
            "detail": "An unrecoverable internal server error has occurred.",
            "id": "84060e37-6515-4aff-b826-75431fcebdb7",
            "status": "500",
            "title": "Internal Error."
        }
    ]
}

Hi everyone,

Is APIv2 still in beta? If yes then when can expect the stable version of it?

Well, many integrations are largely using api v2 since a year or more now. Like WP plugin, users of majority of which are on v2. So it may technically in beta but it is pretty much usable.

Thank you. May I know how long I can use old v1 API and webhooks? We’re still using it since it is deprecated.

When v1 will be deprecated is uncertain. However i would move to v2 irrelevant of that - new features are only available in v2.

1 Like