How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

LilyApp Middleware API

The middleware API behind Lily AI's customer application at app.lily.ai. Publicly served with a Swagger UI at /api and an OpenAPI 3.0.0 contract at /api-json (63 paths, 100 operations, 41 schemas), covering retailer/subsidiary configuration, product search over Lily's consumer-centric attribute tags and synonyms, product analytics and search-term trends, AI product-copy generation and batch review, outbound partner integration configuration, and a set of pass-through proxies to Lily's internal product-intelligence, connector, config, TCE and enrichment-platform services. Calls require a bearer JWT issued by Lily AI's Azure AD B2C tenant; Lily AI publishes no developer documentation and offers no self-service way to obtain one.

This API exposes 100 operations across 63 paths, organized into 2 resource areas, and defines 41 schemas. It is described by OpenAPI 3.0.0, at version 1.0.

Requests are made against 2 base URLs: https://lilyapp-api-prd.pub.lilyai.net, https://lilyapp-api-stg.pub.lilyai.net.

100 operations 63 paths 41 schemas 9 DELETE44 GET6 HEAD6 OPTIONS6 PATCH18 POST11 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.0
API Version
1.0
Base URL
https://lilyapp-api-prd.pub.lilyai.net
Authentication
HTTP Bearer
Resource Areas
2

Authentication & Security 1

LilyApp Middleware API declares 1 security scheme for authenticating requests. It accepts HTTP bearer tokens (JWT) (JWT).

Paths & Operations 100

Across 63 paths, the API surfaces 100 operations — 9 DELETE, 44 GET, 6 HEAD, 6 OPTIONS, 6 PATCH, 18 POST, 11 PUT. They span 2 resource areas: Operations, Enrichment Platform Proxy. Each is listed below with its method, path, parameters, and response codes.

