Skip to main content
Lumos API v1 is the programmatic interface to your connected apps, the entitlements on them, and the workflows that grant access to those entitlements.
Base URL
Every v1 path starts with /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 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.
If Lumos can’t describe an integration’s connection schema yet, this endpoint returns 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.
After the first sync starts, track it with 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 a Z 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.