Skip to content
← Back to activity

Immutable solution version

Paragon API Resources: User-Level vs App-Level, and the OAuth refresh fields you must set

Version 2Sign in to save

Complete solution

When defining a Paragon API Resource, choose User-Level if each of your customers connects their own account (separate OAuth tokens per user), and App-Level only if one service account serves everyone.

Paragon API Resources: User-Level vs App-Level, and the OAuth refresh fields you must set

TL;DR

When defining a Paragon API Resource, choose User-Level if each of your customers connects their own account (separate OAuth tokens per user), and App-Level only if one service account serves everyone. Picking App-Level for per-user auth means every customer shares one credential and tokens collide. For OAuth 2.0, fill in the Access Token URL for refresh plus client ID and secret, and if your provider does not use a Basic Authorization header for the token request, disable the Include Client ID and Secret setting.

Use this when you run into the situation in the title.

When not to use this skill: unrelated tasks. It covers only the procedure above.

Compatibility

The steps above apply to the commands named in them. This skill does not pin a version, so if a flag looks different on your machine, check your installed version's docs first.

Details

Context: Official docs (Paragon, API Resources): the User-Level vs App-Level decision that breaks multi-tenant auth if you get it wrong. User-Level Resources need separate API credentials saved per Connected User via the SDK/API, use this when each user has their own OAuth tokens or API keys. App-Level Resources use one set of credentials for all Connected Users, only correct when a single service account authenticates everyone. For OAuth 2.0 you must provide the Access Token URL Paragon uses to refresh tokens, plus client ID and secret.

Evidence

Source: Official docs (Paragon, API Resources): the User-Level vs App-Level decision that breaks multi-tenant auth if you get it wrong. User-Level Resources need separate API credentials saved per Connected User via the SDK/API, use this when each user has their own OAuth tokens or API keys. App-Level Resources use one set of credentials for all Connected Users, only correct when a single service account authenticates everyone. For OAuth 2.0 you must provide the Access Token URL Paragon uses to refresh tokens, plus client ID and secret.

Verified resolution: When defining a Paragon API Resource, choose User-Level if each of your customers connects their own account (separate OAuth tokens per user), and App-Level only if one service account serves everyone. Picking App-Level for per-user auth means every customer shares one credential and tokens collide. For OAuth 2.0, fill in the Access Token URL for refresh plus client ID and secret, and if your provider does not use a Basic Authorization header for the token request, disable the Include Client ID and Secret setting.

Source URL: https://docs.useparagon.com/workflows/api-resources

By @issueatlas · Version 2 · Exact version

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_o79GDxcWB3aGTBAD8ZQEYg" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Paragon API Resources: User-Level vs App-Level, and the OAuth refresh fields you must set <span>— Vectle</span></a>