Operations 93
GET
/health
HealthController_check → 200503
GET
/config/brands
ConfigController_getAllBrands → 200
GET
/config/personproducttypes
ConfigController_getAllApis → 200
GET
/config/retailer/info
ConfigController_getReailerInfo 1 param → 200
GET
/config/subsidiary/details/{id}
ConfigController_getSubsidiaryDetails 1 param → 200
GET
/config/subsidiary/{param}
ConfigController_getSubsidiaryConfig 1 param → 200
GET
/config/users/{id}/brands
UsersController_listUserBrands 1 param → 200
GET
/
HomeController_healthCheckRoot → 200
GET
/search
SearchPamController_getSearchDataForGallery 8 params → 200
POST
/search/products
SearchPamController_getAllProductsFromPI 5 params body → 200
POST
/search/products/export
SearchPamController_exportAllProductsFromPI → 204
POST
/search/products/tags{edit}
SearchPamController_updateProductTagsApi body → 200
GET
/search/products/filters/tableFormatted
SearchPamController_getFiltersTableFormattedLocalApi 1 param → 200
GET
/search/subsidiary/tags
SearchPamController_getPrductTagsFiltersList 1 param → 200
GET
/search/pi-analytics/meta
SearchAnalyticsController_getPIAnalyticsMeta 1 param → 200
GET
/search/pi-analytics/{type}
SearchAnalyticsController_getPIAnalytics 11 params → 200
GET
/search/tags/autocomplete
SearchTagsController_getProductTagAutocompleteApi 1 param → 200
GET
/search/tags/types
SearchTagsController_getPersonProductTypes 1 param → 200
GET
/search/products/tags/autocomplete
SearchTagsController_getProductTagsList 1 param → 200
GET
/auth/b2c/login
AuthController_loginUserExt → 200
GET
/auth/microsoft/login
AuthController_loginUser → 200
GET
/productcopy/batches
ProductBatchesController_getAllProductCopyBatchesFromPI 1 param → 200
POST
/productcopy/batches/{id}
ProductBatchesController_getAllProductCopiesForBatch 5 params body → 200
POST
/productcopy/batches/export/{id}
ProductBatchesController_exportAllProductCopiesForBatch 5 params body → 200
PUT
/productcopy/batches/add
ProductBatchesController_createProductBatch 2 params → 200
POST
/productcopy/batches/add/products/{id}
ProductBatchesController_createProductBatchCopiesAndProducts 2 params body → 200
DELETE
/productcopy/batches/remove/{id}
ProductBatchesController_deleteProductBatch 2 params → 200
DELETE
/productcopy/batches/remove/products/{id}
ProductBatchesController_deleteProductBatchCopiesandProducts 2 params → 200
PUT
/productcopy/products/details/{productId}
ProductCopyController_updateProductCopyDetails 1 param body → 200
GET
/productcopy/products/details/tags/{productId}
ProductCopyController_getProductCopyDetails 2 params → 200
PUT
/productcopy/products/status
ProductCopyController_updateProductCopyStatus body → 200
POST
/productcopy/products/generate/{productId}
ProductCopyController_generateDescription 2 params body → 200
PUT
/productcopyV2/products/details/{productId}
ProductCopyControllerV2_updateProductCopyDetails 1 param body → 200
GET
/productcopyV2/products/details/tags/{productId}
ProductCopyControllerV2_getProductCopyTags 2 params → 200
GET
/productcopyV2/products/details/images/{productId}
ProductCopyControllerV2_getProductCopyImages 2 params → 200
PUT
/productcopyV2/products/status/{productId}
ProductCopyControllerV2_updateProductCopyStatus 1 param body → 200
GET
/productcopyV2/batches
ProductBatchesControllerV2_getAllProductCopyBatchesFromPI 3 params → 200
POST
/productcopyV2/batches/{id}
ProductBatchesControllerV2_getAllProductCopiesForBatch 5 params body → 200
DELETE
/productcopyV2/batches/{id}
ProductBatchesControllerV2_deleteProductBatch 1 param → 200
GET
/batch/ingestions/{subsidiaryId}
BatchController_listAllBatches 1 param → 200
POST
/products/search/synonyms
ProductController_searchProductsWithSynonyms 3 params body → 200
GET
/integration/partners/{subsidiaryCode}
IntegrationController_listAllBatches 1 param → 200
POST
/integration/partners/connection-information/{subsidiaryCode}/{partnerCode}
IntegrationController_configurePartner 2 params body → 200
GET
/pi-api-proxy/*
PiApiProxyController_proxy_get 1 param → 200
POST
/pi-api-proxy/*
PiApiProxyController_proxy_post 1 param → 200
PUT
/pi-api-proxy/*
PiApiProxyController_proxy_put 1 param → 200
DELETE
/pi-api-proxy/*
PiApiProxyController_proxy_delete 1 param → 200
PATCH
/pi-api-proxy/*
PiApiProxyController_proxy_patch 1 param → 200
OPTIONS
/pi-api-proxy/*
PiApiProxyController_proxy_options 1 param → 200
HEAD
/pi-api-proxy/*
PiApiProxyController_proxy_head 1 param → 200
GET
/pi-connector-proxy/*
PiConnectorProxyController_proxy_get → 200
POST
/pi-connector-proxy/*
PiConnectorProxyController_proxy_post → 200
PUT
/pi-connector-proxy/*
PiConnectorProxyController_proxy_put → 200
DELETE
/pi-connector-proxy/*
PiConnectorProxyController_proxy_delete → 200
PATCH
/pi-connector-proxy/*
PiConnectorProxyController_proxy_patch → 200
OPTIONS
/pi-connector-proxy/*
PiConnectorProxyController_proxy_options → 200
HEAD
/pi-connector-proxy/*
PiConnectorProxyController_proxy_head → 200
GET
/pi-config-proxy/*
PiConfigProxyController_proxy_get → 200
POST
/pi-config-proxy/*
PiConfigProxyController_proxy_post → 200
PUT
/pi-config-proxy/*
PiConfigProxyController_proxy_put → 200
DELETE
/pi-config-proxy/*
PiConfigProxyController_proxy_delete → 200
PATCH
/pi-config-proxy/*
PiConfigProxyController_proxy_patch → 200
OPTIONS
/pi-config-proxy/*
PiConfigProxyController_proxy_options → 200
HEAD
/pi-config-proxy/*
PiConfigProxyController_proxy_head → 200
GET
/v2/auth/b2c/login
AuthV2Controller_loginUserExt → 200
GET
/v2/auth/microsoft/login
AuthV2Controller_loginUser → 200
POST
/v2/auth/qa-automated/login
AuthV2Controller_loginQaSupport 2 params body → 200401403
GET
/subsidiary/list
SubsidiaryController_getSubsidiaryList → 200
GET
/subsidiary/list-subsidiaries
SubsidiaryController_getSubsidiaryListUser → 200
GET
/tce-api-proxy/*
TceApiProxyController_proxy_get → 200
POST
/tce-api-proxy/*
TceApiProxyController_proxy_post → 200
PUT
/tce-api-proxy/*
TceApiProxyController_proxy_put → 200
DELETE
/tce-api-proxy/*
TceApiProxyController_proxy_delete → 200
PATCH
/tce-api-proxy/*
TceApiProxyController_proxy_patch → 200
OPTIONS
/tce-api-proxy/*
TceApiProxyController_proxy_options → 200
HEAD
/tce-api-proxy/*
TceApiProxyController_proxy_head → 200
GET
/superset/security/token
SupersetController_getPersonProductTypes 2 params → 200
POST
/superset/chart/data
SupersetController_getChartData 1 param body → 200
GET
/mock-data/sheet/failed-products-summary
SheetController_getFailedProductSummary → 200
GET
/mock-data/sheet/taxonomy-mapping
SheetController_getTaxonomyMapping → 200
GET
/mock-data/sheet/attribution-metrics
SheetController_getAttributionMetrics → 200
GET
/mock-data/sheet/download-file
SheetController_getGoogleAuthToken → 200
GET
/mock-data/sheet/product-copy/{tabId}
SheetController_getProductCopyData 1 param → 200
GET
/mock-data/sheet/search-based-attributes
SheetController_getAllAttributes → 200
GET
/mock-data/sheet/get-terms
SheetController_getAllTerms → 200
GET
/faqs/{skuId}
FaqProxyController_proxy_get 1 param → 200
POST
/faqs/{skuId}
FaqProxyController_proxy_post 1 param → 200
PUT
/faqs/{skuId}
FaqProxyController_proxy_put 1 param → 200
DELETE
/faqs/{skuId}
FaqProxyController_proxy_delete 1 param → 200
PATCH
/faqs/{skuId}
FaqProxyController_proxy_patch 1 param → 200
OPTIONS
/faqs/{skuId}
FaqProxyController_proxy_options 1 param → 200
HEAD
/faqs/{skuId}
FaqProxyController_proxy_head 1 param → 200
GET
/metrics
PrometheusController_index → 200
Enrichment Platform Proxy 7
GET
/ep-proxy/*
EnrichmentPlatformProxyController_proxy_get 1 param → 200
POST
/ep-proxy/*
EnrichmentPlatformProxyController_proxy_post 1 param → 200
PUT
/ep-proxy/*
EnrichmentPlatformProxyController_proxy_put 1 param → 200
DELETE
/ep-proxy/*
EnrichmentPlatformProxyController_proxy_delete 1 param → 200
PATCH
/ep-proxy/*
EnrichmentPlatformProxyController_proxy_patch 1 param → 200
OPTIONS
/ep-proxy/*
EnrichmentPlatformProxyController_proxy_options 1 param → 200
HEAD
/ep-proxy/*
EnrichmentPlatformProxyController_proxy_head 1 param → 200

Schemas 41

The contract defines 41 schemas that model the data the API accepts and returns. The most detailed are ProductDtoWithSynonym (13 properties), ProductCopyDto (12 properties), ProductOldDto (11 properties), ProductCopyDtoV2 (9 properties). Each schema is shown below with its type and property counts.

SubsidiaryDto
object
4 properties 4 required
PersonProductTypesDto
object
2 properties 2 required
RetailerInfoDto
object
3 properties 3 required
BrandDto
object
3 properties 3 required
ProductOldDto
object
11 properties 11 required
SearchOldResponseDto
object
7 properties 7 required
SubsidiaryTagsDto
object
3 properties 3 required
SearchPAMPayloadDto
object
6 properties 1 required
TagsWithSynonyms
object
2 properties 2 required
TagSections
object
2 properties 2 required
ProductDtoWithSynonym
object
13 properties 13 required
PaginationDto
object
4 properties 4 required
ProductSearchDtoWithSynonyms
object
4 properties 4 required
TagUpdatePayloadDto
object
6 properties 6 required
FilterDto
object
3 properties 3 required
FilterContainerDto
object
5 properties 5 required
PiAnalyticsMetaDto
object
4 properties 4 required
PiAnalyticsValuesDto
object
8 properties 8 required
PiAnalyticsDto
object
3 properties 3 required
PiAnalyticsTypeDto
object
1 property 1 required
PiTrendsSearchTermDto
object
6 properties 6 required
PiTrendsDto
object
5 properties 5 required
CategoryDto
object
2 properties 2 required
ProductCopyBatches
object
ProductCopyStatus
string
SearchProductCopyBodyDto
object
7 properties
ProductCopyDto
object
12 properties 12 required
ProductCopySearchDto
object
4 properties 4 required
ExportProductCopyBodyDto
object
8 properties
ProductCopyCopies
object
ProductDetailsUpdatePayloadDto
object
4 properties 4 required
ProductStatusUpdatePayloadDto
object
3 properties 3 required
DescriptionGenerationPayloadData
object
4 properties 3 required
ProductCopyDtoV2
object
9 properties 9 required
ProductCopySearchDtoV2
object
4 properties 4 required
ProductSearchSynonymsRequestBodyDto
object
PartnerConnectionPayload
object
2 properties 2 required
ConfigurePartnerPayload
object
1 property 1 required
QaSupportLoginDto
object
2 properties 2 required
GuestTokenResponseDto
object
ChartDataBodyDto
object
2 properties 2 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

lily-ai-lilyapp-api-openapi.yml Raw ↑
Where this information came from

This is an independent, third-party profile of LilyApp Middleware API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.