Skip to main content
GET
/
api
/
movement-lines
List inventory movement lines (stock movements / transfers / receipts / adjustments)
curl --request GET \
  --url https://app.solya.app/api/movement-lines \
  --header 'Authorization: Bearer <token>'
{
  "data": [
    {
      "brandCode": "sandro",
      "brandId": "demo-brand-8a771633",
      "brandImageUrl": null,
      "brandMainBrandTypeTaxonomyFullPath": null,
      "brandMainBrandTypeTaxonomyId": null,
      "brandName": "Sandro",
      "code": null,
      "createdAt": "2026-06-23T12:26:47.06048+00:00",
      "inventoryItemCode": "INV-001859",
      "inventoryItemFullName": "Pantalon de tailleur en laine froide - Noir - M",
      "inventoryItemId": "demo-inv-item-ef722283",
      "inventoryItemSku": "SKU-001859",
      "movementCode": "MVT-RECV-00001385",
      "movementCost": 554.2199999999998,
      "movementDate": "2025-11-23",
      "movementDateKey": 20251123,
      "movementDayName": "sunday",
      "movementDayOfMonth": 23,
      "movementDayOfWeek": 7,
      "movementDayOfYear": 327,
      "movementDescription": "Receipt for 2025-11-23",
      "movementHolidayName": null,
      "movementId": "465f16fc-bf10-4abd-a899-04d93b9c9c21",
      "movementInventoryMovementTypeTaxonomyFullPath": null,
      "movementInventoryMovementTypeTaxonomyId": null,
      "movementInventoryMovementTypeTaxonomyLanguage": null,
      "movementIsHoliday": false,
      "movementIsWeekend": true,
      "movementLineId": "000003de-afef-4913-a0ff-b9fdd4cce3eb",
      "movementMonthName": "november",
      "movementMonthOfYear": 11,
      "movementQuarter": 4,
      "movementSeason": "fall_winter",
      "movementTrimester": 4,
      "movementWeekOfMonth": 4,
      "movementWeekOfYear": 47,
      "movementYear": 2025,
      "organizationId": "demo",
      "productCode": "pantalon-de-tailleur-en-laine-froide",
      "productFamilyMainTaxonomyFullPath": "Vêtements/Bas/Pantalons/Jeans (skinny, droits)",
      "productFamilyMainTaxonomyId": "solya_family_fr_13cbee4d",
      "productGenderTaxonomyFullPath": "Femme",
      "productGenderTaxonomyId": "solya_gender_fr_43c65bcc",
      "productId": "demo-product-d4b55f08",
      "productImageUrl": null,
      "productIsActive": true,
      "productName": "Pantalon de tailleur en laine froide",
      "quantity": 6,
      "shopCity": "Marseille",
      "shopCode": "boutique-marseille-vieux-port",
      "shopCountry": "bcbbd48b-f69c-4e02-85f5-90b919b1270b",
      "shopCountryId": "bcbbd48b-f69c-4e02-85f5-90b919b1270b",
      "shopId": "demo-shop-06490461",
      "shopIsActive": true,
      "shopName": "Boutique Marseille - Vieux Port",
      "shopRegion": "Provence-Alpes-Côte d'Azur",
      "sizeTaxonomyFullPath": "M",
      "sizeTaxonomyId": "solya_size_fr_d0f2a7f5",
      "sizeTaxonomyLanguage": "fr",
      "unitCost": 92.36999999999996,
      "updatedAt": "2026-06-23T12:26:47.06048+00:00",
      "variantCode": "pantalon-de-tailleur-en-laine-froide-noir",
      "variantCollectionId": "demo-collection-ecd2effe",
      "variantCollectionName": "Autumn/Winter 2025",
      "variantColorTaxonomyFullPath": "Couleurs Neutres/Neutre/Noirs/Noir",
      "variantDisplayName": "Noir",
      "variantFullName": "Pantalon de tailleur en laine froide - Noir",
      "variantGenderTaxonomyFullPath": null,
      "variantId": "demo-variant-908e6e33",
      "variantIsActive": true,
      "variantName": "Pantalon de tailleur en laine froide - Noir",
      "variantSecondaryColorTaxonomyFullPath": null
    }
  ],
  "page": 1,
  "pageSize": 20,
  "total": 240568
}

Authorizations

Authorization
string
header
required

User session token issued by NextAuth. For human users accessing Solya via the web application.

Query Parameters

page
integer
default:1

Page number, 1-indexed (default: 1)

Required range: 1 <= x <= 9007199254740991
pageSize
integer
default:20

Number of items per page, max 100 (default: 20)

Required range: 1 <= x <= 100
shopId
string

Filter by shop UUID

productId
string

Filter by product UUID

brandId
string

Filter by brand UUID

variantId
string

Filter by variant UUID

inventoryItemId
string

Filter by inventory item UUID

movementType
string

Movement type filter. NOTE: currently inactive — the underlying movement-type taxonomy column (movementInventoryMovementTypeTaxonomyId) is unpopulated (null) in this dataset, so this filter is ignored. Use variantId or inventoryItemId for reliable filtering, or the stock-ledger endpoint's movementType/movementCategory filters.

dateFrom
string

Return lines where movementDate >= this value (inclusive). ISO 8601 date 'YYYY-MM-DD' (e.g. '2026-01-01') or datetime 'YYYY-MM-DDTHH:mm:ssZ' — both accepted. Filters on the movementDate column.

dateTo
string

Return lines where movementDate <= this value (inclusive). ISO 8601 date 'YYYY-MM-DD' (e.g. '2026-12-31') or datetime 'YYYY-MM-DDTHH:mm:ssZ' — both accepted. Filters on the movementDate column.

sortBy
string

Column to sort by. Allowed: 'movementDate', 'quantity', 'movementCost'. Defaults to 'movementDate'.

sortOrder
enum<string>

Sort direction: 'asc' or 'desc'. Default order is movementDate descending (most recent first).

Available options:
asc,
desc

Response

Successful response

data
object
required
success
enum<boolean>
required
Available options:
true