KINDE_DOMAIN, KINDE_CLIENT_ID, KINDE_CLIENT_SECRET) in ConfigView when setup is complete.
Scope of this integration today. Kinde is a customer-identity platform you build into your own product, so most of its users are your customers, not your employees. ConfigView therefore focuses on how Kinde is configured: your applications and their type, the redirect URLs they allow, which APIs each application can call and with which scopes (including who can change things through the Kinde Management API), sign-in methods and enterprise SSO connections, organizations with their MFA policy and members, roles and permissions, feature flags, webhooks, API keys and SCIM directory sync. It also collects user accounts. It never reads passwords, client secrets, connection options or API key values. ConfigView only reads. It never creates, changes or deletes anything in Kinde.
What you need
- A Kinde account with permission to add applications and authorize them for the Kinde Management API (an owner or admin of the Kinde business)
- Nothing else to enable. Some areas are only filled in if your Kinde plan includes them: API keys, SCIM directory sync and organization MFA settings are plan-dependent. If an area is not available, that collector skips itself and its table stays empty. That does not count as a failure.
Step 1: Open the Kinde page in ConfigView
Open ConfigView in a second browser tab and leave it open:https://{companyname}.configview.com/admin/integrations/kinde
Step 2: Create a machine-to-machine application
- Sign in to Kinde and switch to the environment you want ConfigView to read (usually Production)
- Open Settings → Applications and click Add application
- Name it
ConfigView, choose Machine to machine (M2M) and save - On the application’s Details page copy the Client ID and Client secret
- Switch to the ConfigView tab and paste them into
KINDE_CLIENT_IDandKINDE_CLIENT_SECRETunder Credentials, then click the save icon for each - Enter your Kinde domain in
KINDE_DOMAIN, for exampleacme.kinde.com(typing justacmeworks too). It is shown under Settings → Environment → Details. Use thekinde.comaddress even if you run a custom domain: the token is requested forhttps://<business>.kinde.com/api
Authorize the application for the Kinde Management API
A new M2M application can’t call anything until you authorize it for an API.- In Kinde, open the ConfigView application and go to its APIs tab
- Switch on Kinde Management API and open its scopes
- Tick these read scopes and save. Tick all of them unless you want to leave an area out:
Don’t tick any
create:, update: or delete: scope. ConfigView never uses them.
Give ConfigView its own M2M application rather than sharing one with a script or a backend service. Then you can see exactly what it can do and rotate its secret without breaking anything else.
Step 3: Connect and verify
- Back on
https://{companyname}.configview.com/admin/integrations/kinde, confirm the credentials show as saved - Click Connect. ConfigView creates its tables and schedules every collector at your default run time. Stop any you don’t want under Collectors:
- Click Verify now. The health check reads all three secrets, gets a token, reads your applications, and tries one record from each of the other areas.
- Token fails with 400, 401 or 403. The client ID or secret is wrong, the secret was rotated, the application isn’t a machine-to-machine application, or it isn’t authorized for the Kinde Management API. Check each in turn.
- Applications fails with 403. The application is authorized for the Management API but lacks
read:applications. Add it on the application’s APIs tab. - An area shows as skipped. Kinde answered “forbidden” or “not found” for it. Either that scope wasn’t ticked, or your Kinde plan doesn’t include the feature. Tick the scope if you want that area, otherwise there is nothing to fix.
- KINDE_DOMAIN is not a kinde.com host. Use your
<business>.kinde.comaddress, not the custom domain.
Data Tables
Once the scripts run, these tables are created in your database. Each table has arun_at column and a raw_json column, which holds the record as Kinde returned it, minus anything listed under What isn’t collected. Each table keeps only the newest run.
Things worth knowing
Most Kinde users are your customers.kinde_users is the list of people who sign in to your product. It is useful for sizing dormant accounts and seeing which sign-in methods are in use, but it is not your staff directory. People in Kinde are also not the same as the people who can sign in to the Kinde dashboard (see below).
Kinde dashboard team members can’t be read. The Management API has no endpoint that lists the people who log in to Kinde itself (the owners and admins of your Kinde business), so ConfigView can’t show them. Review that list in the Kinde dashboard, in your account’s team settings.
There is no audit log to collect. The Management API doesn’t list audit or sign-in events (it can only fetch a single event by ID), so ConfigView doesn’t store an event history for Kinde.
Redirect URLs are the main thing to watch. A callback URL that is plain http, contains a wildcard or points at localhost in a live environment can let someone else receive a sign-in code. ConfigView flags each one.
Management API access is the most powerful grant. An M2M application authorized for the Kinde Management API with create, update or delete scopes can change users, organizations, roles and connections. kinde_api_applications.has_write_scopes marks them.
MFA is per organization. Kinde’s API exposes MFA settings per organization, not for the whole environment, and only where the organization has the advanced organizations feature. Organizations whose settings can’t be read show an unknown MFA state.
Rate limit. Kinde doesn’t publish a requests-per-minute figure. It applies a rate limiter and a concurrency limiter and answers HTTP 429 with a RateLimit-Reset header. Each ConfigView collector paces itself at 30 requests a minute and waits as long as Kinde asks. Organizations, Organization Members and Applications make a request per record, so they take a few minutes on a business with hundreds of organizations.
What isn’t collected
- Application client secrets, SCIM directory secret tokens, API key values, prefixes and suffixes, and connection options (which hold social and SSO client secrets)
- Environment variable values
- User phone numbers, profile pictures and billing details; the business phone number
- The full webhook URL. Only its host is stored, because the path or query string can carry a secret
- Billing, subscribers, properties, sessions, invitations and per-user MFA