Register your application
Before you can use OAuth 2.0, register your application in Lumin. You must be a Workspace Owner to do this. Each Workspace can have up to 5 integration apps.1
Open Integration apps
Log in to Lumin and go to Settings → Developer settings → Integration apps, then click Create app.
2
Set application details
Enter an Application name and select an Application type:
- Public Application — no client secret, uses PKCE. Choose this for mobile apps, SPAs, or desktop apps.
- Private Application — server-based with a client secret. Choose this for backend or server-side applications.
3
Select scopes
Choose only the scopes your application actually needs. The scopes you select appear on the user consent screen. See Scopes for the full list.
4
Configure redirect URIs
Enter one or more redirect URIs where Lumin will send users after they authorize your app.
- Must use
https://or an app-specific scheme (e.g.,myapp://callback) - No wildcards, IP addresses, or relative paths
- Separate multiple URIs with commas
5
Configure consent screen
Fill in the information users will see when granting access: app logo, website URL, Privacy Policy URL, Terms of Use URL, and a contact email.
6
Save and retrieve credentials
Click Create. You will receive:
- Client ID — required for all OAuth 2.0 flows
- Client Secret — issued only for Private Applications
Authorization code flow
- Private / Server app
- Public app (PKCE)
Use this flow for server-side applications. The flow uses a client secret and issues refresh tokens so your server can maintain access without user re-interaction.
1
Redirect the user to the authorization endpoint
Send the user to Lumin’s authorization URL with your app’s parameters:Include
offline_access in the scope to receive a refresh token.After the user approves access, Lumin redirects them to your redirect_uri with an authorization code in the query string.2
Exchange the authorization code for tokens
Make a server-to-server POST request to exchange the code for an access token and refresh token:Lumin returns the tokens:
3
Call Lumin APIs with the access token
Pass the access token in the
Authorization header as a Bearer token:4
Refresh the access token
Access tokens expire after 1 hour. Use the refresh token to get a new access token without requiring the user to re-authorize:
Scopes
Scopes define what your application can access. Request only the scopes your app actually needs — users see the requested scopes on the consent screen.Private integration apps receive the
openid and offline_access scopes by default.