Lumos Vendor Management API
The Vendor Management API from Lumos — 4 operation(s) for vendor management.
The Vendor Management API from Lumos — 4 operation(s) for vendor management.
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-vendor-management-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 Vendor Management 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: Vendor Management
paths:
/vendor_agreements:
get:
tags:
- Vendor Management
summary: Get Vendor Agreements
description: List all of your company's vendor agreements.
operationId: listVendorAgreements
security:
- HTTPBearer: []
parameters:
- 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_VendorAgreement_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/vendor_agreements/{vendor_agreement_id}/custom_attributes/{label}:
put:
tags:
- Vendor Management
summary: Update Vendor Agreement Custom Attribute
description: Update a custom attribute attached to a vendor agreement.
operationId: updateVendorAgreementCustomAttribute
security:
- HTTPBearer: []
parameters:
- name: vendor_agreement_id
in: path
required: true
schema:
type: string
title: Vendor Agreement Id
- name: label
in: path
required: true
schema:
type: string
title: Label
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/VendorAgreementCustomAttributeUpdateInput'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/VendorAgreementCustomAttribute-Output'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/found_documents:
post:
tags:
- Vendor Management
summary: Upload Found Documents
description: Upload a newly discovered document (e.g. Order Form, Quote) to Lumos for review
operationId: createFoundDocument
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FoundDocumentsUpload'
properties:
unique_identifier:
type: string
title: Unique Identifier
description: A unique identifier for the contract being uploaded. This can be an ID from an external system like Coupa, an internal ID such as a PO number, or simply the name of the file.
files:
items:
properties:
type:
type: string
value:
type: string
type: object
type: array
title: Files
description: A list of publicly accessible URLs that direct to files related to a Vendor Agreement. For example, the Order Form, Quote, MSA, or Terms and Conditions.
vendor_name:
type: string
title: Vendor Name
description: The name of the vendor associated with this document
start_date:
type: string
format: date
title: Start Date
description: The start date of the attached contract
end_date:
type: string
format: date
title: End Date
description: The end date of the attached contract
source_app_id:
type: string
title: Source App ID
description: The ID of the app that sourced this document. For example, if you are using this API to create a custom Google Drive integration, you might include the ID for the Google Workspaceapp in Lumos. This determines which app's logo is displayed in Lumos.
total_cost:
allOf:
- $ref: '#/components/schemas/Cost'
title: Total Cost
description: The total cost of the contract. If this is a multi-year contract, this should include the cost for future years.
type: object
required:
- unique_identifier
- files
multipart/form-data:
schema:
properties:
unique_identifier:
type: string
title: Unique Identifier
description: A unique identifier for the contract being uploaded. This can be an ID from an external system like Coupa, an internal ID such as a PO number, or simply the name of the file.
files:
items:
type: string
format: binary
type: array
title: Files
description: A list of files related to a vendor agreement. For example, the Order Form, Quote, MSA, or Terms and Conditions.
vendor_name:
type: string
title: Vendor Name
description: The name of the vendor associated with this document
start_date:
type: string
format: date
title: Start Date
description: The start date of the attached contract
end_date:
type: string
format: date
title: End Date
description: The end date of the attached contract
source_app_id:
type: string
title: Source App ID
description: The ID of the app that sourced this document. For example, if you are using this API to create a custom Google Drive integration, you might include the ID for the Google Workspaceapp in Lumos. This determines which app's logo is displayed in Lumos.
type: object
required:
- unique_identifier
- files
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
/orders:
post:
tags:
- Vendor Management
summary: Upload Order
description: Upload a newly discovered document (e.g. Order Form, Quote) to Lumos
operationId: createOrder
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OrderInput'
required: true
responses:
'201':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
components:
schemas:
VendorAgreementCustomAttributeUpdateInput:
properties:
value:
anyOf:
- type: string
- type: 'null'
title: Value
description: The value to store for this custom attribute. Set to null to remove the value.
type: object
title: VendorAgreementCustomAttributeUpdateInput
FileUploadType:
type: string
enum:
- url
- base64
title: FileUploadType
LineItemUnitCostInput:
properties:
period:
type: string
title: Period
description: The period which this cost covers. Available options are per_month or per_year
value:
anyOf:
- type: number
- type: string
title: Value
description: The cost in terms of the specified currency (4 decimal places supported)
type: object
required:
- period
- value
title: LineItemUnitCostInput
VendorAgreementCustomAttribute-Input:
properties:
type:
$ref: '#/components/schemas/VendorAgreementCustomAttributeType'
description: The type of custom attribute. Only text and user options are available today
value:
anyOf:
- type: string
- items:
$ref: '#/components/schemas/User'
type: array
- type: 'null'
title: Value
description: The value of the attribute for an individual Order
type: object
required:
- type
title: VendorAgreementCustomAttribute
Page_VendorAgreement_:
properties:
items:
items:
$ref: '#/components/schemas/VendorAgreement'
type: array
title: Items
total:
anyOf:
- type: integer
minimum: 0.0
- type: 'null'
title: Total
page:
anyOf:
- type: integer
minimum: 1.0
- type: 'null'
title: Page
size:
anyOf:
- type: integer
minimum: 1.0
- type: 'null'
title: Size
pages:
anyOf:
- type: integer
minimum: 0.0
- type: 'null'
title: Pages
type: object
required:
- items
- total
- page
- size
title: Page[VendorAgreement]
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
VendorAgreement:
properties:
id:
type: string
title: Id
description: A unique identifier for this Vendor Agreement
vendor:
$ref: '#/components/schemas/Vendor'
description: The vendor in which the agreement is created for
label:
anyOf:
- type: string
- type: 'null'
title: Label
description: The user-defined label for this agreement
start_date:
anyOf:
- type: string
format: date
- type: 'null'
title: Start Date
description: The start of the current term
end_date:
anyOf:
- type: string
format: date
- type: 'null'
title: End Date
description: The end of the current term
opt_out_date:
anyOf:
- type: string
format: date
- type: 'null'
title: Opt Out Date
description: The date by which the vendor must be notified if you want to terminate the agreement
renewal_stage:
type: string
title: Renewal Stage
description: The stage of the renewal process for this agreement
pricing_model:
type: string
title: Pricing Model
description: The pricing model for this agreement
contract_length_months:
anyOf:
- type: number
- type: 'null'
title: Contract Length Months
description: The length of the contract in months
projected_annualized_cost:
anyOf:
- $ref: '#/components/schemas/Cost'
- type: 'null'
description: The projected annualized cost of the currently active order on the agreement
renewal_owners:
items:
$ref: '#/components/schemas/User'
type: array
title: Renewal Owners
description: The individuals responsible for managing renewals and true-ups for this agreement. They will receive all notifications configured in Lumos.
total_contract_cost:
$ref: '#/components/schemas/Cost'
description: The total cost of the current service term, including all line items and true ups, and including future years for multi-year agreements.
line_items:
items:
$ref: '#/components/schemas/LineItem'
type: array
title: Line Items
description: The list of currently active line items for this Vendor Agreement. If there are no currently active line items, the most recent set of line items is returned.
custom_attributes:
additionalProperties:
$ref: '#/components/schemas/VendorAgreementCustomAttribute-Output'
type: object
title: Custom Attributes
description: Custom metadata tracked about each of your Vendor Agreements. The set of available options must be configured within the Lumos admin panel.
type: object
required:
- id
- vendor
- start_date
- end_date
- opt_out_date
- renewal_stage
- pricing_model
- contract_length_months
- projected_annualized_cost
- total_contract_cost
- line_items
title: VendorAgreement
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
Vendor:
properties:
name:
type: string
title: Name
description: A user friendly name for the vendor
type: object
required:
- name
title: Vendor
LineItemInput:
properties:
name:
type: string
title: Name
description: The name of the line item as stored in Lumos
type:
type: string
title: Type
description: The type of purchase that this line item refers to
quantity:
type: integer
title: Quantity
description: The number of units purchased for this line item
unit_cost:
$ref: '#/components/schemas/LineItemUnitCostInput'
description: The per-unit cost of the line item
start_date:
type: string
format: date
title: Start Date
description: The start date of the line item
end_date:
anyOf:
- type: string
format: date
- type: 'null'
title: End Date
description: The end date of the line item.
type: object
required:
- name
- type
- quantity
- unit_cost
- start_date
- end_date
title: LineItemInput
LineItem:
properties:
name:
type: string
title: Name
description: The name of the line item as stored in Lumos
type:
type: string
title: Type
description: The type of purchase that this line item refers to
quantity:
type: integer
title: Quantity
description: The number of units purchased for this line item
unit_cost:
$ref: '#/components/schemas/LineItemUnitCost'
description: The unit cost of this line item
start_date:
anyOf:
- type: string
format: date
- type: 'null'
title: Start Date
description: The start of the line item
end_date:
anyOf:
- type: string
format: date
- type: 'null'
title: End Date
description: The end of the line item. Null for monthly line items.
type: object
required:
- name
- type
- quantity
- unit_cost
- start_date
- end_date
title: LineItem
VendorAgreementCustomAttribute-Output:
properties:
type:
$ref: '#/components/schemas/VendorAgreementCustomAttributeType'
description: The type of custom attribute. Only text and user options are available today
value:
anyOf:
- type: string
- items:
$ref: '#/components/schemas/User'
type: array
- type: 'null'
title: Value
description: The value of the attribute for an individual Order
type: object
required:
- type
title: VendorAgreementCustomAttribute
LineItemUnitCost:
properties:
per_month:
$ref: '#/components/schemas/Cost'
description: The per unit cost associated with this line item, amortized to the cost per month
type: object
required:
- per_month
title: LineItemUnitCost
LineItemUpload:
properties:
name:
type: string
title: Name
description: The name of the line item as stored in Lumos
quantity:
type: integer
title: Quantity
description: The number of units purchased for this line item
unit_cost:
$ref: '#/components/schemas/Cost'
description: The unit cost of this line item
type: object
required:
- name
- quantity
- unit_cost
title: LineItemUpload
FoundDocumentsUpload:
properties:
unique_identifier:
type: string
title: Unique Identifier
description: A value that can be used to uniquely identify this contract (e.g. PO number, file name, etc)
files:
items:
$ref: '#/components/schemas/FileUpload'
type: array
title: Files
description: A list of URLs that resolve to files that should be attached to the Found Document
vendor_name:
anyOf:
- type: string
- type: 'null'
title: Vendor Name
description: The name of the vendor that this document is for
start_date:
anyOf:
- type: string
- type: 'null'
title: Start Date
description: The start of the vendor agreement
end_date:
anyOf:
- type: string
- type: 'null'
title: End Date
description: The end of the vendor agreement
source_app_id:
anyOf:
- type: string
- type: 'null'
title: Source App Id
description: By passing the ID of an application within Lumos, it will appear as if this Found Document was sourced from that app
total_cost:
anyOf:
- $ref: '#/components/schemas/Cost'
- type: 'null'
description: The total cost of the contract. If this is a multi-year contract, this should include the cost for future years
line_items:
anyOf:
- items:
$ref: '#/components/schemas/LineItemUpload'
type: array
- type: 'null'
title: Line Items
description: The line items on the contract
type: object
required:
- unique_identifier
- files
title: FoundDocumentsUpload
UserLifecycleStatus:
type: string
enum:
- STAGED
- ACTIVE
- SUSPENDED
- INACTIVE
title: UserLifecycleStatus
OrderInput:
properties:
unique_identifier:
type: string
title: Unique Identifier
description: A unique ID for the contract being uploaded. This can be an ID from an external system like Ironclad, an internal ID such as a PO number, or simply the name of the vendor + date of the contract.
vendor:
$ref: '#/components/schemas/Vendor'
description: Information about the vendor associated with this contract. Currently, we will only support a name field.
start_date:
type: string
format: date
title: Start Date
description: The start date of the attached contract
end_date:
type: string
format: date
title: End Date
description: The end date of the attached contract
opt_out_date:
anyOf:
- type: string
format: date
- type: 'null'
title: Opt Out Date
description: The date by which a vendor must be notified before terminating the order
auto_renewal:
type: boolean
title: Auto Renewal
description: Whether or not the contract auto-renews
currency:
anyOf:
- type: string
- type: 'null'
title: Currency
description: The currency in which the contract is being paid in ISO 4217 format
line_items:
items:
$ref: '#/components/schemas/LineItemInput'
type: array
title: Line Items
description: The list of currently active line items for this Vendor Agreement. If there are no currently active line items, the most recent set of line items is returned.
custom_attributes:
additionalProperties:
$ref: '#/components/schemas/VendorAgreementCustomAttribute-Input'
type: object
title: Custom Attributes
description: Any additional attributes that you would like to save on the Order. The set of available options must be configured in advance in Lumos.
source_app_id:
anyOf:
- type: string
- type: 'null'
title: Source App Id
description: UUID of the application in Lumos where this order was sourced (e.g. the ID of Ironclad within Lumos)
type: object
required:
- unique_identifier
- vendor
- start_date
- end_date
- auto_renewal
- line_items
title: OrderInput
Cost:
properties:
currency:
anyOf:
- type: string
- type: 'null'
title: Currency
description: The currency in which this cost is stored
value:
type: number
title: Value
description: The quantity of the cost in terms of the specified currency
type: object
required:
- value
title: Cost
User:
properties:
id:
type: string
title: Id
description: The ID of this user.
email:
anyOf:
- type: string
- type: 'null'
title: Email
description: The email of this user.
given_name:
anyOf:
- type: string
- type: 'null'
title: Given Name
description: The given name of this user.
family_name:
anyOf:
- type: string
- type: 'null'
title: Family Name
description: The family name of this user.
status:
anyOf:
- $ref: '#/components/schemas/UserLifecycleStatus'
- type: 'null'
description: The status of this user.
type: object
required:
- id
title: User
VendorAgreementCustomAttributeType:
type: string
enum:
- TEXT
- USER
- SINGLE_SELECT
title: VendorAgreementCustomAttributeType
FileUpload:
properties:
type:
$ref: '#/components/schemas/FileUploadType'
description: The type of content being uploaded. The only supported type today is 'url'
value:
type: string
title: Value
description: The data to upload. This should be a publicly accessible URL that resolves to a file
type: object
required:
- type
- value
title: FileUpload
securitySchemes:
HTTPBearer:
type: http
scheme: bearer