Lumos App Store API
The App Store API from Lumos — 11 operation(s) for app store.
The App Store API from Lumos — 11 operation(s) for app store.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/lumos-app-store-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Lumos App Store API
description: 'The Lumos API gives you the building blocks to administer and extend Lumos programmatically.
Our REST API provides a management interface for the AppStore and a read interface
for the Lumos Core.
Go to https://developers.lumos.com to see our complete documentation.'
version: 0.1.0
servers:
- url: https://api.lumos.com
tags:
- name: App Store
paths:
/appstore/apps/{app_id}/requestable_permissions:
get:
tags:
- App Store
summary: Get Appstore Permissions For App
description: Get AppStore permissions for an application.
operationId: get_appstore_permissions_for_app_appstore_apps__app_id__requestable_permissions_get
security:
- HTTPBearer: []
parameters:
- name: app_id
in: path
required: true
schema:
type: string
description: Filters requestable permissions by the ID of the app to which they belong.
title: App Id
description: Filters requestable permissions by the ID of the app to which they belong.
- name: search_term
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: "\n Searches permissions by the permission's group name,\n request configuration name, or specific integration ID.\n"
title: Search Term
description: "\n Searches permissions by the permission's group name,\n request configuration name, or specific integration ID.\n"
- name: exact_match
in: query
required: false
schema:
type: boolean
description: Search filter should be an exact match.
default: false
title: Exact Match
description: Search filter should be an exact match.
- name: in_app_store
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
description: "\n Filters permissions by visibility in the AppStore.\n"
title: In App Store
description: "\n Filters permissions by visibility in the AppStore.\n"
- name: include_inherited_configs
in: query
required: false
schema:
type: boolean
description: Include inherited configurations from parent app.
default: true
title: Include Inherited Configs
description: Include inherited configurations from parent app.
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: Page number
default: 1
title: Page
description: Page number
- name: size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
description: Page size
default: 50
title: Size
description: Page size
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Page_RequestablePermissionOutput_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/appstore/requestable_permissions:
get:
tags:
- App Store
summary: Get Appstore Permissions
description: Get AppStore permissions for an application.
operationId: get_appstore_permissions_appstore_requestable_permissions_get
security:
- HTTPBearer: []
parameters:
- name: app_id
in: query
required: false
schema:
type: string
description: Filters requestable permissions by the ID of the app to which they belong.
title: App Id
description: Filters requestable permissions by the ID of the app to which they belong.
- name: search_term
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: "\n Searches permissions by the permission's group name,\n request configuration name, or specific integration ID.\n"
title: Search Term
description: "\n Searches permissions by the permission's group name,\n request configuration name, or specific integration ID.\n"
- name: exact_match
in: query
required: false
schema:
type: boolean
description: Search filter should be an exact match.
default: false
title: Exact Match
description: Search filter should be an exact match.
- name: in_app_store
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
description: "\n Filters permissions by visibility in the AppStore.\n"
title: In App Store
description: "\n Filters permissions by visibility in the AppStore.\n"
- name: include_inherited_configs
in: query
required: false
schema:
type: boolean
description: Include inherited configurations from parent app.
default: true
title: Include Inherited Configs
description: Include inherited configurations from parent app.
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: Page number
default: 1
title: Page
description: Page number
- name: size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
description: Page size
default: 50
title: Size
description: Page size
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Page_RequestablePermissionOutput_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
post:
tags:
- App Store
summary: Create Appstore Requestable Permission
description: '**Create a permission attached to an App in the AppStore.**
*Required fields:*
- app-identifier. The App should be identified either by app_id or app_class_id + app_instance_id.
- label
*Defaults:*
- request_config:
- appstore_visibility: HIDDEN
- allowed_groups:
- type: ALL_GROUPS
- groups: []
- request_approval_config
- manager_approval: NONE
- request_approval_stages: []
- request_fulfillment_config
- manual_steps_needed: false
- All other fields will have null values by default.'
operationId: create_appstore_requestable_permission_appstore_requestable_permissions_post
security:
- HTTPBearer: []
parameters:
- name: include_inherited_configs
in: query
required: false
schema:
type: boolean
description: Include inherited configurations from parent app.
default: true
title: Include Inherited Configs
description: Include inherited configurations from parent app.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RequestablePermissionInput'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/RequestablePermissionOutput'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/appstore/requestable_permissions/{permission_id}:
get:
tags:
- App Store
summary: Get Appstore Permission
description: Get an AppStore permission.
operationId: get_appstore_permission_appstore_requestable_permissions__permission_id__get
security:
- HTTPBearer: []
parameters:
- name: permission_id
in: path
required: true
schema:
type: string
title: Permission Id
- name: include_inherited_configs
in: query
required: false
schema:
type: boolean
description: Include inherited configurations from parent app.
default: true
title: Include Inherited Configs
description: Include inherited configurations from parent app.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/RequestablePermissionOutput'
'404':
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
patch:
tags:
- App Store
summary: Update Appstore Permission
description: '**Update an AppStore permission.**
All fields present in the payload will override the permission''s data.
Any missing fields will be disregarded.
Non-updatable fields for now:
request_config -> request_fulfillment_config -> provisioning_group'
operationId: update_appstore_permission_appstore_requestable_permissions__permission_id__patch
security:
- HTTPBearer: []
parameters:
- name: permission_id
in: path
required: true
schema:
type: string
title: Permission Id
- name: include_inherited_configs
in: query
required: false
schema:
type: boolean
description: Include inherited configurations from parent app.
default: true
title: Include Inherited Configs
description: Include inherited configurations from parent app.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RequestablePermissionInputUpdate'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/RequestablePermissionOutput'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- App Store
summary: Delete Appstore Permission
description: 'Delete a requestable permission by ID.
Only permissions of type ''NATIVE'' can be deleted.'
operationId: delete_appstore_permission_appstore_requestable_permissions__permission_id__delete
security:
- HTTPBearer: []
parameters:
- name: permission_id
in: path
required: true
schema:
type: string
title: Permission Id
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/appstore/pre_approval_rules:
get:
tags:
- App Store
summary: Get Appstore Pre Approval Rules For App
description: Get AppStore pre-approval rules for an app.
operationId: get_appstore_pre_approval_rules_for_app_appstore_pre_approval_rules_get
security:
- HTTPBearer: []
parameters:
- name: app_id
in: query
required: false
schema:
type: string
description: Filters preapproval rules by the ID of the app to which they belong.
title: App Id
description: Filters preapproval rules by the ID of the app to which they belong.
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: Page number
default: 1
title: Page
description: Page number
- name: size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
description: Page size
default: 50
title: Size
description: Page size
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Page_PreApprovalRuleOutput_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
post:
tags:
- App Store
summary: Create Pre Approval Rule
description: Create a pre-approval rule attached to an App in the AppStore.
operationId: create_pre_approval_rule_appstore_pre_approval_rules_post
security:
- HTTPBearer: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PreApprovalRuleInput'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PreApprovalRuleOutput'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/appstore/pre_approval_rules/{pre_approval_rule_id}:
get:
tags:
- App Store
summary: Get Appstore Pre Approval Rule
description: Get an AppStore pre-approval rule.
operationId: get_appstore_pre_approval_rule_appstore_pre_approval_rules__pre_approval_rule_id__get
security:
- HTTPBearer: []
parameters:
- name: pre_approval_rule_id
in: path
required: true
schema:
type: string
title: Pre Approval Rule Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PreApprovalRuleOutput'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
patch:
tags:
- App Store
summary: Update Pre Approval Rule
description: '**Update a pre-approval rule attached to an App in the AppStore.**
All fields present in the payload will override the pre-approval rule''s data.
Any missing fields will be disregarded.'
operationId: update_pre_approval_rule_appstore_pre_approval_rules__pre_approval_rule_id__patch
security:
- HTTPBearer: []
parameters:
- name: pre_approval_rule_id
in: path
required: true
schema:
type: string
title: Pre Approval Rule Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PreApprovalRuleUpdateInput'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PreApprovalRuleOutput'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- App Store
summary: Delete Pre Approval Rule
description: Delete a pre-approval rule by ID.
operationId: delete_pre_approval_rule_appstore_pre_approval_rules__pre_approval_rule_id__delete
security:
- HTTPBearer: []
parameters:
- name: pre_approval_rule_id
in: path
required: true
schema:
type: string
title: Pre Approval Rule Id
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/appstore/apps/{app_id}/settings:
get:
tags:
- App Store
summary: Get Appstore App Settings
description: Get AppStore app settings.
operationId: getAppStoreAppSettings
security:
- HTTPBearer: []
parameters:
- name: app_id
in: path
required: true
schema:
type: string
title: App Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/AppStoreAppSettingsOutput'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
patch:
tags:
- App Store
summary: Update Appstore App Settings
description: Update AppStore app settings.
operationId: updateAppStoreAppSettings
security:
- HTTPBearer: []
parameters:
- name: app_id
in: path
required: true
schema:
type: string
title: App Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AppStoreAppSettingsInput'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/AppStoreAppSettingsOutput'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/appstore/apps:
post:
tags:
- App Store
summary: Add App To Appstore
description: Add app to AppStore with given settings.
operationId: addAppToAppStore
security:
- HTTPBearer: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddAppToAppStoreInput'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/AppStoreAppSettingsOutput'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- App Store
summary: Get Appstore Apps
description: List all AppStore apps.
operationId: getAppStoreApps
security:
- HTTPBearer: []
parameters:
- name: app_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filters apps by the ID of the app.
title: App Id
description: Filters apps by the ID of the app.
- name: name_search
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Search against name, app instance identifier, and app class ID.
title: Name Search
description: Search against name, app instance identifier, and app class ID.
- name: exact_match
in: query
required: false
schema:
type: boolean
description: Search filter should be an exact match.
default: false
title: Exact Match
description: Search filter should be an exact match.
- name: all_visibilities
in: query
required: false
schema:
type: boolean
description: Get all apps in the AppStore regardless of visibility. Only available to admins.
default: false
title: All Visibilities
description: Get all apps in the AppStore regardless of visibility. Only available to admins.
- name: expand
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: 'Fields to expand. Supported fields: custom_attributes.'
title: Expand
description: 'Fields to expand. Supported fields: custom_attributes.'
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: Page number
default: 1
title: Page
description: Page number
- name: size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
description: Page size
default: 50
title: Size
description: Page size
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Page_AppStoreApp_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/appstore/apps/{app_id}:
delete:
tags:
- App Store
summary: Remove App From Appstore
description: Remove app from AppStore.
operationId: removeAppFromAppStore
security:
- HTTPBearer: []
parameters:
- name: app_id
in: path
required: true
schema:
type: string
title: App Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- App Store
summary: Get Appstore App
description: Get AppStore app.
operationId: getAppStoreApp
security:
- HTTPBearer: []
parameters:
- name: app_id
in: path
required: true
schema:
type: string
title: App Id
- name: expand
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: 'Fields to expand. Supported fields: custom_attributes.'
title: Expand
description: 'Fields to expand. Supported fields: custom_attributes.'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/AppStoreApp'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/appstore/access_requests/{id}:
delete:
tags:
- App Store
summary: Cancel Access Request
description: Cancel an access request.
operationId: cancelAccessRequest
security:
- HTTPBearer: []
parameters:
- name: id
in: path
required: true
schema:
type: string
title: Id
- name: reason
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Reason for cancellation.
title: Reason
description: Reason for cancellation.
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- App Store
summary: Get Access Request
description: Get access request by ID.
operationId: getAccessRequest
security:
- HTTPBearer: []
parameters:
- name: id
in: path
required: true
schema:
type: string
title: Id
- name: expand
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: 'Fields to expand. Supported values: tasks, custom_fields.'
title: Expand
description: 'Fields to expand. Supported values: tasks, custom_fields.'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/AccessRequest'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/appstore/access_request:
post:
tags:
- App Store
summary: Create Access Request
description: Create a request to access a specific permission in the appstore.
operationId: createAccessRequest
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAccessRequestInput'
required: true
responses:
'201':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/AccessRequest'
type: array
title: Response Createaccessrequest
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
/appstore/access_requests:
get:
tags:
- App Store
summary: Get Access Requests
description: Get all access requests for the current organization.
operationId: getAccessRequests
security:
- HTTPBearer: []
parameters:
- name: target_user_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filters requests by the ID of the target user.
title: Target User Id
description: Filters requests by the ID of the target user.
- name: requester_user_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filters requests by the ID of the requesting user.
title: Requester User Id
description: Filters requests by the ID of the requesting user.
- name: user_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filters requests by the ID of the user.
title: User Id
description: Filters requests by the ID of the user.
- name: statuses
in: query
required: false
schema:
anyOf:
- type: array
items:
$ref: '#/components/schemas/SupportRequestStatus'
- type: 'null'
description: 'Filters requests by their status. Possible values: ''PENDING'', ''PENDING_MANAGER_APPROVAL'', ''MANAGER_APPROVED'', ''MANAGER_DENIED'', ''PENDING_APPROVAL'', ''APPROVED'', ''DENIED'', ''EXPIRED'', ''CANCELLED'', ''PENDING_PROVISIONING'', ''PENDING_MANUAL_PROVISIONING'', ''DENIED_PROVISIONING'', ''PROVISIONED'', ''PENDING_DEPROVISIONING'', ''PENDING_MANUAL_DEPROVISIONING'', ''TIME_BASED_EXPIRED'', ''COMPLETED'', ''REVERTING'', ''REVERTED'', ''TIME_BASED_EXPIRED_FAILED'', ''TIME_BASED_EXPIRED_CANCELLED'''
title: Statuses
description: 'Filters requests by their status. Possible values: ''PENDING'', ''PENDING_MANAGER_APPROVAL'', ''MANAGER_APPROVED'', ''MANAGER_DENIED'', ''PENDING_APPROVAL'', ''APPROVED'', ''DENIED'', ''EXPIRED'', ''CANCELLED'', ''PENDING_PROVISIONING'', ''PENDING_MANUAL_PROVISIONING'', ''DENIED_PROVISIONING'', ''PROVISIONED'', ''PENDING_DEPROVISIONING'', ''PENDING_MANUAL_DEPROVISIONING'', ''TIME_BASED_EXPIRED'', ''COMPLETED'', ''REVERTING'', ''REVERTED'', ''TIME_BASED_EXPIRED_FAILED'', ''TIME_BASED_EXPIRED_CANCELLED'''
- name: sort
in: query
required: false
schema:
type: string
description: Sort access requests ascending (ASC) or descending (DESC) by created date.
default: ASC
title: Sort
description: Sort access requests ascending (ASC) or descending (DESC) by created date.
- name: expand
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: 'Fields to expand. Supported values: tasks, custom_fields.'
title: Expand
description: 'Fields to expand. Supported values: tasks, custom_fields.'
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: Page number
default: 1
title: Page
description: Page number
- name: size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
description: Page size
default: 50
title: Size
description: Page size
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Page_AccessRequest_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
RequestFulfillmentConfigOutput:
properties:
manual_steps_needed:
anyOf:
- type: boolean
- type: 'null'
title: Manual Steps Needed
description: Whether manual steps are needed.
manual_instructions:
anyOf:
- type: string
- type: 'null'
title: Manual Instructions
description: The manual instructions that go along.
time_based_access:
items:
type: string
type: array
title: Time Based Access
description: If enabled, users can request an app for a selected duration. After expiry, Lumos will automatically remove user's access.
time_based_access_override:
anyOf:
- type: boolean
- type: 'null'
title: Time Based Access Override
description: Indicates if time based access is overriden.
provisioning_group:
anyOf:
- $ref: '#/components/schemas/Group'
- type: 'null'
description: The provisioning group optionally assocated with this config.
provisioning_webhook:
anyOf:
- $ref: '#/components/schemas/InlineWebhook'
- type: 'null'
description: The provisioning webhook optionally associated with this config.
type: object
title: RequestFulfillmentConfigOutput
AppStoreAppSetti
# --- truncated at 32 KB (100 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lumos/refs/heads/main/openapi/lumos-app-store-api-openapi.yml