# List all offer lineItems Required scopes: offer:read Endpoint: GET /offers/{id}/line-items Version: v1 Security: http, oauth2 ## Path parameters: - `id` (string, required) ## Query parameters: - `find_by` (string) The field to search by Enum: "id", "external_id" - `origin` (string) Used if find_by=external_id by default it will use the integration slug - `sort` (string) Available sorts are title, price, total, purchase_price, purchase_total, created_at, updated_at.You can sort by multiple options by separating them with a comma. To sort in descending order, use - sign in front of the sort, for example: -title. Example: "sort=-created_at,title" - `page[size]` (integer) The number of results that will be returned per page. - `page[cursor]` (string) The cursor to start the pagination from. - `filter` (string) Allowed filter fields (with allowed operators): | Field | Type | Operators | |------|------|-----------| | title | string | in, nin, notin, eq, ne, neq, contains, like, startswith, endswith, isnull, isnotnull, notnull | | price | float | eq, ne, neq, lt, lte, le, gt, gte, ge, in, nin, notin, isnull, isnotnull, notnull | | amount | float | eq, ne, neq, lt, lte, le, gt, gte, ge, in, nin, notin, isnull, isnotnull, notnull | | project.id | id | eq, ne, neq, in, nin, notin, isnull, isnotnull, notnull | | project.title | string | in, nin, notin, eq, ne, neq, contains, like, startswith, endswith, isnull, isnotnull, notnull | | project.external_id | string | in, nin, notin, eq, ne, neq, contains, like, startswith, endswith, isnull, isnotnull, notnull | | project.shortcode | string | in, nin, notin, eq, ne, neq, contains, like, startswith, endswith, isnull, isnotnull, notnull | | total | currency | eq, ne, neq, lt, lte, le, gt, gte, ge, in, nin, notin, contains, like, startswith, endswith, isnull, isnotnull, notnull | | purchase_price | currency | eq, ne, neq, lt, lte, le, gt, gte, ge, in, nin, notin, contains, like, startswith, endswith, isnull, isnotnull, notnull | | purchase_total | currency | eq, ne, neq, lt, lte, le, gt, gte, ge, in, nin, notin, contains, like, startswith, endswith, isnull, isnotnull, notnull | | type | enum | eq, ne, neq, in, nin, notin | | metric.id | id | eq, ne, neq, in, nin, notin, isnull, isnotnull, notnull | | metric.title | string | in, nin, notin, eq, ne, neq, contains, like, startswith, endswith, isnull, isnotnull, notnull | Filtering expression. Accepts either JSON (array/tree of conditions) or a readable string DSL. You can check the full syntax at Docs Filtering section. Special values: - me.id — current authenticated user id (usable on fields of type id). Example: id eq me.id - now — current date-time. Example: dueOn lt now - sow/eow — start/end of week. Examples: dueOn gt sow, dueOn lt eow - som/eom — start/end of month. Examples: dueOn gt som, dueOn lt eom - today — special date for today; with eq it expands to the whole day range. Example: dueOn eq today - today±Nd — relative day offset. Examples: today-30d, today+5d. Example: "title contains \"Acme\" and (created_at >= \"2024-01-01\" or client.name contains \"Corp\")" ## Response 200 fields (application/json): - `data` (array, required) The list of items - `data.id` (string, required) - `data.title` (string, required) - `data.type` (string, required) Enum: "unit", "category", "page_break" - `data.indent` (integer, required) - `data.order` (integer, required) - `data.is_optional` (boolean, required) - `data.price` (number, required) - `data.amount` (number, required) - `data.total_net_base` (number, required) Excluding all discounts Does not reflect total value over performance range - `data.total_net` (number, required) Including unit discount (not offer discounts) Does not reflect total value over performance range - `data.total_gross_base` (number, required) Excluding all discounts Does not reflect total value over performance range - `data.tax_factor` (number, required) - `data.total_gross` (number, required) Including unit discount (not offer discounts) Does not reflect total value over performance range - `data.metric` (object, required) - `data.metric.title_plural` (string, required) - `data.project` (any, required) - `data.exclude_from_discount` (boolean, required) If true, the unit will be excluded from offer-wide discounts - `data.discount_factor` (number,null, required) - `data.discount_absolute` (number,null, required) - `data.discount_bound` (boolean, required) If true, the amount will multiply discount absolute - `data.purchase_price` (number, required) - `data.purchase_amount` (number, required) - `data.purchase_total` (number, required) - `data.purchase_price_bound` (boolean, required) If true, purchase_amount will be in sync with amount - `data.description` (string, required) - `data.payment_partial_type` (string, required) Enum: "once", "monthly", "yearly" - `data.payment_partial_interval` (integer,null, required) Interval if payment partial type is monthly or yearly | Type | Interval | Description | | ---- | -------- | ----------- | | once | any | Once per offer | | monthly | 1 | Every month in performance range | | monthly | 3 | Every 3 months in performance range | | monthly | 6 | Every 6 monthsin performance range | | yearly | 1 | Every year in performance range | | yearly | 3 | Every 3 years in performance range | | yearly | 6` | Every 6 years in performance range | - `links` (array, required) - `meta` (object, required) - `meta.path` (string,null, required) Base path for paginator generated URLs. - `meta.per_page` (integer, required) Number of items shown per page. - `meta.next_cursor` (string,null, required) - `meta.next_cursor_url` (string,null, required) - `meta.prev_cursor` (string,null, required) - `meta.prev_cursor_url` (string,null, required) ## Response 401 fields (application/json): - `message` (string, required) Error overview. ## Response 422 fields (application/json): - `message` (string, required) Errors overview. - `errors` (object, required) A detailed description of each field that failed validation.