LoudCrowd Product Data API
The Product Data API from LoudCrowd — 1 operation(s) for product data.
The Product Data API from LoudCrowd — 1 operation(s) for product data.
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/loudcrowd-product-data-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: LoudCrowd Product Data API
version: 0.0.0
description: 'LoudCrowd public API definitions, including the account-scoped Brand API and Attribution Events API.
'
license:
name: MIT
url: https://opensource.org/licenses/MIT
servers:
- url: https://store-api.loudcrowd.com/api
description: LoudCrowd Creator Storefronts API
- url: https://api.loudcrowd.com
description: LoudCrowd Attribution Events API
security:
- bearerAuth: []
tags:
- name: Product Data
paths:
/product-data:
post:
summary: Send Product Data
description: Batch upsert or delete product catalog records in LoudCrowd. Aligns with the supported file formats documented in the LoudCrowd developer docs. This API is designed to mirror the ingestion pipeline currently used for file-based product loads so that existing mappings can be reused.
operationId: send_product_data
parameters:
- in: header
name: X-LC-SHOP-ID
description: Your LoudCrowd internal shop identifier
required: true
schema:
type: string
- in: header
name: X-Signature
description: The SHA-256 hexadecimal digest of the UTF-8 encoded JSON payload
required: true
schema:
type: string
- in: header
name: X-LC-TOPIC
description: Specifies the operation to apply to the provided products
required: true
schema:
type: string
enum:
- PRODUCT_UPSERT
- PRODUCT_DELETE
- in: header
name: Content-Type
description: Content type of the request
required: true
schema:
type: string
default: application/json
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/sendProductDataRequest'
responses:
'200':
description: Request accepted and processed
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: Product data processed
processedCount:
type: integer
example: 123
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'422':
$ref: '#/components/responses/422'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
tags:
- Product Data
components:
schemas:
productPrices:
properties:
discountedPriceRanges:
description: List of the discounted price ranges for the product.
items:
properties:
discount:
properties:
id:
type: string
type: object
range:
properties:
max:
type: number
min:
type: number
type: object
type: object
type: array
maxItems: 10
discountedPrices:
description: List of the discounted prices for the product.
items:
properties:
discount:
properties:
id:
type: string
type: object
price:
type: number
type: object
type: array
maxItems: 10
price:
description: The price of the product.
type:
- number
- 'null'
priceRange:
description: The price range of the product.
properties:
max:
type: number
min:
type: number
type:
- object
- 'null'
promotionalPrice:
description: If there is a site wide promotion applied to the product data, the promotional price of the product.
type:
- number
- 'null'
promotionalPriceRange:
description: If there is a site wide promotion applied to the product data, the promotional price range of the product.
properties:
max:
type: number
min:
type: number
type:
- object
- 'null'
salePrice:
description: The sale price of the product.
type:
- number
- 'null'
salePriceRange:
description: The sale price range of the product.
properties:
max:
type: number
min:
type: number
type:
- object
- 'null'
type:
- object
- 'null'
sendProductDataRequest:
type: object
required:
- products
properties:
products:
type: array
description: Batch of product records to upsert or delete.
minItems: 1
maxItems: 1000
items:
$ref: '#/components/schemas/productIngestRecord'
productVariantIngestRecord:
type: object
required:
- variant_sku
properties:
variant_sku:
type: string
description: Variant SKU (acts as external key)
price:
type:
- number
- 'null'
description: Variant price
sale_price:
type:
- number
- 'null'
description: Variant sale price
product_url:
type:
- string
- 'null'
description: Variant PDP URL
selected_options:
type:
- array
- 'null'
description: Key/value option selections like Size/Color
items:
$ref: '#/components/schemas/selectedOptionItem'
maxItems: 100
priceCurrencyCode:
enum:
- USD
- CAD
- GBP
- AUD
- AED
- AFN
- ALL
- AMD
- ANG
- AOA
- ARS
- AWG
- AZN
- BAM
- BBD
- BDT
- BGN
- BHD
- BIF
- BMD
- BND
- BOB
- BOV
- BRL
- BSD
- BTN
- BWP
- BYN
- BZD
- CDF
- CHE
- CHF
- CHW
- CLF
- CLP
- CNY
- COP
- COU
- CRC
- CUC
- CUP
- CVE
- CZK
- DJF
- DKK
- DOP
- DZD
- EGP
- ERN
- ETB
- EUR
- FJD
- FKP
- GEL
- GHS
- GIP
- GMD
- GNF
- GTQ
- GYD
- HKD
- HNL
- HRK
- HTG
- HUF
- IDR
- ILS
- INR
- IQD
- IRR
- ISK
- JMD
- JOD
- JPY
- KES
- KGS
- KHR
- KMF
- KPW
- KRW
- KWD
- KYD
- KZT
- LAK
- LBP
- LKR
- LRD
- LSL
- LYD
- MAD
- MDL
- MGA
- MKD
- MMK
- MNT
- MOP
- MRU
- MUR
- MVR
- MWK
- MXN
- MXV
- MYR
- MZN
- NAD
- NGN
- NIO
- NOK
- NPR
- NZD
- OMR
- PAB
- PEN
- PGK
- PHP
- PKR
- PLN
- PYG
- QAR
- RON
- RSD
- RUB
- RWF
- SAR
- SBD
- SCR
- SDG
- SEK
- SGD
- SHP
- SLE
- SLL
- SOS
- SRD
- SSP
- STN
- SVC
- SYP
- SZL
- THB
- TJS
- TMT
- TND
- TOP
- TRY
- TTD
- TWD
- TZS
- UAH
- UGX
- USN
- UYI
- UYU
- UYW
- UZS
- VED
- VES
- VND
- VUV
- WST
- XAF
- XAG
- XAU
- XBA
- XBB
- XBC
- XBD
- XCD
- XDR
- XOF
- XPD
- XPF
- XPT
- XSU
- XTS
- XUA
- XXX
- YER
- ZAR
- ZMW
- ZWL
type:
- string
- 'null'
description: The currency code of the product prices.
example: USD
selectedOptionItem:
properties:
name:
description: The name of the selected option.
type:
- string
- 'null'
example: Color
value:
description: The value of the selected option.
type:
- string
- 'null'
example: Red
type: object
productIngestRecord:
type: object
description: Product payload aligned with file-based ingestion formats. Use nulls for clearing optional values.
required:
- platform_product_id
- title
properties:
platform_product_id:
type: string
description: Unique product identifier from the eCommerce platform
handle:
type: string
description: Product handle or slug
title:
type: string
description: Product title
brand:
type:
- string
- 'null'
description: Brand name
image_src:
type:
- string
- 'null'
description: Primary product image URL
product_url:
type:
- string
- 'null'
description: Product PDP URL
active:
type: boolean
description: Whether product is active/available
in_stock:
type:
- boolean
- 'null'
description: Inventory availability flag
price_currency_code:
$ref: '#/components/schemas/priceCurrencyCode'
prices:
$ref: '#/components/schemas/productPrices'
promotional_code:
type:
- string
- 'null'
description: Applied sitewide promo code, if any
collections:
type:
- array
- 'null'
description: Optional list of collection identifiers the product belongs to
items:
type: string
maxItems: 250
tags:
type:
- array
- 'null'
description: Optional list of product tags
items:
type: string
maxItems: 250
variants:
type:
- array
- 'null'
description: Optional list of product variants
items:
$ref: '#/components/schemas/productVariantIngestRecord'
maxItems: 250
responses:
'429':
description: You hit the rate limit for this account. All endpoints share the same rate limit for an account.
headers:
X-RateLimit-Limit:
schema:
type: integer
description: Total requests allowed in the current window
X-RateLimit-Remaining:
schema:
type: integer
description: Requests remaining in the current window
X-RateLimit-Reset:
schema:
type: integer
description: Unix epoch seconds when the current window resets
Retry-After:
schema:
type: integer
description: Seconds until the next request may be made
content:
application/json:
schema:
type: object
properties:
code:
type: integer
example: 429
message:
type: string
example: Rate Limit Exceeded
'400':
description: Request is missing or has a bad parameter.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
example: 400
message:
type: string
example: Bad Request
'500':
description: Something is wrong on LoudCrowd's end.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
example: 500
message:
type: string
example: Server Error
'401':
description: Key is valid, but the account does not have permissions to perform this action.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
example: 401
message:
type: string
example: Not Authorized
'422':
description: Validation failed for one or more product records.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
example: 422
message:
type: string
example: Unprocessable Entity
recordErrors:
type: array
description: Per-record validation errors
items:
type: object
properties:
index:
type: integer
description: Zero-based index of the product in the payload
example: 0
field:
type: string
description: JSON pointer or field path
example: products[0].platform_product_id
code:
type: string
description: Machine-readable error code
example: REQUIRED
message:
type: string
description: Human readable error
example: platform_product_id is required
required:
- index
- code
- message
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'Authorization header using the Bearer scheme. Example: "Authorization: Bearer {token}"'
accountKeyAuth:
type: apiKey
in: header
name: X-LC-Account-Key
description: API token created in LoudCrowd.
x-default: YOUR_API_TOKEN
x-readme:
explorer-enabled: false