Register an OAuth application
OAuth client registration is currently invite-only.Email support@gumloop.com with your app name, use case, redirect URI(s), and logo. We’ll review and reach out with a
client_id.Redirect the user to Gumloop
When authorizing a user, redirect to the authorization endpoint with the correct parameters and scopes.| Parameter | Description |
|---|---|
client_id | (required) Client ID from your registered OAuth app |
redirect_uri | (required) One of your app’s registered redirect URIs |
response_type=code | (required) Only code is supported |
scope | (required) Space-separated list of scopes |
code_challenge | (required) Your PKCE code challenge |
code_challenge_method=S256 | (required) Only S256 is supported |
state | (optional, recommended) Opaque value echoed back on redirect to prevent CSRF |
Example
Handle the redirect
After the user approves your app, Gumloop redirects them back to yourredirect_uri with the authorization code and your state in the query string. Always validate that state matches the value you sent.
Exchange the code for tokens
Exchange thecode (plus your PKCE code_verifier) for an access token.
| Parameter | Description |
|---|---|
grant_type=authorization_code | (required) |
code | (required) Authorization code from the previous step |
redirect_uri | (required) Same value sent in the authorize request |
client_id | (required) Your client ID |
code_verifier | (required) The PKCE verifier matching the challenge sent in the authorize request |
Example
Response
Make API requests
Pass the access token as a bearer header on every request, exactly like an API key:Refresh an access token
Whenexpires_in elapses, exchange the refresh token for a new access token.
| Parameter | Description |
|---|---|
grant_type=refresh_token | (required) |
refresh_token | (required) Refresh token from the previous response |
client_id | (required) Your client ID |
Revoke a token
| Parameter | Description |
|---|---|
token | (required) The access or refresh token to revoke |
client_id | (required) Your client ID |
Scopes
| Scope | Grants |
|---|---|
gumloop_api | Call the Gumloop developer API on behalf of the user |
userinfo | Read the user’s basic profile (email, name) |
