Base URL
/v1. Authenticate with a bearer token, as
Authentication describes.
What’s in v1
Connect your first app
Connecting an app takes three calls, and a fourth call starts its first sync. The first two calls exist so that you never have to hardcode the credential fields of each integration.1
Find the integration
Search the catalog with List Integrations. The
query parameter matches both the app_class_id and the display name.2
Read the credentials it expects
Get Integration Connection Schema
returns the JSON schema of the If Lumos can’t describe an integration’s connection schema yet, this endpoint returns
auth and settings fields that the integration needs. Use it to
build a connect form, or to write the auth and settings of a lumos_app resource in the
Lumos Terraform provider.404.3
Connect it
Send the credentials that the schema lists to Create App.If the credentials validate right away, the call connects the app. If the integration needs
browser consent, finish connecting the app in the Lumos UI.
4
Start its first sync
A new app’s first sync waits for an admin to review the app’s identity matching rules. To start it
without the review, call Trigger App Sync with
skip_first_sync_review: true. To review the rules first, start it from the Lumos UI instead.
The first sync covers the review.sync_status on
Get App. To sync again later, call POST /v1/apps/{app_uuid}:sync
and poll the operation it returns, as Long-running operations
describes.
To list only the apps you connect this way, for example to reconcile them with a Terraform
configuration, use the filters that
Reconciling apps connected through the API
describes.
Pagination and errors
Every list endpoint pages the same way, and every error uses the same envelope. Each has one behavior to know before you build:- Pagination, including why a short page doesn’t mean the end of the results.
- Errors, including which field to branch on.
Timestamps
v1 returns every timestamp in UTC, as ISO 8601 with aZ suffix, such as 2026-01-15T18:30:00Z.
Requesting fields with expand
Read endpoints keep responses small. They omit expensive fields unless you request them. For
example, List Apps and Get App
return the base schema. To include admins and custom_attributes, pass
?expand=admins,custom_attributes.
Lumos checks each field in expand against your permissions. If you can’t read a field, the
response omits it and the request still succeeds. A 200 doesn’t prove that every field you
requested is present, so check for the key instead of assuming that it’s there.