---
title: "OpptyProductRelations.list"
method: GET
path: "/entities/OpptyProductRelations"
tags: ["Product Line Items"]
---

# OpptyProductRelations.list

`GET /entities/OpptyProductRelations`

## Request

- Base URL: `https://us-east.api.coevera.com/api/v100/rest/spaces/your_space_id`
- URL: `https://us-east.api.coevera.com/api/v100/rest/spaces/your_space_id/entities/OpptyProductRelations`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/coevera/apis/coevera-crm-api/docs/entities/OpptyProductRelations/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns a page of OpptyProductRelation records, optionally filtered, sorted and limited to selected fields.

## Query parameters

- `include-deleted` boolean
- `first` integer
- `last` integer
- `before` string
- `after` string
- `expand` string
- `order-by` string
- `filter` object
- `filter-op` object
- `load-only` string

## Response `200`

Page of OpptyProductRelation records.

- object
  - `success` boolean: True when the request succeeded; false on error.
  - `data` OpptyProductRelation[]
    - `is_delete_protected` boolean, required: True when the record is protected against deletion because it must always exist in the space. Deleting a record that is not protected can still fail on other checks. Read-only.
    - `id` string, uuid, required: Unique identifier of entity.
    - `is_deleted` boolean: Specifies if the entity is considered deleted.
    - `modified` string, date-time: Last modification time.
    - `created` string, date-time: Creation time.
    - `currency_exchange_rates_list` string, uri: Currency exchange rate list used to convert this line item, inherited from the parent opportunity or quote. Related CurrencyExchangeRatesList record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'CurrencyExchangeRatesList' for its fields.
    - `online_form_field` string, uri: Online form field that produced this line item, or empty when not applicable. Related Field record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'Field' for its fields.
    - `online_form` string, uri: Online form this line item came from when the related opportunity was created through a form submission, or empty otherwise. Related OnlineForm record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'OnlineForm' for its fields.
    - `oppty` string, uri: Opportunity this line item belongs to. Set on create; mutually exclusive with quote. Related Opportunity record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'Opportunity' for its fields.
    - `oppty_product_relation_type` string, uri, required: Line-item type that drives the form layout for this product line. Resolved from the product type on create. Related OpptyProductRelationType record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'OpptyProductRelationType' for its fields.
    - `paired_oppty_product_relation` string, uri: Counterpart line item on the paired record (e.g. matching line on the active quote when this line is on the opportunity, or vice versa). Empty when there is no pairing. Related OpptyProductRelation record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'OpptyProductRelation' for its fields.
    - `product` string, uri, required: Product on this line item. Set on create; cannot be changed afterwards. Related Product record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'Product' for its fields.
    - `quote` string, uri: Quote this line item belongs to. Set on create; mutually exclusive with opportunity. Related Quote record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'Quote' for its fields.
    - `amount` number, double: Total amount of the line item (price * quantity, with discounts applied).
    - `comment` string: Free-form note describing this line item.
    - `currency_exchange_rates_list_id` string, uuid: Id of the currency exchange rate list used to convert this line item, inherited from the parent opportunity or quote.
    - `online_form_field_id` string, uuid: Id of the online form field in which the respondent selected this product, or empty when the line item did not come from a form submission.
    - `online_form_id` string, uuid: Id of the online form submission this line item came from, or empty when it was not created through a form.
    - `oppty_id` string, uuid: Id of the opportunity.
    - `oppty_product_relation_type_id` string, uuid: Id of the line-item type.
    - `paired_oppty_product_relation_id` string, uuid: Id of the paired line item.
    - `price` number, double: Per-unit price of the line item. Defaults to the product price from the price list when not supplied explicitly.
    - `product_id` string, uuid, required: Id of the product; required on create.
    - `quantity` number, double: Number of product units on this line item; a line item created without it gets 1.
    - `quote_id` string, uuid: Id of the quote this line item belongs to. Mutually exclusive with oppty_id.
    - `section_id` string, uuid: Identifier of the product section this line belongs to (see the product_sections JSON layout on the parent opportunity or quote).
    - `sort_order` integer: Display order of the line item within its section. Maintained automatically when lines are added or moved.
    - `revision` integer: Revision when entity was lastly changed.
    - `revenue_schedule` string, uri: Per-line revenue schedule splitting the line amount across periods. Available only when revenue scheduling is configured at product-amount level. Related OpptyProductRelationRevenueSchedule record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'OpptyProductRelationRevenueSchedule' for its fields.
    - `discount_value` number, double: Absolute discount of this line item against the product's price-list price, computed: a write that sends it is refused with HTTP 400, code 117. Set `price` instead.
    - `discount_percentage` number, double: Percentage discount of this line item against the product's price-list price, computed: a write that sends it is refused with HTTP 400, code 117. Set `price` instead.
    - `modified_by_user` string, date-time: Timestamp of the most recent modification made by an end user (excluding system changes). Read-only; computed by Coevera.
  - `page_info` object: Pagination of the result; not returned when the legacy limit and offset parameters are used.
    - `start_cursor` string: Cursor of the first record of the page.
    - `end_cursor` string: Cursor of the last record of the page.
    - `has_previous_page` boolean: Whether records exist before this page; pass start_cursor as before to load them.
    - `has_next_page` boolean: Whether records exist after this page; pass end_cursor as after to load them.
  - `total` integer: Number of records that match the request, across all pages.

## Other responses

- `400`: Bad request: a bad or unknown parameter (codes 117, 118), a missing permission (code 50), conflicting data (code 2002) or any other API error. The REST API answers 400 where others answer 403 or 409; check `code`.
- `401`: Not authenticated: missing or wrong credentials, a credential of another space, or an expired token (code 401, ERROR_UNAUTHORIZED).
- `429`: Too many requests (code 182). Wait for the seconds in Retry-After, then retry.
- `500`: Unexpected server error (code 1000, ERROR_UNKNOWN).

---

[API](https://skmtc.dev/coevera/apis/coevera-crm-api.md) - [All operations](https://skmtc.dev/coevera/apis/coevera-crm-api/llms.txt) - [OpenAPI document](https://skmtc.dev/coevera/apis/coevera-crm-api/revisions/40ebbc83f179?raw)
